diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClient.java b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClient.java index 8da150f423d8..a111c96aac5d 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClient.java +++ b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClient.java @@ -362,6 +362,44 @@ * * * + * + *

EnableManagedRotation + *

Enables the managed rotation feature for a [Secret][google.cloud.secretmanager.v1.Secret]. This method can only be triggered once for a secret. In order to do further rotations, RotateSecret should be used. This method will add a secret version and update the password in Cloud SQL. + * + *

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

+ * + *

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

+ * + *

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

+ * + * + * + * + *

RotateSecret + *

Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret]. This can only be triggered after Managed rotation has been enabled. This method will add a secret version and update the password in Cloud SQL. + * + *

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

+ * + *

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

+ * + *

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

+ * + * + * * * *

See the individual methods for example code. @@ -2484,6 +2522,280 @@ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsReq return stub.testIamPermissionsCallable(); } + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Enables the managed rotation feature for a [Secret][google.cloud.secretmanager.v1.Secret]. This + * method can only be triggered once for a secret. In order to do further rotations, RotateSecret + * should be used. This method will add a secret version and update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]");
+   *   EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials =
+   *       EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build();
+   *   SecretVersion response =
+   *       secretManagerServiceClient.enableManagedRotation(parent, cloudSqlSingleUserCredentials);
+   * }
+   * }
+ * + * @param parent Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret] + * to associate with the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the + * format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. + * @param cloudSqlSingleUserCredentials Credentials required for Cloud SQL DB for Single user + * Managed Rotation. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final SecretVersion enableManagedRotation( + SecretName parent, + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials) { + EnableManagedRotationRequest request = + EnableManagedRotationRequest.newBuilder() + .setParent(parent == null ? null : parent.toString()) + .setCloudSqlSingleUserCredentials(cloudSqlSingleUserCredentials) + .build(); + return enableManagedRotation(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Enables the managed rotation feature for a [Secret][google.cloud.secretmanager.v1.Secret]. This + * method can only be triggered once for a secret. In order to do further rotations, RotateSecret + * should be used. This method will add a secret version and update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   String parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString();
+   *   EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials =
+   *       EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build();
+   *   SecretVersion response =
+   *       secretManagerServiceClient.enableManagedRotation(parent, cloudSqlSingleUserCredentials);
+   * }
+   * }
+ * + * @param parent Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret] + * to associate with the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the + * format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. + * @param cloudSqlSingleUserCredentials Credentials required for Cloud SQL DB for Single user + * Managed Rotation. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final SecretVersion enableManagedRotation( + String parent, + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials) { + EnableManagedRotationRequest request = + EnableManagedRotationRequest.newBuilder() + .setParent(parent) + .setCloudSqlSingleUserCredentials(cloudSqlSingleUserCredentials) + .build(); + return enableManagedRotation(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Enables the managed rotation feature for a [Secret][google.cloud.secretmanager.v1.Secret]. This + * method can only be triggered once for a secret. In order to do further rotations, RotateSecret + * should be used. This method will add a secret version and update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   EnableManagedRotationRequest request =
+   *       EnableManagedRotationRequest.newBuilder()
+   *           .setParent(SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString())
+   *           .build();
+   *   SecretVersion response = secretManagerServiceClient.enableManagedRotation(request);
+   * }
+   * }
+ * + * @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 SecretVersion enableManagedRotation(EnableManagedRotationRequest request) { + return enableManagedRotationCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Enables the managed rotation feature for a [Secret][google.cloud.secretmanager.v1.Secret]. This + * method can only be triggered once for a secret. In order to do further rotations, RotateSecret + * should be used. This method will add a secret version and update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   EnableManagedRotationRequest request =
+   *       EnableManagedRotationRequest.newBuilder()
+   *           .setParent(SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString())
+   *           .build();
+   *   ApiFuture future =
+   *       secretManagerServiceClient.enableManagedRotationCallable().futureCall(request);
+   *   // Do something.
+   *   SecretVersion response = future.get();
+   * }
+   * }
+ */ + public final UnaryCallable + enableManagedRotationCallable() { + return stub.enableManagedRotationCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret]. This can only be + * triggered after Managed rotation has been enabled. This method will add a secret version and + * update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]");
+   *   SecretVersion response = secretManagerServiceClient.rotateSecret(parent);
+   * }
+   * }
+ * + * @param parent Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret] + * to associate with the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the + * format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final SecretVersion rotateSecret(SecretName parent) { + RotateSecretRequest request = + RotateSecretRequest.newBuilder() + .setParent(parent == null ? null : parent.toString()) + .build(); + return rotateSecret(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret]. This can only be + * triggered after Managed rotation has been enabled. This method will add a secret version and + * update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   String parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString();
+   *   SecretVersion response = secretManagerServiceClient.rotateSecret(parent);
+   * }
+   * }
+ * + * @param parent Required. The resource name of the [Secret][google.cloud.secretmanager.v1.Secret] + * to associate with the [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the + * format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final SecretVersion rotateSecret(String parent) { + RotateSecretRequest request = RotateSecretRequest.newBuilder().setParent(parent).build(); + return rotateSecret(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret]. This can only be + * triggered after Managed rotation has been enabled. This method will add a secret version and + * update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   RotateSecretRequest request =
+   *       RotateSecretRequest.newBuilder()
+   *           .setParent(SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString())
+   *           .build();
+   *   SecretVersion response = secretManagerServiceClient.rotateSecret(request);
+   * }
+   * }
+ * + * @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 SecretVersion rotateSecret(RotateSecretRequest request) { + return rotateSecretCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret]. This can only be + * triggered after Managed rotation has been enabled. This method will add a secret version and + * update the password in Cloud SQL. + * + *

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 (SecretManagerServiceClient secretManagerServiceClient =
+   *     SecretManagerServiceClient.create()) {
+   *   RotateSecretRequest request =
+   *       RotateSecretRequest.newBuilder()
+   *           .setParent(SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString())
+   *           .build();
+   *   ApiFuture future =
+   *       secretManagerServiceClient.rotateSecretCallable().futureCall(request);
+   *   // Do something.
+   *   SecretVersion response = future.get();
+   * }
+   * }
+ */ + public final UnaryCallable rotateSecretCallable() { + return stub.rotateSecretCallable(); + } + @Override public final void close() { stub.close(); diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceSettings.java b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceSettings.java index 28886417fa5e..ecec14152fbb 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceSettings.java +++ b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceSettings.java @@ -182,6 +182,17 @@ public UnaryCallSettings getIamPolicySettings() { return ((SecretManagerServiceStubSettings) getStubSettings()).testIamPermissionsSettings(); } + /** Returns the object with the settings used for calls to enableManagedRotation. */ + public UnaryCallSettings + enableManagedRotationSettings() { + return ((SecretManagerServiceStubSettings) getStubSettings()).enableManagedRotationSettings(); + } + + /** Returns the object with the settings used for calls to rotateSecret. */ + public UnaryCallSettings rotateSecretSettings() { + return ((SecretManagerServiceStubSettings) getStubSettings()).rotateSecretSettings(); + } + public static final SecretManagerServiceSettings create(SecretManagerServiceStubSettings stub) throws IOException { return new SecretManagerServiceSettings.Builder(stub.toBuilder()).build(); @@ -381,6 +392,17 @@ public UnaryCallSettings.Builder getIamPolicySettin return getStubSettingsBuilder().testIamPermissionsSettings(); } + /** Returns the builder for the settings used for calls to enableManagedRotation. */ + public UnaryCallSettings.Builder + enableManagedRotationSettings() { + return getStubSettingsBuilder().enableManagedRotationSettings(); + } + + /** Returns the builder for the settings used for calls to rotateSecret. */ + public UnaryCallSettings.Builder rotateSecretSettings() { + return getStubSettingsBuilder().rotateSecretSettings(); + } + @Override public SecretManagerServiceSettings build() throws IOException { return new SecretManagerServiceSettings(this); diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/gapic_metadata.json b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/gapic_metadata.json index 5f510e7fba07..bf49bafdf61e 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/gapic_metadata.json +++ b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/gapic_metadata.json @@ -28,6 +28,9 @@ "DisableSecretVersion": { "methods": ["disableSecretVersion", "disableSecretVersion", "disableSecretVersion", "disableSecretVersionCallable"] }, + "EnableManagedRotation": { + "methods": ["enableManagedRotation", "enableManagedRotation", "enableManagedRotation", "enableManagedRotationCallable"] + }, "EnableSecretVersion": { "methods": ["enableSecretVersion", "enableSecretVersion", "enableSecretVersion", "enableSecretVersionCallable"] }, @@ -46,6 +49,9 @@ "ListSecrets": { "methods": ["listSecrets", "listSecrets", "listSecrets", "listSecrets", "listSecretsPagedCallable", "listSecretsCallable"] }, + "RotateSecret": { + "methods": ["rotateSecret", "rotateSecret", "rotateSecret", "rotateSecretCallable"] + }, "SetIamPolicy": { "methods": ["setIamPolicy", "setIamPolicyCallable"] }, diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/GrpcSecretManagerServiceStub.java b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/GrpcSecretManagerServiceStub.java index 793266687823..dda214ebb10e 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/GrpcSecretManagerServiceStub.java +++ b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/GrpcSecretManagerServiceStub.java @@ -33,6 +33,7 @@ import com.google.cloud.secretmanager.v1.DeleteSecretRequest; import com.google.cloud.secretmanager.v1.DestroySecretVersionRequest; import com.google.cloud.secretmanager.v1.DisableSecretVersionRequest; +import com.google.cloud.secretmanager.v1.EnableManagedRotationRequest; import com.google.cloud.secretmanager.v1.EnableSecretVersionRequest; import com.google.cloud.secretmanager.v1.GetSecretRequest; import com.google.cloud.secretmanager.v1.GetSecretVersionRequest; @@ -40,6 +41,7 @@ import com.google.cloud.secretmanager.v1.ListSecretVersionsResponse; import com.google.cloud.secretmanager.v1.ListSecretsRequest; import com.google.cloud.secretmanager.v1.ListSecretsResponse; +import com.google.cloud.secretmanager.v1.RotateSecretRequest; import com.google.cloud.secretmanager.v1.Secret; import com.google.cloud.secretmanager.v1.SecretVersion; import com.google.cloud.secretmanager.v1.UpdateSecretRequest; @@ -230,6 +232,28 @@ public class GrpcSecretManagerServiceStub extends SecretManagerServiceStub { .setSampledToLocalTracing(true) .build(); + private static final MethodDescriptor + enableManagedRotationMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + "google.cloud.secretmanager.v1.SecretManagerService/EnableManagedRotation") + .setRequestMarshaller( + ProtoUtils.marshaller(EnableManagedRotationRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(SecretVersion.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private static final MethodDescriptor + rotateSecretMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.cloud.secretmanager.v1.SecretManagerService/RotateSecret") + .setRequestMarshaller(ProtoUtils.marshaller(RotateSecretRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(SecretVersion.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + private final UnaryCallable listSecretsCallable; private final UnaryCallable listSecretsPagedCallable; @@ -255,6 +279,9 @@ public class GrpcSecretManagerServiceStub extends SecretManagerServiceStub { private final UnaryCallable getIamPolicyCallable; private final UnaryCallable testIamPermissionsCallable; + private final UnaryCallable + enableManagedRotationCallable; + private final UnaryCallable rotateSecretCallable; private final BackgroundResource backgroundResources; private final GrpcOperationsStub operationsStub; @@ -470,6 +497,29 @@ protected GrpcSecretManagerServiceStub( }) .setResourceNameExtractor(request -> request.getResource()) .build(); + GrpcCallSettings + enableManagedRotationTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(enableManagedRotationMethodDescriptor) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) + .setResourceNameExtractor(request -> request.getParent()) + .build(); + GrpcCallSettings rotateSecretTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(rotateSecretMethodDescriptor) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) + .setResourceNameExtractor(request -> request.getParent()) + .build(); this.listSecretsCallable = callableFactory.createUnaryCallable( @@ -536,6 +586,14 @@ protected GrpcSecretManagerServiceStub( testIamPermissionsTransportSettings, settings.testIamPermissionsSettings(), clientContext); + this.enableManagedRotationCallable = + callableFactory.createUnaryCallable( + enableManagedRotationTransportSettings, + settings.enableManagedRotationSettings(), + clientContext); + this.rotateSecretCallable = + callableFactory.createUnaryCallable( + rotateSecretTransportSettings, settings.rotateSecretSettings(), clientContext); this.backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources()); @@ -634,6 +692,17 @@ public UnaryCallable getIamPolicyCallable() { return testIamPermissionsCallable; } + @Override + public UnaryCallable + enableManagedRotationCallable() { + return enableManagedRotationCallable; + } + + @Override + public UnaryCallable rotateSecretCallable() { + return rotateSecretCallable; + } + @Override public final void close() { try { diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/HttpJsonSecretManagerServiceStub.java b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/HttpJsonSecretManagerServiceStub.java index a8eed61e30a5..1a11fefcf0bd 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/HttpJsonSecretManagerServiceStub.java +++ b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/HttpJsonSecretManagerServiceStub.java @@ -38,6 +38,7 @@ import com.google.cloud.secretmanager.v1.DeleteSecretRequest; import com.google.cloud.secretmanager.v1.DestroySecretVersionRequest; import com.google.cloud.secretmanager.v1.DisableSecretVersionRequest; +import com.google.cloud.secretmanager.v1.EnableManagedRotationRequest; import com.google.cloud.secretmanager.v1.EnableSecretVersionRequest; import com.google.cloud.secretmanager.v1.GetSecretRequest; import com.google.cloud.secretmanager.v1.GetSecretVersionRequest; @@ -45,6 +46,7 @@ import com.google.cloud.secretmanager.v1.ListSecretVersionsResponse; import com.google.cloud.secretmanager.v1.ListSecretsRequest; import com.google.cloud.secretmanager.v1.ListSecretsResponse; +import com.google.cloud.secretmanager.v1.RotateSecretRequest; import com.google.cloud.secretmanager.v1.Secret; import com.google.cloud.secretmanager.v1.SecretVersion; import com.google.cloud.secretmanager.v1.UpdateSecretRequest; @@ -650,6 +652,85 @@ public class HttpJsonSecretManagerServiceStub extends SecretManagerServiceStub { .build()) .build(); + private static final ApiMethodDescriptor + enableManagedRotationMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName( + "google.cloud.secretmanager.v1.SecretManagerService/EnableManagedRotation") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{parent=projects/*/secrets/*}:enableManagedRotation", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + return fields; + }) + .setAdditionalPaths( + "/v1/{parent=projects/*/locations/*/secrets/*}:enableManagedRotation") + .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(SecretVersion.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private static final ApiMethodDescriptor + rotateSecretMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.cloud.secretmanager.v1.SecretManagerService/RotateSecret") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1/{parent=projects/*/secrets/*}:rotateSecret", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + serializer.putPathParam(fields, "parent", request.getParent()); + return fields; + }) + .setAdditionalPaths( + "/v1/{parent=projects/*/locations/*/secrets/*}:rotateSecret") + .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(SecretVersion.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + private final UnaryCallable listSecretsCallable; private final UnaryCallable listSecretsPagedCallable; @@ -675,6 +756,9 @@ public class HttpJsonSecretManagerServiceStub extends SecretManagerServiceStub { private final UnaryCallable getIamPolicyCallable; private final UnaryCallable testIamPermissionsCallable; + private final UnaryCallable + enableManagedRotationCallable; + private final UnaryCallable rotateSecretCallable; private final BackgroundResource backgroundResources; private final HttpJsonStubCallableFactory callableFactory; @@ -906,6 +990,31 @@ protected HttpJsonSecretManagerServiceStub( }) .setResourceNameExtractor(request -> request.getResource()) .build(); + HttpJsonCallSettings + enableManagedRotationTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(enableManagedRotationMethodDescriptor) + .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) + .setResourceNameExtractor(request -> request.getParent()) + .build(); + HttpJsonCallSettings rotateSecretTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(rotateSecretMethodDescriptor) + .setTypeRegistry(typeRegistry) + .setParamsExtractor( + request -> { + RequestParamsBuilder builder = RequestParamsBuilder.create(); + builder.add("parent", String.valueOf(request.getParent())); + return builder.build(); + }) + .setResourceNameExtractor(request -> request.getParent()) + .build(); this.listSecretsCallable = callableFactory.createUnaryCallable( @@ -972,6 +1081,14 @@ protected HttpJsonSecretManagerServiceStub( testIamPermissionsTransportSettings, settings.testIamPermissionsSettings(), clientContext); + this.enableManagedRotationCallable = + callableFactory.createUnaryCallable( + enableManagedRotationTransportSettings, + settings.enableManagedRotationSettings(), + clientContext); + this.rotateSecretCallable = + callableFactory.createUnaryCallable( + rotateSecretTransportSettings, settings.rotateSecretSettings(), clientContext); this.backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources()); @@ -995,6 +1112,8 @@ public static List getMethodDescriptors() { methodDescriptors.add(setIamPolicyMethodDescriptor); methodDescriptors.add(getIamPolicyMethodDescriptor); methodDescriptors.add(testIamPermissionsMethodDescriptor); + methodDescriptors.add(enableManagedRotationMethodDescriptor); + methodDescriptors.add(rotateSecretMethodDescriptor); return methodDescriptors; } @@ -1087,6 +1206,17 @@ public UnaryCallable getIamPolicyCallable() { return testIamPermissionsCallable; } + @Override + public UnaryCallable + enableManagedRotationCallable() { + return enableManagedRotationCallable; + } + + @Override + public UnaryCallable rotateSecretCallable() { + return rotateSecretCallable; + } + @Override public final void close() { try { diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStub.java b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStub.java index 76911baf16e3..f5fe816c4112 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStub.java +++ b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStub.java @@ -28,6 +28,7 @@ import com.google.cloud.secretmanager.v1.DeleteSecretRequest; import com.google.cloud.secretmanager.v1.DestroySecretVersionRequest; import com.google.cloud.secretmanager.v1.DisableSecretVersionRequest; +import com.google.cloud.secretmanager.v1.EnableManagedRotationRequest; import com.google.cloud.secretmanager.v1.EnableSecretVersionRequest; import com.google.cloud.secretmanager.v1.GetSecretRequest; import com.google.cloud.secretmanager.v1.GetSecretVersionRequest; @@ -35,6 +36,7 @@ import com.google.cloud.secretmanager.v1.ListSecretVersionsResponse; import com.google.cloud.secretmanager.v1.ListSecretsRequest; import com.google.cloud.secretmanager.v1.ListSecretsResponse; +import com.google.cloud.secretmanager.v1.RotateSecretRequest; import com.google.cloud.secretmanager.v1.Secret; import com.google.cloud.secretmanager.v1.SecretVersion; import com.google.cloud.secretmanager.v1.UpdateSecretRequest; @@ -129,6 +131,15 @@ public UnaryCallable getIamPolicyCallable() { throw new UnsupportedOperationException("Not implemented: testIamPermissionsCallable()"); } + public UnaryCallable + enableManagedRotationCallable() { + throw new UnsupportedOperationException("Not implemented: enableManagedRotationCallable()"); + } + + public UnaryCallable rotateSecretCallable() { + throw new UnsupportedOperationException("Not implemented: rotateSecretCallable()"); + } + @Override public abstract void close(); } diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStubSettings.java b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStubSettings.java index 1bcac10f7fea..052d225e8077 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStubSettings.java +++ b/java-secretmanager/google-cloud-secretmanager/src/main/java/com/google/cloud/secretmanager/v1/stub/SecretManagerServiceStubSettings.java @@ -53,6 +53,7 @@ import com.google.cloud.secretmanager.v1.DeleteSecretRequest; import com.google.cloud.secretmanager.v1.DestroySecretVersionRequest; import com.google.cloud.secretmanager.v1.DisableSecretVersionRequest; +import com.google.cloud.secretmanager.v1.EnableManagedRotationRequest; import com.google.cloud.secretmanager.v1.EnableSecretVersionRequest; import com.google.cloud.secretmanager.v1.GetSecretRequest; import com.google.cloud.secretmanager.v1.GetSecretVersionRequest; @@ -60,6 +61,7 @@ import com.google.cloud.secretmanager.v1.ListSecretVersionsResponse; import com.google.cloud.secretmanager.v1.ListSecretsRequest; import com.google.cloud.secretmanager.v1.ListSecretsResponse; +import com.google.cloud.secretmanager.v1.RotateSecretRequest; import com.google.cloud.secretmanager.v1.Secret; import com.google.cloud.secretmanager.v1.SecretVersion; import com.google.cloud.secretmanager.v1.UpdateSecretRequest; @@ -163,6 +165,9 @@ public class SecretManagerServiceStubSettings private final UnaryCallSettings getIamPolicySettings; private final UnaryCallSettings testIamPermissionsSettings; + private final UnaryCallSettings + enableManagedRotationSettings; + private final UnaryCallSettings rotateSecretSettings; private static final PagedListDescriptor LIST_SECRETS_PAGE_STR_DESC = @@ -357,6 +362,17 @@ public UnaryCallSettings getIamPolicySettings() { return testIamPermissionsSettings; } + /** Returns the object with the settings used for calls to enableManagedRotation. */ + public UnaryCallSettings + enableManagedRotationSettings() { + return enableManagedRotationSettings; + } + + /** Returns the object with the settings used for calls to rotateSecret. */ + public UnaryCallSettings rotateSecretSettings() { + return rotateSecretSettings; + } + public SecretManagerServiceStub createStub() throws IOException { if (getTransportChannelProvider() .getTransportName() @@ -483,6 +499,8 @@ protected SecretManagerServiceStubSettings(Builder settingsBuilder) throws IOExc setIamPolicySettings = settingsBuilder.setIamPolicySettings().build(); getIamPolicySettings = settingsBuilder.getIamPolicySettings().build(); testIamPermissionsSettings = settingsBuilder.testIamPermissionsSettings().build(); + enableManagedRotationSettings = settingsBuilder.enableManagedRotationSettings().build(); + rotateSecretSettings = settingsBuilder.rotateSecretSettings().build(); } @Override @@ -524,6 +542,10 @@ public static class Builder private final UnaryCallSettings.Builder getIamPolicySettings; private final UnaryCallSettings.Builder testIamPermissionsSettings; + private final UnaryCallSettings.Builder + enableManagedRotationSettings; + private final UnaryCallSettings.Builder + rotateSecretSettings; private static final ImmutableMap> RETRYABLE_CODE_DEFINITIONS; @@ -537,6 +559,7 @@ public static class Builder ImmutableSet.copyOf( Lists.newArrayList( StatusCode.Code.UNAVAILABLE, StatusCode.Code.RESOURCE_EXHAUSTED))); + definitions.put("no_retry_codes", ImmutableSet.copyOf(Lists.newArrayList())); RETRYABLE_CODE_DEFINITIONS = definitions.build(); } @@ -564,6 +587,8 @@ public static class Builder .setTotalTimeoutDuration(Duration.ofMillis(60000L)) .build(); definitions.put("retry_policy_1_params", settings); + settings = RetrySettings.newBuilder().setRpcTimeoutMultiplier(1.0).build(); + definitions.put("no_retry_params", settings); RETRY_PARAM_DEFINITIONS = definitions.build(); } @@ -589,6 +614,8 @@ protected Builder(@Nullable ClientContext clientContext) { setIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); getIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); testIamPermissionsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + enableManagedRotationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + rotateSecretSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); unaryMethodSettingsBuilders = ImmutableList.>of( @@ -606,7 +633,9 @@ protected Builder(@Nullable ClientContext clientContext) { destroySecretVersionSettings, setIamPolicySettings, getIamPolicySettings, - testIamPermissionsSettings); + testIamPermissionsSettings, + enableManagedRotationSettings, + rotateSecretSettings); initDefaults(this); } @@ -628,6 +657,8 @@ protected Builder(SecretManagerServiceStubSettings settings) { setIamPolicySettings = settings.setIamPolicySettings.toBuilder(); getIamPolicySettings = settings.getIamPolicySettings.toBuilder(); testIamPermissionsSettings = settings.testIamPermissionsSettings.toBuilder(); + enableManagedRotationSettings = settings.enableManagedRotationSettings.toBuilder(); + rotateSecretSettings = settings.rotateSecretSettings.toBuilder(); unaryMethodSettingsBuilders = ImmutableList.>of( @@ -645,7 +676,9 @@ protected Builder(SecretManagerServiceStubSettings settings) { destroySecretVersionSettings, setIamPolicySettings, getIamPolicySettings, - testIamPermissionsSettings); + testIamPermissionsSettings, + enableManagedRotationSettings, + rotateSecretSettings); } private static Builder createDefault() { @@ -748,6 +781,16 @@ private static Builder initDefaults(Builder builder) { .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes")) .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params")); + builder + .enableManagedRotationSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .rotateSecretSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + return builder; } @@ -852,6 +895,17 @@ public UnaryCallSettings.Builder getIamPolicySettin return testIamPermissionsSettings; } + /** Returns the builder for the settings used for calls to enableManagedRotation. */ + public UnaryCallSettings.Builder + enableManagedRotationSettings() { + return enableManagedRotationSettings; + } + + /** Returns the builder for the settings used for calls to rotateSecret. */ + public UnaryCallSettings.Builder rotateSecretSettings() { + return rotateSecretSettings; + } + @Override public SecretManagerServiceStubSettings build() throws IOException { return new SecretManagerServiceStubSettings(this); diff --git a/java-secretmanager/google-cloud-secretmanager/src/main/resources/META-INF/native-image/com.google.cloud.secretmanager.v1/reflect-config.json b/java-secretmanager/google-cloud-secretmanager/src/main/resources/META-INF/native-image/com.google.cloud.secretmanager.v1/reflect-config.json index 25d631c13487..51540abdcc90 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/main/resources/META-INF/native-image/com.google.cloud.secretmanager.v1/reflect-config.json +++ b/java-secretmanager/google-cloud-secretmanager/src/main/resources/META-INF/native-image/com.google.cloud.secretmanager.v1/reflect-config.json @@ -638,6 +638,42 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.secretmanager.v1.EnableManagedRotationRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.secretmanager.v1.EnableManagedRotationRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.secretmanager.v1.EnableManagedRotationRequest$CloudSQLSingleUserCredentials", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.secretmanager.v1.EnableManagedRotationRequest$CloudSQLSingleUserCredentials$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.secretmanager.v1.EnableSecretVersionRequest", "queryAllDeclaredConstructors": true, @@ -908,6 +944,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.secretmanager.v1.RotateSecretRequest", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.secretmanager.v1.RotateSecretRequest$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.secretmanager.v1.Rotation", "queryAllDeclaredConstructors": true, @@ -926,6 +980,33 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.secretmanager.v1.Rotation$ManagedRotationStatus", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.secretmanager.v1.Rotation$ManagedRotationStatus$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.secretmanager.v1.Rotation$ManagedRotationStatus$State", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.secretmanager.v1.Secret", "queryAllDeclaredConstructors": true, @@ -944,6 +1025,15 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.secretmanager.v1.Secret$SecretType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.secretmanager.v1.SecretPayload", "queryAllDeclaredConstructors": true, @@ -1214,6 +1304,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.iam.v1.ResourcePolicyMember", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.iam.v1.ResourcePolicyMember$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.iam.v1.SetIamPolicyRequest", "queryAllDeclaredConstructors": true, @@ -1268,6 +1376,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.protobuf.Any", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.protobuf.Any$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.protobuf.DescriptorProtos$DescriptorProto", "queryAllDeclaredConstructors": true, @@ -2132,6 +2258,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.rpc.Status", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.rpc.Status$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.type.Expr", "queryAllDeclaredConstructors": true, diff --git a/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/MockSecretManagerServiceImpl.java b/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/MockSecretManagerServiceImpl.java index 7ab4ce3f7848..81b6cc0ae2c0 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/MockSecretManagerServiceImpl.java +++ b/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/MockSecretManagerServiceImpl.java @@ -377,4 +377,47 @@ public void testIamPermissions( Exception.class.getName()))); } } + + @Override + public void enableManagedRotation( + EnableManagedRotationRequest request, StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof SecretVersion) { + requests.add(request); + responseObserver.onNext(((SecretVersion) 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 EnableManagedRotation, expected %s or" + + " %s", + response == null ? "null" : response.getClass().getName(), + SecretVersion.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void rotateSecret( + RotateSecretRequest request, StreamObserver responseObserver) { + Object response = responses.poll(); + if (response instanceof SecretVersion) { + requests.add(request); + responseObserver.onNext(((SecretVersion) 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 RotateSecret, expected %s or %s", + response == null ? "null" : response.getClass().getName(), + SecretVersion.class.getName(), + Exception.class.getName()))); + } + } } diff --git a/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientHttpJsonTest.java b/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientHttpJsonTest.java index 5d2f1d588447..e880ebf82200 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientHttpJsonTest.java +++ b/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientHttpJsonTest.java @@ -35,6 +35,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; +import com.google.iam.v1.ResourcePolicyMember; import com.google.iam.v1.SetIamPolicyRequest; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; @@ -257,6 +258,7 @@ public void createSecretTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -316,6 +318,7 @@ public void createSecretTest2() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -375,6 +378,7 @@ public void createSecretTest3() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -546,6 +550,7 @@ public void getSecretTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -601,6 +606,7 @@ public void getSecretTest2() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -656,6 +662,7 @@ public void updateSecretTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -673,6 +680,7 @@ public void updateSecretTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); @@ -716,6 +724,7 @@ public void updateSecretExceptionTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); client.updateSecret(secret, updateMask); @@ -1614,4 +1623,230 @@ public void testIamPermissionsExceptionTest() throws Exception { // Expected exception. } } + + @Test + public void enableManagedRotationTest() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockService.addResponse(expectedResponse); + + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + + SecretVersion actualResponse = + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.assertEquals(expectedResponse, actualResponse); + + 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 enableManagedRotationExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void enableManagedRotationTest2() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockService.addResponse(expectedResponse); + + String parent = "projects/project-3502/secrets/secret-3502"; + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + + SecretVersion actualResponse = + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.assertEquals(expectedResponse, actualResponse); + + 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 enableManagedRotationExceptionTest2() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String parent = "projects/project-3502/secrets/secret-3502"; + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void rotateSecretTest() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockService.addResponse(expectedResponse); + + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + + SecretVersion actualResponse = client.rotateSecret(parent); + Assert.assertEquals(expectedResponse, actualResponse); + + 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 rotateSecretExceptionTest() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + client.rotateSecret(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void rotateSecretTest2() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockService.addResponse(expectedResponse); + + String parent = "projects/project-3502/secrets/secret-3502"; + + SecretVersion actualResponse = client.rotateSecret(parent); + Assert.assertEquals(expectedResponse, actualResponse); + + 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 rotateSecretExceptionTest2() throws Exception { + ApiException exception = + ApiExceptionFactory.createException( + new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); + mockService.addException(exception); + + try { + String parent = "projects/project-3502/secrets/secret-3502"; + client.rotateSecret(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } } diff --git a/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java b/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java index cc09e9ea0d4d..92c41bd6f416 100644 --- a/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java +++ b/java-secretmanager/google-cloud-secretmanager/src/test/java/com/google/cloud/secretmanager/v1/SecretManagerServiceClientTest.java @@ -32,6 +32,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; +import com.google.iam.v1.ResourcePolicyMember; import com.google.iam.v1.SetIamPolicyRequest; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; @@ -242,6 +243,7 @@ public void createSecretTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -297,6 +299,7 @@ public void createSecretTest2() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -352,6 +355,7 @@ public void createSecretTest3() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -509,6 +513,7 @@ public void getSecretTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -558,6 +563,7 @@ public void getSecretTest2() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -607,6 +613,7 @@ public void updateSecretTest() throws Exception { .setVersionDestroyTtl(Duration.newBuilder().build()) .setCustomerManagedEncryption(CustomerManagedEncryption.newBuilder().build()) .putAllTags(new HashMap()) + .setPolicyMember(ResourcePolicyMember.newBuilder().build()) .build(); mockSecretManagerService.addResponse(expectedResponse); @@ -1438,4 +1445,212 @@ public void testIamPermissionsExceptionTest() throws Exception { // Expected exception. } } + + @Test + public void enableManagedRotationTest() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockSecretManagerService.addResponse(expectedResponse); + + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + + SecretVersion actualResponse = + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockSecretManagerService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + EnableManagedRotationRequest actualRequest = + ((EnableManagedRotationRequest) actualRequests.get(0)); + + Assert.assertEquals(parent.toString(), actualRequest.getParent()); + Assert.assertEquals( + cloudSqlSingleUserCredentials, actualRequest.getCloudSqlSingleUserCredentials()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void enableManagedRotationExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockSecretManagerService.addException(exception); + + try { + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void enableManagedRotationTest2() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockSecretManagerService.addResponse(expectedResponse); + + String parent = "parent-995424086"; + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + + SecretVersion actualResponse = + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockSecretManagerService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + EnableManagedRotationRequest actualRequest = + ((EnableManagedRotationRequest) actualRequests.get(0)); + + Assert.assertEquals(parent, actualRequest.getParent()); + Assert.assertEquals( + cloudSqlSingleUserCredentials, actualRequest.getCloudSqlSingleUserCredentials()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void enableManagedRotationExceptionTest2() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockSecretManagerService.addException(exception); + + try { + String parent = "parent-995424086"; + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + client.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void rotateSecretTest() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockSecretManagerService.addResponse(expectedResponse); + + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + + SecretVersion actualResponse = client.rotateSecret(parent); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockSecretManagerService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + RotateSecretRequest actualRequest = ((RotateSecretRequest) actualRequests.get(0)); + + Assert.assertEquals(parent.toString(), actualRequest.getParent()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void rotateSecretExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockSecretManagerService.addException(exception); + + try { + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + client.rotateSecret(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void rotateSecretTest2() throws Exception { + SecretVersion expectedResponse = + SecretVersion.newBuilder() + .setName( + SecretVersionName.ofProjectSecretSecretVersionName( + "[PROJECT]", "[SECRET]", "[SECRET_VERSION]") + .toString()) + .setCreateTime(Timestamp.newBuilder().build()) + .setDestroyTime(Timestamp.newBuilder().build()) + .setReplicationStatus(ReplicationStatus.newBuilder().build()) + .setEtag("etag3123477") + .setClientSpecifiedPayloadChecksum(true) + .setScheduledDestroyTime(Timestamp.newBuilder().build()) + .setCustomerManagedEncryption(CustomerManagedEncryptionStatus.newBuilder().build()) + .build(); + mockSecretManagerService.addResponse(expectedResponse); + + String parent = "parent-995424086"; + + SecretVersion actualResponse = client.rotateSecret(parent); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockSecretManagerService.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + RotateSecretRequest actualRequest = ((RotateSecretRequest) actualRequests.get(0)); + + Assert.assertEquals(parent, actualRequest.getParent()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void rotateSecretExceptionTest2() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockSecretManagerService.addException(exception); + + try { + String parent = "parent-995424086"; + client.rotateSecret(parent); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } } diff --git a/java-secretmanager/grpc-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceGrpc.java b/java-secretmanager/grpc-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceGrpc.java index 80757b238fbe..d8d41a8e3837 100644 --- a/java-secretmanager/grpc-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceGrpc.java +++ b/java-secretmanager/grpc-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretManagerServiceGrpc.java @@ -728,6 +728,102 @@ private SecretManagerServiceGrpc() {} return getTestIamPermissionsMethod; } + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest, + com.google.cloud.secretmanager.v1.SecretVersion> + getEnableManagedRotationMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "EnableManagedRotation", + requestType = com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.class, + responseType = com.google.cloud.secretmanager.v1.SecretVersion.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest, + com.google.cloud.secretmanager.v1.SecretVersion> + getEnableManagedRotationMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest, + com.google.cloud.secretmanager.v1.SecretVersion> + getEnableManagedRotationMethod; + if ((getEnableManagedRotationMethod = SecretManagerServiceGrpc.getEnableManagedRotationMethod) + == null) { + synchronized (SecretManagerServiceGrpc.class) { + if ((getEnableManagedRotationMethod = + SecretManagerServiceGrpc.getEnableManagedRotationMethod) + == null) { + SecretManagerServiceGrpc.getEnableManagedRotationMethod = + getEnableManagedRotationMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName( + generateFullMethodName(SERVICE_NAME, "EnableManagedRotation")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.secretmanager.v1.SecretVersion.getDefaultInstance())) + .setSchemaDescriptor( + new SecretManagerServiceMethodDescriptorSupplier("EnableManagedRotation")) + .build(); + } + } + } + return getEnableManagedRotationMethod; + } + + private static volatile io.grpc.MethodDescriptor< + com.google.cloud.secretmanager.v1.RotateSecretRequest, + com.google.cloud.secretmanager.v1.SecretVersion> + getRotateSecretMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "RotateSecret", + requestType = com.google.cloud.secretmanager.v1.RotateSecretRequest.class, + responseType = com.google.cloud.secretmanager.v1.SecretVersion.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor< + com.google.cloud.secretmanager.v1.RotateSecretRequest, + com.google.cloud.secretmanager.v1.SecretVersion> + getRotateSecretMethod() { + io.grpc.MethodDescriptor< + com.google.cloud.secretmanager.v1.RotateSecretRequest, + com.google.cloud.secretmanager.v1.SecretVersion> + getRotateSecretMethod; + if ((getRotateSecretMethod = SecretManagerServiceGrpc.getRotateSecretMethod) == null) { + synchronized (SecretManagerServiceGrpc.class) { + if ((getRotateSecretMethod = SecretManagerServiceGrpc.getRotateSecretMethod) == null) { + SecretManagerServiceGrpc.getRotateSecretMethod = + getRotateSecretMethod = + io.grpc.MethodDescriptor + . + newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "RotateSecret")) + .setSampledToLocalTracing(true) + .setRequestMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.secretmanager.v1.RotateSecretRequest + .getDefaultInstance())) + .setResponseMarshaller( + io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.secretmanager.v1.SecretVersion.getDefaultInstance())) + .setSchemaDescriptor( + new SecretManagerServiceMethodDescriptorSupplier("RotateSecret")) + .build(); + } + } + } + return getRotateSecretMethod; + } + /** Creates a new async stub that supports all call types for the service */ public static SecretManagerServiceStub newStub(io.grpc.Channel channel) { io.grpc.stub.AbstractStub.StubFactory factory = @@ -1044,6 +1140,42 @@ default void testIamPermissions( io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( getTestIamPermissionsMethod(), responseObserver); } + + /** + * + * + *
+     * Enables the managed rotation feature for a
+     * [Secret][google.cloud.secretmanager.v1.Secret]. This method can only be
+     * triggered once for a secret. In order to do further rotations, RotateSecret
+     * should be used. This method will add a secret version and update the
+     * password in Cloud SQL.
+     * 
+ */ + default void enableManagedRotation( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getEnableManagedRotationMethod(), responseObserver); + } + + /** + * + * + *
+     * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret].
+     * This can only be triggered after Managed rotation has been enabled.
+     * This method will add a secret version and update the password in Cloud SQL.
+     * 
+ */ + default void rotateSecret( + com.google.cloud.secretmanager.v1.RotateSecretRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall( + getRotateSecretMethod(), responseObserver); + } } /** @@ -1367,6 +1499,46 @@ public void testIamPermissions( request, responseObserver); } + + /** + * + * + *
+     * Enables the managed rotation feature for a
+     * [Secret][google.cloud.secretmanager.v1.Secret]. This method can only be
+     * triggered once for a secret. In order to do further rotations, RotateSecret
+     * should be used. This method will add a secret version and update the
+     * password in Cloud SQL.
+     * 
+ */ + public void enableManagedRotation( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getEnableManagedRotationMethod(), getCallOptions()), + request, + responseObserver); + } + + /** + * + * + *
+     * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret].
+     * This can only be triggered after Managed rotation has been enabled.
+     * This method will add a secret version and update the password in Cloud SQL.
+     * 
+ */ + public void rotateSecret( + com.google.cloud.secretmanager.v1.RotateSecretRequest request, + io.grpc.stub.StreamObserver + responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getRotateSecretMethod(), getCallOptions()), + request, + responseObserver); + } } /** @@ -1630,6 +1802,40 @@ public com.google.iam.v1.TestIamPermissionsResponse testIamPermissions( return io.grpc.stub.ClientCalls.blockingV2UnaryCall( getChannel(), getTestIamPermissionsMethod(), getCallOptions(), request); } + + /** + * + * + *
+     * Enables the managed rotation feature for a
+     * [Secret][google.cloud.secretmanager.v1.Secret]. This method can only be
+     * triggered once for a secret. In order to do further rotations, RotateSecret
+     * should be used. This method will add a secret version and update the
+     * password in Cloud SQL.
+     * 
+ */ + public com.google.cloud.secretmanager.v1.SecretVersion enableManagedRotation( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getEnableManagedRotationMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret].
+     * This can only be triggered after Managed rotation has been enabled.
+     * This method will add a secret version and update the password in Cloud SQL.
+     * 
+ */ + public com.google.cloud.secretmanager.v1.SecretVersion rotateSecret( + com.google.cloud.secretmanager.v1.RotateSecretRequest request) + throws io.grpc.StatusException { + return io.grpc.stub.ClientCalls.blockingV2UnaryCall( + getChannel(), getRotateSecretMethod(), getCallOptions(), request); + } } /** @@ -1880,6 +2086,38 @@ public com.google.iam.v1.TestIamPermissionsResponse testIamPermissions( return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getTestIamPermissionsMethod(), getCallOptions(), request); } + + /** + * + * + *
+     * Enables the managed rotation feature for a
+     * [Secret][google.cloud.secretmanager.v1.Secret]. This method can only be
+     * triggered once for a secret. In order to do further rotations, RotateSecret
+     * should be used. This method will add a secret version and update the
+     * password in Cloud SQL.
+     * 
+ */ + public com.google.cloud.secretmanager.v1.SecretVersion enableManagedRotation( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getEnableManagedRotationMethod(), getCallOptions(), request); + } + + /** + * + * + *
+     * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret].
+     * This can only be triggered after Managed rotation has been enabled.
+     * This method will add a secret version and update the password in Cloud SQL.
+     * 
+ */ + public com.google.cloud.secretmanager.v1.SecretVersion rotateSecret( + com.google.cloud.secretmanager.v1.RotateSecretRequest request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getRotateSecretMethod(), getCallOptions(), request); + } } /** @@ -2146,6 +2384,41 @@ protected SecretManagerServiceFutureStub build( return io.grpc.stub.ClientCalls.futureUnaryCall( getChannel().newCall(getTestIamPermissionsMethod(), getCallOptions()), request); } + + /** + * + * + *
+     * Enables the managed rotation feature for a
+     * [Secret][google.cloud.secretmanager.v1.Secret]. This method can only be
+     * triggered once for a secret. In order to do further rotations, RotateSecret
+     * should be used. This method will add a secret version and update the
+     * password in Cloud SQL.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.secretmanager.v1.SecretVersion> + enableManagedRotation( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getEnableManagedRotationMethod(), getCallOptions()), request); + } + + /** + * + * + *
+     * Do a managed rotation for a [Secret][google.cloud.secretmanager.v1.Secret].
+     * This can only be triggered after Managed rotation has been enabled.
+     * This method will add a secret version and update the password in Cloud SQL.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture< + com.google.cloud.secretmanager.v1.SecretVersion> + rotateSecret(com.google.cloud.secretmanager.v1.RotateSecretRequest request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getRotateSecretMethod(), getCallOptions()), request); + } } private static final int METHODID_LIST_SECRETS = 0; @@ -2163,6 +2436,8 @@ protected SecretManagerServiceFutureStub build( private static final int METHODID_SET_IAM_POLICY = 12; private static final int METHODID_GET_IAM_POLICY = 13; private static final int METHODID_TEST_IAM_PERMISSIONS = 14; + private static final int METHODID_ENABLE_MANAGED_ROTATION = 15; + private static final int METHODID_ROTATE_SECRET = 16; private static final class MethodHandlers implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -2270,6 +2545,18 @@ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserv (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_ENABLE_MANAGED_ROTATION: + serviceImpl.enableManagedRotation( + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest) request, + (io.grpc.stub.StreamObserver) + responseObserver); + break; + case METHODID_ROTATE_SECRET: + serviceImpl.rotateSecret( + (com.google.cloud.secretmanager.v1.RotateSecretRequest) request, + (io.grpc.stub.StreamObserver) + responseObserver); + break; default: throw new AssertionError(); } @@ -2385,6 +2672,20 @@ public static final io.grpc.ServerServiceDefinition bindService(AsyncService ser com.google.iam.v1.TestIamPermissionsRequest, com.google.iam.v1.TestIamPermissionsResponse>( service, METHODID_TEST_IAM_PERMISSIONS))) + .addMethod( + getEnableManagedRotationMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest, + com.google.cloud.secretmanager.v1.SecretVersion>( + service, METHODID_ENABLE_MANAGED_ROTATION))) + .addMethod( + getRotateSecretMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.google.cloud.secretmanager.v1.RotateSecretRequest, + com.google.cloud.secretmanager.v1.SecretVersion>( + service, METHODID_ROTATE_SECRET))) .build(); } @@ -2451,6 +2752,8 @@ public static io.grpc.ServiceDescriptor getServiceDescriptor() { .addMethod(getSetIamPolicyMethod()) .addMethod(getGetIamPolicyMethod()) .addMethod(getTestIamPermissionsMethod()) + .addMethod(getEnableManagedRotationMethod()) + .addMethod(getRotateSecretMethod()) .build(); } } diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/EnableManagedRotationRequest.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/EnableManagedRotationRequest.java new file mode 100644 index 000000000000..a57bb489cb03 --- /dev/null +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/EnableManagedRotationRequest.java @@ -0,0 +1,2224 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/secretmanager/v1/service.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.secretmanager.v1; + +/** + * + * + *
+ * Request message for
+ * [SecretManagerService.EnableManagedRotation][google.cloud.secretmanager.v1.SecretManagerService.EnableManagedRotation].
+ * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.EnableManagedRotationRequest} + */ +@com.google.protobuf.Generated +public final class EnableManagedRotationRequest extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.secretmanager.v1.EnableManagedRotationRequest) + EnableManagedRotationRequestOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "EnableManagedRotationRequest"); + } + + // Use EnableManagedRotationRequest.newBuilder() to construct. + private EnableManagedRotationRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private EnableManagedRotationRequest() { + parent_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.class, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.Builder.class); + } + + public interface CloudSQLSingleUserCredentialsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Required. Instance ID of the Cloud SQL instance.
+     * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The instanceId. + */ + java.lang.String getInstanceId(); + + /** + * + * + *
+     * Required. Instance ID of the Cloud SQL instance.
+     * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for instanceId. + */ + com.google.protobuf.ByteString getInstanceIdBytes(); + + /** + * + * + *
+     * Required. Username of the Cloud SQL instance.
+     * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The username. + */ + java.lang.String getUsername(); + + /** + * + * + *
+     * Required. Username of the Cloud SQL instance.
+     * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for username. + */ + com.google.protobuf.ByteString getUsernameBytes(); + + /** + * + * + *
+     * Optional. Password of the Cloud SQL instance. If this is not provided,
+     * a random password will be generated.
+     * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The password. + */ + java.lang.String getPassword(); + + /** + * + * + *
+     * Optional. Password of the Cloud SQL instance. If this is not provided,
+     * a random password will be generated.
+     * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for password. + */ + com.google.protobuf.ByteString getPasswordBytes(); + } + + /** + * + * + *
+   * These are the credentials required for Cloud SQL DB for Single user
+   * Managed Rotation.
+   * 
+ * + * Protobuf type {@code + * google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials} + */ + public static final class CloudSQLSingleUserCredentials + extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials) + CloudSQLSingleUserCredentialsOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "CloudSQLSingleUserCredentials"); + } + + // Use CloudSQLSingleUserCredentials.newBuilder() to construct. + private CloudSQLSingleUserCredentials(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private CloudSQLSingleUserCredentials() { + instanceId_ = ""; + username_ = ""; + password_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_CloudSQLSingleUserCredentials_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_CloudSQLSingleUserCredentials_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.class, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.Builder.class); + } + + public static final int INSTANCE_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object instanceId_ = ""; + + /** + * + * + *
+     * Required. Instance ID of the Cloud SQL instance.
+     * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The instanceId. + */ + @java.lang.Override + public java.lang.String getInstanceId() { + java.lang.Object ref = instanceId_; + 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(); + instanceId_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. Instance ID of the Cloud SQL instance.
+     * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for instanceId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInstanceIdBytes() { + java.lang.Object ref = instanceId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + instanceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USERNAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object username_ = ""; + + /** + * + * + *
+     * Required. Username of the Cloud SQL instance.
+     * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The username. + */ + @java.lang.Override + public java.lang.String getUsername() { + java.lang.Object ref = username_; + 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(); + username_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. Username of the Cloud SQL instance.
+     * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for username. + */ + @java.lang.Override + public com.google.protobuf.ByteString getUsernameBytes() { + java.lang.Object ref = username_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + username_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PASSWORD_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object password_ = ""; + + /** + * + * + *
+     * Optional. Password of the Cloud SQL instance. If this is not provided,
+     * a random password will be generated.
+     * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The password. + */ + @java.lang.Override + public java.lang.String getPassword() { + java.lang.Object ref = password_; + 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(); + password_ = s; + return s; + } + } + + /** + * + * + *
+     * Optional. Password of the Cloud SQL instance. If this is not provided,
+     * a random password will be generated.
+     * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for password. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPasswordBytes() { + java.lang.Object ref = password_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + password_ = 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.GeneratedMessage.isStringEmpty(instanceId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, instanceId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(username_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, username_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(password_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, password_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(instanceId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, instanceId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(username_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, username_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(password_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, password_); + } + 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.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials)) { + return super.equals(obj); + } + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + other = + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + obj; + + if (!getInstanceId().equals(other.getInstanceId())) return false; + if (!getUsername().equals(other.getUsername())) return false; + if (!getPassword().equals(other.getPassword())) 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) + INSTANCE_ID_FIELD_NUMBER; + hash = (53 * hash) + getInstanceId().hashCode(); + hash = (37 * hash) + USERNAME_FIELD_NUMBER; + hash = (53 * hash) + getUsername().hashCode(); + hash = (37 * hash) + PASSWORD_FIELD_NUMBER; + hash = (53 * hash) + getPassword().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * These are the credentials required for Cloud SQL DB for Single user
+     * Managed Rotation.
+     * 
+ * + * Protobuf type {@code + * google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials) + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentialsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_CloudSQLSingleUserCredentials_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_CloudSQLSingleUserCredentials_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.class, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.Builder.class); + } + + // Construct using + // com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + instanceId_ = ""; + username_ = ""; + password_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_CloudSQLSingleUserCredentials_descriptor; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + getDefaultInstanceForType() { + return com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + build() { + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + buildPartial() { + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + result = + new com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.instanceId_ = instanceId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.username_ = username_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.password_ = password_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) { + return mergeFrom( + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + other) { + if (other + == com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance()) return this; + if (!other.getInstanceId().isEmpty()) { + instanceId_ = other.instanceId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getUsername().isEmpty()) { + username_ = other.username_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getPassword().isEmpty()) { + password_ = other.password_; + bitField0_ |= 0x00000004; + 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: + { + instanceId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + username_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + password_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + 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 java.lang.Object instanceId_ = ""; + + /** + * + * + *
+       * Required. Instance ID of the Cloud SQL instance.
+       * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The instanceId. + */ + public java.lang.String getInstanceId() { + java.lang.Object ref = instanceId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + instanceId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. Instance ID of the Cloud SQL instance.
+       * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for instanceId. + */ + public com.google.protobuf.ByteString getInstanceIdBytes() { + java.lang.Object ref = instanceId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + instanceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. Instance ID of the Cloud SQL instance.
+       * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The instanceId to set. + * @return This builder for chaining. + */ + public Builder setInstanceId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + instanceId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. Instance ID of the Cloud SQL instance.
+       * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearInstanceId() { + instanceId_ = getDefaultInstance().getInstanceId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. Instance ID of the Cloud SQL instance.
+       * 
+ * + * string instance_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for instanceId to set. + * @return This builder for chaining. + */ + public Builder setInstanceIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + instanceId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object username_ = ""; + + /** + * + * + *
+       * Required. Username of the Cloud SQL instance.
+       * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The username. + */ + public java.lang.String getUsername() { + java.lang.Object ref = username_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + username_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. Username of the Cloud SQL instance.
+       * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for username. + */ + public com.google.protobuf.ByteString getUsernameBytes() { + java.lang.Object ref = username_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + username_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. Username of the Cloud SQL instance.
+       * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The username to set. + * @return This builder for chaining. + */ + public Builder setUsername(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + username_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. Username of the Cloud SQL instance.
+       * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearUsername() { + username_ = getDefaultInstance().getUsername(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. Username of the Cloud SQL instance.
+       * 
+ * + * string username = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for username to set. + * @return This builder for chaining. + */ + public Builder setUsernameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + username_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object password_ = ""; + + /** + * + * + *
+       * Optional. Password of the Cloud SQL instance. If this is not provided,
+       * a random password will be generated.
+       * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The password. + */ + public java.lang.String getPassword() { + java.lang.Object ref = password_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + password_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Optional. Password of the Cloud SQL instance. If this is not provided,
+       * a random password will be generated.
+       * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for password. + */ + public com.google.protobuf.ByteString getPasswordBytes() { + java.lang.Object ref = password_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + password_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Optional. Password of the Cloud SQL instance. If this is not provided,
+       * a random password will be generated.
+       * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The password to set. + * @return This builder for chaining. + */ + public Builder setPassword(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + password_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Password of the Cloud SQL instance. If this is not provided,
+       * a random password will be generated.
+       * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearPassword() { + password_ = getDefaultInstance().getPassword(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+       * Optional. Password of the Cloud SQL instance. If this is not provided,
+       * a random password will be generated.
+       * 
+ * + * string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for password to set. + * @return This builder for chaining. + */ + public Builder setPasswordBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + password_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials) + } + + // @@protoc_insertion_point(class_scope:google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials) + private static final com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials(); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CloudSQLSingleUserCredentials 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.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int credentialsCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object credentials_; + + public enum CredentialsCase + implements + com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + CLOUD_SQL_SINGLE_USER_CREDENTIALS(2), + CREDENTIALS_NOT_SET(0); + private final int value; + + private CredentialsCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CredentialsCase valueOf(int value) { + return forNumber(value); + } + + public static CredentialsCase forNumber(int value) { + switch (value) { + case 2: + return CLOUD_SQL_SINGLE_USER_CREDENTIALS; + case 0: + return CREDENTIALS_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + }; + + public CredentialsCase getCredentialsCase() { + return CredentialsCase.forNumber(credentialsCase_); + } + + public static final int PARENT_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object parent_ = ""; + + /** + * + * + *
+   * Required. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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 CLOUD_SQL_SINGLE_USER_CREDENTIALS_FIELD_NUMBER = 2; + + /** + * + * + *
+   * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + * + * @return Whether the cloudSqlSingleUserCredentials field is set. + */ + @java.lang.Override + public boolean hasCloudSqlSingleUserCredentials() { + return credentialsCase_ == 2; + } + + /** + * + * + *
+   * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + * + * @return The cloudSqlSingleUserCredentials. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + getCloudSqlSingleUserCredentials() { + if (credentialsCase_ == 2) { + return (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_; + } + return com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance(); + } + + /** + * + * + *
+   * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentialsOrBuilder + getCloudSqlSingleUserCredentialsOrBuilder() { + if (credentialsCase_ == 2) { + return (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_; + } + return com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance(); + } + + 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.GeneratedMessage.isStringEmpty(parent_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, parent_); + } + if (credentialsCase_ == 2) { + output.writeMessage( + 2, + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, parent_); + } + if (credentialsCase_ == 2) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 2, + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_); + } + 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.cloud.secretmanager.v1.EnableManagedRotationRequest)) { + return super.equals(obj); + } + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest other = + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest) obj; + + if (!getParent().equals(other.getParent())) return false; + if (!getCredentialsCase().equals(other.getCredentialsCase())) return false; + switch (credentialsCase_) { + case 2: + if (!getCloudSqlSingleUserCredentials().equals(other.getCloudSqlSingleUserCredentials())) + return false; + break; + case 0: + default: + } + 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(); + switch (credentialsCase_) { + case 2: + hash = (37 * hash) + CLOUD_SQL_SINGLE_USER_CREDENTIALS_FIELD_NUMBER; + hash = (53 * hash) + getCloudSqlSingleUserCredentials().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Request message for
+   * [SecretManagerService.EnableManagedRotation][google.cloud.secretmanager.v1.SecretManagerService.EnableManagedRotation].
+   * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.EnableManagedRotationRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.secretmanager.v1.EnableManagedRotationRequest) + com.google.cloud.secretmanager.v1.EnableManagedRotationRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.class, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.Builder.class); + } + + // Construct using com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + parent_ = ""; + if (cloudSqlSingleUserCredentialsBuilder_ != null) { + cloudSqlSingleUserCredentialsBuilder_.clear(); + } + credentialsCase_ = 0; + credentials_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + getDefaultInstanceForType() { + return com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest build() { + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest buildPartial() { + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest result = + new com.google.cloud.secretmanager.v1.EnableManagedRotationRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.parent_ = parent_; + } + } + + private void buildPartialOneofs( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest result) { + result.credentialsCase_ = credentialsCase_; + result.credentials_ = this.credentials_; + if (credentialsCase_ == 2 && cloudSqlSingleUserCredentialsBuilder_ != null) { + result.credentials_ = cloudSqlSingleUserCredentialsBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.secretmanager.v1.EnableManagedRotationRequest) { + return mergeFrom((com.google.cloud.secretmanager.v1.EnableManagedRotationRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.secretmanager.v1.EnableManagedRotationRequest other) { + if (other + == com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.getDefaultInstance()) + return this; + if (!other.getParent().isEmpty()) { + parent_ = other.parent_; + bitField0_ |= 0x00000001; + onChanged(); + } + switch (other.getCredentialsCase()) { + case CLOUD_SQL_SINGLE_USER_CREDENTIALS: + { + mergeCloudSqlSingleUserCredentials(other.getCloudSqlSingleUserCredentials()); + break; + } + case CREDENTIALS_NOT_SET: + { + break; + } + } + 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: + { + input.readMessage( + internalGetCloudSqlSingleUserCredentialsFieldBuilder().getBuilder(), + extensionRegistry); + credentialsCase_ = 2; + 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 credentialsCase_ = 0; + private java.lang.Object credentials_; + + public CredentialsCase getCredentialsCase() { + return CredentialsCase.forNumber(credentialsCase_); + } + + public Builder clearCredentials() { + credentialsCase_ = 0; + credentials_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object parent_ = ""; + + /** + * + * + *
+     * Required. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearParent() { + parent_ = getDefaultInstance().getParent(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for parent to set. + * @return This builder for chaining. + */ + public Builder setParentBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + parent_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.Builder, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentialsOrBuilder> + cloudSqlSingleUserCredentialsBuilder_; + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + * + * @return Whether the cloudSqlSingleUserCredentials field is set. + */ + @java.lang.Override + public boolean hasCloudSqlSingleUserCredentials() { + return credentialsCase_ == 2; + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + * + * @return The cloudSqlSingleUserCredentials. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials + getCloudSqlSingleUserCredentials() { + if (cloudSqlSingleUserCredentialsBuilder_ == null) { + if (credentialsCase_ == 2) { + return (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_; + } + return com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance(); + } else { + if (credentialsCase_ == 2) { + return cloudSqlSingleUserCredentialsBuilder_.getMessage(); + } + return com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + public Builder setCloudSqlSingleUserCredentials( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + value) { + if (cloudSqlSingleUserCredentialsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + credentials_ = value; + onChanged(); + } else { + cloudSqlSingleUserCredentialsBuilder_.setMessage(value); + } + credentialsCase_ = 2; + return this; + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + public Builder setCloudSqlSingleUserCredentials( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + .Builder + builderForValue) { + if (cloudSqlSingleUserCredentialsBuilder_ == null) { + credentials_ = builderForValue.build(); + onChanged(); + } else { + cloudSqlSingleUserCredentialsBuilder_.setMessage(builderForValue.build()); + } + credentialsCase_ = 2; + return this; + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + public Builder mergeCloudSqlSingleUserCredentials( + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + value) { + if (cloudSqlSingleUserCredentialsBuilder_ == null) { + if (credentialsCase_ == 2 + && credentials_ + != com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance()) { + credentials_ = + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.newBuilder( + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_) + .mergeFrom(value) + .buildPartial(); + } else { + credentials_ = value; + } + onChanged(); + } else { + if (credentialsCase_ == 2) { + cloudSqlSingleUserCredentialsBuilder_.mergeFrom(value); + } else { + cloudSqlSingleUserCredentialsBuilder_.setMessage(value); + } + } + credentialsCase_ = 2; + return this; + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + public Builder clearCloudSqlSingleUserCredentials() { + if (cloudSqlSingleUserCredentialsBuilder_ == null) { + if (credentialsCase_ == 2) { + credentialsCase_ = 0; + credentials_ = null; + onChanged(); + } + } else { + if (credentialsCase_ == 2) { + credentialsCase_ = 0; + credentials_ = null; + } + cloudSqlSingleUserCredentialsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.Builder + getCloudSqlSingleUserCredentialsBuilder() { + return internalGetCloudSqlSingleUserCredentialsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentialsOrBuilder + getCloudSqlSingleUserCredentialsOrBuilder() { + if ((credentialsCase_ == 2) && (cloudSqlSingleUserCredentialsBuilder_ != null)) { + return cloudSqlSingleUserCredentialsBuilder_.getMessageOrBuilder(); + } else { + if (credentialsCase_ == 2) { + return (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_; + } + return com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance(); + } + } + + /** + * + * + *
+     * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.Builder, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentialsOrBuilder> + internalGetCloudSqlSingleUserCredentialsFieldBuilder() { + if (cloudSqlSingleUserCredentialsBuilder_ == null) { + if (!(credentialsCase_ == 2)) { + credentials_ = + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.getDefaultInstance(); + } + cloudSqlSingleUserCredentialsBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials.Builder, + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentialsOrBuilder>( + (com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentials) + credentials_, + getParentForChildren(), + isClean()); + credentials_ = null; + } + credentialsCase_ = 2; + onChanged(); + return cloudSqlSingleUserCredentialsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.secretmanager.v1.EnableManagedRotationRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.secretmanager.v1.EnableManagedRotationRequest) + private static final com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.secretmanager.v1.EnableManagedRotationRequest(); + } + + public static com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EnableManagedRotationRequest 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.cloud.secretmanager.v1.EnableManagedRotationRequest + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/EnableManagedRotationRequestOrBuilder.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/EnableManagedRotationRequestOrBuilder.java new file mode 100644 index 000000000000..97f69b43b800 --- /dev/null +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/EnableManagedRotationRequestOrBuilder.java @@ -0,0 +1,113 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/secretmanager/v1/service.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.secretmanager.v1; + +@com.google.protobuf.Generated +public interface EnableManagedRotationRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.secretmanager.v1.EnableManagedRotationRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The parent. + */ + java.lang.String getParent(); + + /** + * + * + *
+   * Required. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for parent. + */ + com.google.protobuf.ByteString getParentBytes(); + + /** + * + * + *
+   * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + * + * @return Whether the cloudSqlSingleUserCredentials field is set. + */ + boolean hasCloudSqlSingleUserCredentials(); + + /** + * + * + *
+   * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + * + * @return The cloudSqlSingleUserCredentials. + */ + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials + getCloudSqlSingleUserCredentials(); + + /** + * + * + *
+   * Credentials required for Cloud SQL DB for Single user Managed Rotation.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloud_sql_single_user_credentials = 2; + * + */ + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest + .CloudSQLSingleUserCredentialsOrBuilder + getCloudSqlSingleUserCredentialsOrBuilder(); + + com.google.cloud.secretmanager.v1.EnableManagedRotationRequest.CredentialsCase + getCredentialsCase(); +} diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java index 83da625f5690..f62a3fb61eba 100644 --- a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ResourcesProto.java @@ -112,6 +112,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_cloud_secretmanager_v1_Rotation_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_google_cloud_secretmanager_v1_Rotation_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable @@ -129,33 +133,37 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "-google/cloud/secretmanager/v1/resource" + "s.proto\022\035google.cloud.secretmanager.v1\032\037" + "google/api/field_behavior.proto\032\031google/" - + "api/resource.proto\032\036google/protobuf/dura" - + "tion.proto\032\037google/protobuf/timestamp.proto\"\331\t\n" + + "api/resource.proto\032*google/iam/v1/resour" + + "ce_policy_member.proto\032\036google/protobuf/" + + "duration.proto\032\037google/protobuf/timestamp.proto\032\027google/rpc/status.proto\"\371\013\n" + "\006Secret\022\021\n" + "\004name\030\001 \001(\tB\003\340A\003\022G\n" - + "\013replication\030\002" - + " \001(\0132*.google.cloud.secretmanager.v1.ReplicationB\006\340A\005\340A\001\0224\n" + + "\013replication\030\002 " + + "\001(\0132*.google.cloud.secretmanager.v1.ReplicationB\006\340A\005\340A\001\0224\n" + "\013create_time\030\003 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022A\n" + "\006labels\030\004 \003(\01321.google.cloud.secretmanager.v1.Secret.LabelsEntry\0229\n" - + "\006topics\030\005 " - + "\003(\0132$.google.cloud.secretmanager.v1.TopicB\003\340A\001\0226\n" + + "\006topics\030\005" + + " \003(\0132$.google.cloud.secretmanager.v1.TopicB\003\340A\001\0226\n" + "\013expire_time\030\006" + " \001(\0132\032.google.protobuf.TimestampB\003\340A\001H\000\022-\n" + "\003ttl\030\007 \001(\0132\031.google.protobuf.DurationB\003\340A\004H\000\022\021\n" + "\004etag\030\010 \001(\tB\003\340A\001\022>\n" + "\010rotation\030\t" + " \001(\0132\'.google.cloud.secretmanager.v1.RotationB\003\340A\001\022W\n" - + "\017version_aliases\030\013 \003(\01329.google.cloud.secretm" - + "anager.v1.Secret.VersionAliasesEntryB\003\340A\001\022P\n" + + "\017version_aliases\030\013" + + " \003(\01329.google.cloud.secretmanager.v1.Secret.VersionAliasesEntryB\003\340A\001\022P\n" + "\013annotations\030\r" - + " \003(\01326.google.cloud.se" - + "cretmanager.v1.Secret.AnnotationsEntryB\003\340A\001\022;\n" + + " \003(\01326.google.cloud.secretmanager.v1.Secret.AnnotationsEntryB\003\340A\001\022;\n" + "\023version_destroy_ttl\030\016" + " \001(\0132\031.google.protobuf.DurationB\003\340A\001\022b\n" - + "\033customer_managed_encryption\030\017 \001(\01328.google.cloud.sec" - + "retmanager.v1.CustomerManagedEncryptionB\003\340A\001\022H\n" + + "\033customer_managed_encryption\030\017" + + " \001(\01328.google.cloud.secretmanager.v1.CustomerManagedEncryptionB\003\340A\001\022H\n" + "\004tags\030\020 \003(\0132/.google.cloud.secretmanager.v1.Secret.TagsEntryB" - + "\t\340A\004\340A\005\340A\001\032-\n" + + "\t\340A\004\340A\005\340A\001\022M\n" + + "\013secret_type\030\021" + + " \001(\01620.google.cloud.secretmanager.v1.Secret.SecretTypeB\006\340A\005\340A\001\022?\n\r" + + "policy_member\030\022" + + " \001(\0132#.google.iam.v1.ResourcePolicyMemberB\003\340A\003\032-\n" + "\013LabelsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n" + "\005value\030\002 \001(\t:\0028\001\0325\n" @@ -167,9 +175,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\005value\030\002 \001(\t:\0028\001\032+\n" + "\tTagsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n" - + "\005value\030\002 \001(\t:\0028\001:\231\001\352A\225\001\n" - + "#secretmanager.googleapis.com/Secret\022#projects/{project}/secrets/{secret}\0228" - + "projects/{project}/locations/{location}/secrets/{secret}*\007secrets2\006secretB\014\n\n" + + "\005value\030\002 \001(\t:\0028\001\"\215\001\n\n" + + "SecretType\022\033\n" + + "\027SECRET_TYPE_UNSPECIFIED\020\000\022\034\n" + + "\030CLOUD_SQL_DB_CREDENTIALS\020\001\022\016\n\n" + + "ACCESS_KEY\020\002\022\017\n" + + "\013CERTIFICATE\020\003\022\030\n" + + "\024OTHER_DB_CREDENTIALS\020\004\022\t\n" + + "\005OTHER\0202:\231\001\352A\225\001\n" + + "#secretmanager.googleapis.com/Secret\022#projects/{project}/secrets/{secret}\0228pro" + + "jects/{project}/locations/{location}/secrets/{secret}*\007secrets2\006secretB\014\n\n" + "expiration\"\302\006\n\r" + "SecretVersion\022\021\n" + "\004name\030\001 \001(\tB\003\340A\003\0224\n" @@ -183,69 +198,79 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "!client_specified_payload_checksum\030\007 \001(\010B\003\340A\003\022?\n" + "\026scheduled_destroy_time\030\010" + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022h\n" - + "\033customer_managed_encryption\030\t \001(\0132>.googl" - + "e.cloud.secretmanager.v1.CustomerManagedEncryptionStatusB\003\340A\003\"H\n" + + "\033customer_managed_encryption\030\t \001(\0132>.google.c" + + "loud.secretmanager.v1.CustomerManagedEncryptionStatusB\003\340A\003\"H\n" + "\005State\022\025\n" + "\021STATE_UNSPECIFIED\020\000\022\013\n" + "\007ENABLED\020\001\022\014\n" + "\010DISABLED\020\002\022\r\n" + "\tDESTROYED\020\003:\342\001\352A\336\001\n" - + "*secretmanager.googleapis.com/SecretVersion\022=projects/{pr" - + "oject}/secrets/{secret}/versions/{secret_version}\022Rprojects/{project}/locations/" - + "{location}/secrets/{secret}/versions/{secret_version}*\016secretVersions2\r" + + "*secretmanager.googleapis.com/SecretVersion\022=projects/{proje" + + "ct}/secrets/{secret}/versions/{secret_version}\022Rprojects/{project}/locations/{lo" + + "cation}/secrets/{secret}/versions/{secret_version}*\016secretVersions2\r" + "secretVersion\"\220\004\n" + "\013Replication\022I\n" - + "\tautomatic\030\001 \001(\0132" - + "4.google.cloud.secretmanager.v1.Replication.AutomaticH\000\022N\n" - + "\014user_managed\030\002 \001(\01326." - + "google.cloud.secretmanager.v1.Replication.UserManagedH\000\032o\n" + + "\tautomatic\030\001 \001(\01324.g" + + "oogle.cloud.secretmanager.v1.Replication.AutomaticH\000\022N\n" + + "\014user_managed\030\002 \001(\01326.goo" + + "gle.cloud.secretmanager.v1.Replication.UserManagedH\000\032o\n" + "\tAutomatic\022b\n" - + "\033customer_managed_encryption\030\001 \001(\01328.google.cloud" - + ".secretmanager.v1.CustomerManagedEncryptionB\003\340A\001\032\345\001\n" + + "\033customer_managed_encryption\030\001 \001(\01328.google.cloud.se" + + "cretmanager.v1.CustomerManagedEncryptionB\003\340A\001\032\345\001\n" + "\013UserManaged\022U\n" - + "\010replicas\030\001 \003" - + "(\0132>.google.cloud.secretmanager.v1.Replication.UserManaged.ReplicaB\003\340A\002\032\177\n" + + "\010replicas\030\001 \003(\0132" + + ">.google.cloud.secretmanager.v1.Replication.UserManaged.ReplicaB\003\340A\002\032\177\n" + "\007Replica\022\020\n" + "\010location\030\001 \001(\t\022b\n" - + "\033customer_managed_encryption\030\002 \001(\01328.google.cloud.secretm" - + "anager.v1.CustomerManagedEncryptionB\003\340A\001B\r\n" + + "\033customer_managed_encryption\030\002" + + " \001(\01328.google.cloud.secretmanager.v1.CustomerManagedEncryptionB\003\340A\001B\r\n" + "\013replication\"6\n" + "\031CustomerManagedEncryption\022\031\n" + "\014kms_key_name\030\001 \001(\tB\003\340A\002\"\353\004\n" + "\021ReplicationStatus\022U\n" - + "\tautomatic\030\001 \001(\0132@.googl" - + "e.cloud.secretmanager.v1.ReplicationStatus.AutomaticStatusH\000\022Z\n" - + "\014user_managed\030\002 \001" - + "(\0132B.google.cloud.secretmanager.v1.ReplicationStatus.UserManagedStatusH\000\032{\n" + + "\tautomatic\030\001 \001(\0132@.google.c" + + "loud.secretmanager.v1.ReplicationStatus.AutomaticStatusH\000\022Z\n" + + "\014user_managed\030\002 \001(\0132" + + "B.google.cloud.secretmanager.v1.ReplicationStatus.UserManagedStatusH\000\032{\n" + "\017AutomaticStatus\022h\n" - + "\033customer_managed_encryption\030\001 \001(\0132>.google.cloud.secretmanager.v1" - + ".CustomerManagedEncryptionStatusB\003\340A\003\032\217\002\n" + + "\033customer_managed_encryption\030\001" + + " \001(\0132>.google.cloud.secretmanager.v1.CustomerManagedEncryptionStatusB\003\340A\003\032\217\002\n" + "\021UserManagedStatus\022g\n" - + "\010replicas\030\001 \003(\0132P.google.cloud.secretmanager.v1.Replicatio" - + "nStatus.UserManagedStatus.ReplicaStatusB\003\340A\003\032\220\001\n\r" + + "\010replicas\030\001 \003(\0132P.google.cloud.secretmanager.v1.ReplicationSt" + + "atus.UserManagedStatus.ReplicaStatusB\003\340A\003\032\220\001\n\r" + "ReplicaStatus\022\025\n" + "\010location\030\001 \001(\tB\003\340A\003\022h\n" - + "\033customer_managed_encryption\030\002 \001" - + "(\0132>.google.cloud.secretmanager.v1.CustomerManagedEncryptionStatusB\003\340A\003B\024\n" + + "\033customer_managed_encryption\030\002 \001(\0132" + + ">.google.cloud.secretmanager.v1.CustomerManagedEncryptionStatusB\003\340A\003B\024\n" + "\022replication_status\"D\n" + "\037CustomerManagedEncryptionStatus\022!\n" + "\024kms_key_version_name\030\001 \001(\tB\003\340A\002\"_\n" + "\005Topic\022\021\n" + "\004name\030\001 \001(\tB\003\340A\010:C\352A@\n" - + "\033pubsub.googleapis.com/Topic\022!projects/{project}/topics/{topic}\"\200\001\n" + + "\033pubsub.googleapis.com/Topic\022!projects/{project}/topics/{topic}\"\272\003\n" + "\010Rotation\022;\n" + "\022next_rotation_time\030\001" + " \001(\0132\032.google.protobuf.TimestampB\003\340A\001\0227\n" + "\017rotation_period\030\002" - + " \001(\0132\031.google.protobuf.DurationB\003\340A\004\"L\n\r" + + " \001(\0132\031.google.protobuf.DurationB\003\340A\004\022c\n" + + "\027managed_rotation_status\030\003 \001(\0132=.google.cloud.sec" + + "retmanager.v1.Rotation.ManagedRotationStatusB\003\340A\003\032\322\001\n" + + "\025ManagedRotationStatus\022W\n" + + "\005state\030\001 \001(\0162C.google.cloud.secretmanager." + + "v1.Rotation.ManagedRotationStatus.StateB\003\340A\003\022&\n" + + "\005error\030\002 \001(\0132\022.google.rpc.StatusB\003\340A\003\"8\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\014\n" + + "\010INACTIVE\020\002\"L\n\r" + "SecretPayload\022\014\n" + "\004data\030\001 \001(\014\022\035\n" + "\013data_crc32c\030\002 \001(\003B\003\340A\001H\000\210\001\001B\016\n" + "\014_data_crc32cB\347\001\n" - + "!com.google.cloud.secretmanager.v1B\016ResourcesPr" - + "otoP\001ZGcloud.google.com/go/secretmanager" - + "/apiv1/secretmanagerpb;secretmanagerpb\242\002" - + "\003GSM\252\002\035Google.Cloud.SecretManager.V1\312\002\035Google\\Cloud\\SecretManager\\V1\352\002" + + "!com.google.cloud.secretmanager.v1B\016ResourcesProtoP\001ZGcl" + + "oud.google.com/go/secretmanager/apiv1/se" + + "cretmanagerpb;secretmanagerpb\242\002\003GSM\252\002\035Go" + + "ogle.Cloud.SecretManager.V1\312\002\035Google\\Cloud\\SecretManager\\V1\352\002" + " Google::Cloud::SecretManager::V1b\006proto3" }; descriptor = @@ -254,8 +279,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.api.FieldBehaviorProto.getDescriptor(), com.google.api.ResourceProto.getDescriptor(), + com.google.iam.v1.ResourcePolicyMemberProto.getDescriptor(), com.google.protobuf.DurationProto.getDescriptor(), com.google.protobuf.TimestampProto.getDescriptor(), + com.google.rpc.StatusProto.getDescriptor(), }); internal_static_google_cloud_secretmanager_v1_Secret_descriptor = getDescriptor().getMessageType(0); @@ -277,6 +304,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "VersionDestroyTtl", "CustomerManagedEncryption", "Tags", + "SecretType", + "PolicyMember", "Expiration", }); internal_static_google_cloud_secretmanager_v1_Secret_LabelsEntry_descriptor = @@ -423,7 +452,15 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_cloud_secretmanager_v1_Rotation_descriptor, new java.lang.String[] { - "NextRotationTime", "RotationPeriod", + "NextRotationTime", "RotationPeriod", "ManagedRotationStatus", + }); + internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_descriptor = + internal_static_google_cloud_secretmanager_v1_Rotation_descriptor.getNestedType(0); + internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_descriptor, + new java.lang.String[] { + "State", "Error", }); internal_static_google_cloud_secretmanager_v1_SecretPayload_descriptor = getDescriptor().getMessageType(8); @@ -436,8 +473,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { descriptor.resolveAllFeaturesImmutable(); com.google.api.FieldBehaviorProto.getDescriptor(); com.google.api.ResourceProto.getDescriptor(); + com.google.iam.v1.ResourcePolicyMemberProto.getDescriptor(); com.google.protobuf.DurationProto.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); + com.google.rpc.StatusProto.getDescriptor(); com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); registry.add(com.google.api.FieldBehaviorProto.fieldBehavior); diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotateSecretRequest.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotateSecretRequest.java new file mode 100644 index 000000000000..187d400c0181 --- /dev/null +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotateSecretRequest.java @@ -0,0 +1,634 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/secretmanager/v1/service.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.secretmanager.v1; + +/** + * + * + *
+ * Request message for
+ * [SecretManagerService.RotateSecret][google.cloud.secretmanager.v1.SecretManagerService.RotateSecret].
+ * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.RotateSecretRequest} + */ +@com.google.protobuf.Generated +public final class RotateSecretRequest extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.secretmanager.v1.RotateSecretRequest) + RotateSecretRequestOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "RotateSecretRequest"); + } + + // Use RotateSecretRequest.newBuilder() to construct. + private RotateSecretRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private RotateSecretRequest() { + parent_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_RotateSecretRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_RotateSecretRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.RotateSecretRequest.class, + com.google.cloud.secretmanager.v1.RotateSecretRequest.Builder.class); + } + + public static final int PARENT_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object parent_ = ""; + + /** + * + * + *
+   * Required. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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; + } + } + + 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.GeneratedMessage.isStringEmpty(parent_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, parent_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(parent_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, parent_); + } + 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.cloud.secretmanager.v1.RotateSecretRequest)) { + return super.equals(obj); + } + com.google.cloud.secretmanager.v1.RotateSecretRequest other = + (com.google.cloud.secretmanager.v1.RotateSecretRequest) obj; + + if (!getParent().equals(other.getParent())) 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 = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.cloud.secretmanager.v1.RotateSecretRequest 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Request message for
+   * [SecretManagerService.RotateSecret][google.cloud.secretmanager.v1.SecretManagerService.RotateSecret].
+   * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.RotateSecretRequest} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.secretmanager.v1.RotateSecretRequest) + com.google.cloud.secretmanager.v1.RotateSecretRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_RotateSecretRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_RotateSecretRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.RotateSecretRequest.class, + com.google.cloud.secretmanager.v1.RotateSecretRequest.Builder.class); + } + + // Construct using com.google.cloud.secretmanager.v1.RotateSecretRequest.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + parent_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.secretmanager.v1.ServiceProto + .internal_static_google_cloud_secretmanager_v1_RotateSecretRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.RotateSecretRequest getDefaultInstanceForType() { + return com.google.cloud.secretmanager.v1.RotateSecretRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.RotateSecretRequest build() { + com.google.cloud.secretmanager.v1.RotateSecretRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.RotateSecretRequest buildPartial() { + com.google.cloud.secretmanager.v1.RotateSecretRequest result = + new com.google.cloud.secretmanager.v1.RotateSecretRequest(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.secretmanager.v1.RotateSecretRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.parent_ = parent_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.secretmanager.v1.RotateSecretRequest) { + return mergeFrom((com.google.cloud.secretmanager.v1.RotateSecretRequest) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.secretmanager.v1.RotateSecretRequest other) { + if (other == com.google.cloud.secretmanager.v1.RotateSecretRequest.getDefaultInstance()) + return this; + if (!other.getParent().isEmpty()) { + parent_ = other.parent_; + bitField0_ |= 0x00000001; + 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 + 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. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @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. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return This builder for chaining. + */ + public Builder clearParent() { + parent_ = getDefaultInstance().getParent(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The resource name of the
+     * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+     * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+     * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+     * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @param value The bytes for parent to set. + * @return This builder for chaining. + */ + public Builder setParentBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + parent_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.secretmanager.v1.RotateSecretRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.secretmanager.v1.RotateSecretRequest) + private static final com.google.cloud.secretmanager.v1.RotateSecretRequest DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.secretmanager.v1.RotateSecretRequest(); + } + + public static com.google.cloud.secretmanager.v1.RotateSecretRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RotateSecretRequest 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.cloud.secretmanager.v1.RotateSecretRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotateSecretRequestOrBuilder.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotateSecretRequestOrBuilder.java new file mode 100644 index 000000000000..bccb8a1f2434 --- /dev/null +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotateSecretRequestOrBuilder.java @@ -0,0 +1,64 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/secretmanager/v1/service.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.secretmanager.v1; + +@com.google.protobuf.Generated +public interface RotateSecretRequestOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.secretmanager.v1.RotateSecretRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The parent. + */ + java.lang.String getParent(); + + /** + * + * + *
+   * Required. The resource name of the
+   * [Secret][google.cloud.secretmanager.v1.Secret] to associate with the
+   * [SecretVersion][google.cloud.secretmanager.v1.SecretVersion] in the format
+   * `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.
+   * 
+ * + * + * string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { ... } + * + * + * @return The bytes for parent. + */ + com.google.protobuf.ByteString getParentBytes(); +} diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java index 63bca3f95b08..492bc01109f5 100644 --- a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Rotation.java @@ -72,6 +72,1145 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.cloud.secretmanager.v1.Rotation.Builder.class); } + public interface ManagedRotationStatusOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Output only. Indicates whether the Managed Rotation is active or not.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + + /** + * + * + *
+     * Output only. Indicates whether the Managed Rotation is active or not.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State getState(); + + /** + * + * + *
+     * Output only. Displays customer-facing issues that occurred during an
+     * asynchronous managed rotation. For example, if there are some permission
+     * errors.
+     * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return Whether the error field is set. + */ + boolean hasError(); + + /** + * + * + *
+     * Output only. Displays customer-facing issues that occurred during an
+     * asynchronous managed rotation. For example, if there are some permission
+     * errors.
+     * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The error. + */ + com.google.rpc.Status getError(); + + /** + * + * + *
+     * Output only. Displays customer-facing issues that occurred during an
+     * asynchronous managed rotation. For example, if there are some permission
+     * errors.
+     * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + com.google.rpc.StatusOrBuilder getErrorOrBuilder(); + } + + /** + * + * + *
+   * Represents the status of a managed rotation.
+   *
+   * This is applicable only to Typed Secrets. It indicates whether the
+   * rotation is active and any errors that may have occurred during the
+   * asynchronous managed rotation.
+   * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus} + */ + public static final class ManagedRotationStatus extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) + ManagedRotationStatusOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "ManagedRotationStatus"); + } + + // Use ManagedRotationStatus.newBuilder() to construct. + private ManagedRotationStatus(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private ManagedRotationStatus() { + state_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.class, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.Builder.class); + } + + /** + * + * + *
+     * This defines the various states in which the managed rotation can be.
+     * 
+ * + * Protobuf enum {@code google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State} + */ + public enum State implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Not specified. This value is unused and invalid.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + STATE_UNSPECIFIED(0), + /** + * + * + *
+       * Indicates that the Managed rotation is ACTIVE.
+       * 
+ * + * ACTIVE = 1; + */ + ACTIVE(1), + /** + * + * + *
+       * Indicates that the Managed rotation is INACTIVE.
+       * 
+ * + * INACTIVE = 2; + */ + INACTIVE(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "State"); + } + + /** + * + * + *
+       * Not specified. This value is unused and invalid.
+       * 
+ * + * STATE_UNSPECIFIED = 0; + */ + public static final int STATE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Indicates that the Managed rotation is ACTIVE.
+       * 
+ * + * ACTIVE = 1; + */ + public static final int ACTIVE_VALUE = 1; + + /** + * + * + *
+       * Indicates that the Managed rotation is INACTIVE.
+       * 
+ * + * INACTIVE = 2; + */ + public static final int INACTIVE_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 State 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 State forNumber(int value) { + switch (value) { + case 0: + return STATE_UNSPECIFIED; + case 1: + return ACTIVE; + case 2: + return INACTIVE; + 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 State findValueByNumber(int number) { + return State.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final State[] VALUES = values(); + + public static State 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 State(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State) + } + + private int bitField0_; + public static final int STATE_FIELD_NUMBER = 1; + private int state_ = 0; + + /** + * + * + *
+     * Output only. Indicates whether the Managed Rotation is active or not.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+     * Output only. Indicates whether the Managed Rotation is active or not.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State getState() { + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State result = + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State.forNumber(state_); + return result == null + ? com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State.UNRECOGNIZED + : result; + } + + public static final int ERROR_FIELD_NUMBER = 2; + private com.google.rpc.Status error_; + + /** + * + * + *
+     * Output only. Displays customer-facing issues that occurred during an
+     * asynchronous managed rotation. For example, if there are some permission
+     * errors.
+     * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return Whether the error field is set. + */ + @java.lang.Override + public boolean hasError() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Output only. Displays customer-facing issues that occurred during an
+     * asynchronous managed rotation. For example, if there are some permission
+     * errors.
+     * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The error. + */ + @java.lang.Override + public com.google.rpc.Status getError() { + return error_ == null ? com.google.rpc.Status.getDefaultInstance() : error_; + } + + /** + * + * + *
+     * Output only. Displays customer-facing issues that occurred during an
+     * asynchronous managed rotation. For example, if there are some permission
+     * errors.
+     * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + @java.lang.Override + public com.google.rpc.StatusOrBuilder getErrorOrBuilder() { + return error_ == null ? com.google.rpc.Status.getDefaultInstance() : error_; + } + + 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 (state_ + != com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State + .STATE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, state_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(2, getError()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (state_ + != com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State + .STATE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, state_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getError()); + } + 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.cloud.secretmanager.v1.Rotation.ManagedRotationStatus)) { + return super.equals(obj); + } + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus other = + (com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) obj; + + if (state_ != other.state_) return false; + if (hasError() != other.hasError()) return false; + if (hasError()) { + if (!getError().equals(other.getError())) 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) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + if (hasError()) { + hash = (37 * hash) + ERROR_FIELD_NUMBER; + hash = (53 * hash) + getError().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * Represents the status of a managed rotation.
+     *
+     * This is applicable only to Typed Secrets. It indicates whether the
+     * rotation is active and any errors that may have occurred during the
+     * asynchronous managed rotation.
+     * 
+ * + * Protobuf type {@code google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.class, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.Builder.class); + } + + // Construct using + // com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetErrorFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + state_ = 0; + error_ = null; + if (errorBuilder_ != null) { + errorBuilder_.dispose(); + errorBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.secretmanager.v1.ResourcesProto + .internal_static_google_cloud_secretmanager_v1_Rotation_ManagedRotationStatus_descriptor; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + getDefaultInstanceForType() { + return com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus build() { + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus buildPartial() { + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus result = + new com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.state_ = state_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.error_ = errorBuilder_ == null ? error_ : errorBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) { + return mergeFrom( + (com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus other) { + if (other + == com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + .getDefaultInstance()) return this; + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (other.hasError()) { + mergeError(other.getError()); + } + 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: + { + state_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + input.readMessage(internalGetErrorFieldBuilder().getBuilder(), extensionRegistry); + 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 int state_ = 0; + + /** + * + * + *
+       * Output only. Indicates whether the Managed Rotation is active or not.
+       * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override + public int getStateValue() { + return state_; + } + + /** + * + * + *
+       * Output only. Indicates whether the Managed Rotation is active or not.
+       * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. Indicates whether the Managed Rotation is active or not.
+       * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The state. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State getState() { + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State result = + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State.forNumber( + state_); + return result == null + ? com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Output only. Indicates whether the Managed Rotation is active or not.
+       * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. Indicates whether the Managed Rotation is active or not.
+       * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + onChanged(); + return this; + } + + private com.google.rpc.Status error_; + private com.google.protobuf.SingleFieldBuilder< + com.google.rpc.Status, com.google.rpc.Status.Builder, com.google.rpc.StatusOrBuilder> + errorBuilder_; + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return Whether the error field is set. + */ + public boolean hasError() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The error. + */ + public com.google.rpc.Status getError() { + if (errorBuilder_ == null) { + return error_ == null ? com.google.rpc.Status.getDefaultInstance() : error_; + } else { + return errorBuilder_.getMessage(); + } + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + public Builder setError(com.google.rpc.Status value) { + if (errorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + error_ = value; + } else { + errorBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + public Builder setError(com.google.rpc.Status.Builder builderForValue) { + if (errorBuilder_ == null) { + error_ = builderForValue.build(); + } else { + errorBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + public Builder mergeError(com.google.rpc.Status value) { + if (errorBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && error_ != null + && error_ != com.google.rpc.Status.getDefaultInstance()) { + getErrorBuilder().mergeFrom(value); + } else { + error_ = value; + } + } else { + errorBuilder_.mergeFrom(value); + } + if (error_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + public Builder clearError() { + bitField0_ = (bitField0_ & ~0x00000002); + error_ = null; + if (errorBuilder_ != null) { + errorBuilder_.dispose(); + errorBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + public com.google.rpc.Status.Builder getErrorBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return internalGetErrorFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + public com.google.rpc.StatusOrBuilder getErrorOrBuilder() { + if (errorBuilder_ != null) { + return errorBuilder_.getMessageOrBuilder(); + } else { + return error_ == null ? com.google.rpc.Status.getDefaultInstance() : error_; + } + } + + /** + * + * + *
+       * Output only. Displays customer-facing issues that occurred during an
+       * asynchronous managed rotation. For example, if there are some permission
+       * errors.
+       * 
+ * + * .google.rpc.Status error = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.rpc.Status, com.google.rpc.Status.Builder, com.google.rpc.StatusOrBuilder> + internalGetErrorFieldBuilder() { + if (errorBuilder_ == null) { + errorBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.rpc.Status, + com.google.rpc.Status.Builder, + com.google.rpc.StatusOrBuilder>(getError(), getParentForChildren(), isClean()); + error_ = null; + } + return errorBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) + } + + // @@protoc_insertion_point(class_scope:google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus) + private static final com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus(); + } + + public static com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ManagedRotationStatus 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.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + private int bitField0_; public static final int NEXT_ROTATION_TIME_FIELD_NUMBER = 1; private com.google.protobuf.Timestamp nextRotationTime_; @@ -245,6 +1384,73 @@ public com.google.protobuf.DurationOrBuilder getRotationPeriodOrBuilder() { : rotationPeriod_; } + public static final int MANAGED_ROTATION_STATUS_FIELD_NUMBER = 3; + private com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managedRotationStatus_; + + /** + * + * + *
+   * Output only. The current status of the managed rotation.
+   * This field is only applicable to Typed Secrets.
+   * This field is set by the service and cannot be set by the user.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the managedRotationStatus field is set. + */ + @java.lang.Override + public boolean hasManagedRotationStatus() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Output only. The current status of the managed rotation.
+   * This field is only applicable to Typed Secrets.
+   * This field is set by the service and cannot be set by the user.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The managedRotationStatus. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + getManagedRotationStatus() { + return managedRotationStatus_ == null + ? com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.getDefaultInstance() + : managedRotationStatus_; + } + + /** + * + * + *
+   * Output only. The current status of the managed rotation.
+   * This field is only applicable to Typed Secrets.
+   * This field is set by the service and cannot be set by the user.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatusOrBuilder + getManagedRotationStatusOrBuilder() { + return managedRotationStatus_ == null + ? com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.getDefaultInstance() + : managedRotationStatus_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -265,6 +1471,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getRotationPeriod()); } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(3, getManagedRotationStatus()); + } getUnknownFields().writeTo(output); } @@ -280,6 +1489,10 @@ public int getSerializedSize() { if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRotationPeriod()); } + if (((bitField0_ & 0x00000004) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(3, getManagedRotationStatus()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -304,6 +1517,10 @@ public boolean equals(final java.lang.Object obj) { if (hasRotationPeriod()) { if (!getRotationPeriod().equals(other.getRotationPeriod())) return false; } + if (hasManagedRotationStatus() != other.hasManagedRotationStatus()) return false; + if (hasManagedRotationStatus()) { + if (!getManagedRotationStatus().equals(other.getManagedRotationStatus())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -323,6 +1540,10 @@ public int hashCode() { hash = (37 * hash) + ROTATION_PERIOD_FIELD_NUMBER; hash = (53 * hash) + getRotationPeriod().hashCode(); } + if (hasManagedRotationStatus()) { + hash = (37 * hash) + MANAGED_ROTATION_STATUS_FIELD_NUMBER; + hash = (53 * hash) + getManagedRotationStatus().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -470,6 +1691,7 @@ private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { internalGetNextRotationTimeFieldBuilder(); internalGetRotationPeriodFieldBuilder(); + internalGetManagedRotationStatusFieldBuilder(); } } @@ -487,6 +1709,11 @@ public Builder clear() { rotationPeriodBuilder_.dispose(); rotationPeriodBuilder_ = null; } + managedRotationStatus_ = null; + if (managedRotationStatusBuilder_ != null) { + managedRotationStatusBuilder_.dispose(); + managedRotationStatusBuilder_ = null; + } return this; } @@ -534,6 +1761,13 @@ private void buildPartial0(com.google.cloud.secretmanager.v1.Rotation result) { rotationPeriodBuilder_ == null ? rotationPeriod_ : rotationPeriodBuilder_.build(); to_bitField0_ |= 0x00000002; } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.managedRotationStatus_ = + managedRotationStatusBuilder_ == null + ? managedRotationStatus_ + : managedRotationStatusBuilder_.build(); + to_bitField0_ |= 0x00000004; + } result.bitField0_ |= to_bitField0_; } @@ -555,6 +1789,9 @@ public Builder mergeFrom(com.google.cloud.secretmanager.v1.Rotation other) { if (other.hasRotationPeriod()) { mergeRotationPeriod(other.getRotationPeriod()); } + if (other.hasManagedRotationStatus()) { + mergeManagedRotationStatus(other.getManagedRotationStatus()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -595,6 +1832,13 @@ public Builder mergeFrom( bitField0_ |= 0x00000002; break; } // case 18 + case 26: + { + input.readMessage( + internalGetManagedRotationStatusFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1200,6 +2444,244 @@ public com.google.protobuf.DurationOrBuilder getRotationPeriodOrBuilder() { return rotationPeriodBuilder_; } + private com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managedRotationStatus_; + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.Builder, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatusOrBuilder> + managedRotationStatusBuilder_; + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the managedRotationStatus field is set. + */ + public boolean hasManagedRotationStatus() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The managedRotationStatus. + */ + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + getManagedRotationStatus() { + if (managedRotationStatusBuilder_ == null) { + return managedRotationStatus_ == null + ? com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.getDefaultInstance() + : managedRotationStatus_; + } else { + return managedRotationStatusBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setManagedRotationStatus( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus value) { + if (managedRotationStatusBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + managedRotationStatus_ = value; + } else { + managedRotationStatusBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setManagedRotationStatus( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.Builder builderForValue) { + if (managedRotationStatusBuilder_ == null) { + managedRotationStatus_ = builderForValue.build(); + } else { + managedRotationStatusBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeManagedRotationStatus( + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus value) { + if (managedRotationStatusBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) + && managedRotationStatus_ != null + && managedRotationStatus_ + != com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus + .getDefaultInstance()) { + getManagedRotationStatusBuilder().mergeFrom(value); + } else { + managedRotationStatus_ = value; + } + } else { + managedRotationStatusBuilder_.mergeFrom(value); + } + if (managedRotationStatus_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearManagedRotationStatus() { + bitField0_ = (bitField0_ & ~0x00000004); + managedRotationStatus_ = null; + if (managedRotationStatusBuilder_ != null) { + managedRotationStatusBuilder_.dispose(); + managedRotationStatusBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.Builder + getManagedRotationStatusBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return internalGetManagedRotationStatusFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatusOrBuilder + getManagedRotationStatusOrBuilder() { + if (managedRotationStatusBuilder_ != null) { + return managedRotationStatusBuilder_.getMessageOrBuilder(); + } else { + return managedRotationStatus_ == null + ? com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.getDefaultInstance() + : managedRotationStatus_; + } + } + + /** + * + * + *
+     * Output only. The current status of the managed rotation.
+     * This field is only applicable to Typed Secrets.
+     * This field is set by the service and cannot be set by the user.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.Builder, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatusOrBuilder> + internalGetManagedRotationStatusFieldBuilder() { + if (managedRotationStatusBuilder_ == null) { + managedRotationStatusBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus.Builder, + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatusOrBuilder>( + getManagedRotationStatus(), getParentForChildren(), isClean()); + managedRotationStatus_ = null; + } + return managedRotationStatusBuilder_; + } + // @@protoc_insertion_point(builder_scope:google.cloud.secretmanager.v1.Rotation) } diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java index 0baabccb0c76..318b4458bcbc 100644 --- a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/RotationOrBuilder.java @@ -165,4 +165,54 @@ public interface RotationOrBuilder * */ com.google.protobuf.DurationOrBuilder getRotationPeriodOrBuilder(); + + /** + * + * + *
+   * Output only. The current status of the managed rotation.
+   * This field is only applicable to Typed Secrets.
+   * This field is set by the service and cannot be set by the user.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the managedRotationStatus field is set. + */ + boolean hasManagedRotationStatus(); + + /** + * + * + *
+   * Output only. The current status of the managed rotation.
+   * This field is only applicable to Typed Secrets.
+   * This field is set by the service and cannot be set by the user.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The managedRotationStatus. + */ + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus getManagedRotationStatus(); + + /** + * + * + *
+   * Output only. The current status of the managed rotation.
+   * This field is only applicable to Typed Secrets.
+   * This field is set by the service and cannot be set by the user.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Rotation.ManagedRotationStatus managed_rotation_status = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.secretmanager.v1.Rotation.ManagedRotationStatusOrBuilder + getManagedRotationStatusOrBuilder(); } diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java index fbbfd5f81b29..af85454030ce 100644 --- a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/Secret.java @@ -60,6 +60,7 @@ private Secret() { name_ = ""; topics_ = java.util.Collections.emptyList(); etag_ = ""; + secretType_ = 0; } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @@ -95,6 +96,250 @@ protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldRefl com.google.cloud.secretmanager.v1.Secret.Builder.class); } + /** + * + * + *
+   * This defines the various values of the type of secret can be.
+   * 
+ * + * Protobuf enum {@code google.cloud.secretmanager.v1.Secret.SecretType} + */ + public enum SecretType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Applicable to all secrets which do not have any restriction on the
+     * SecretVersions.
+     * 
+ * + * SECRET_TYPE_UNSPECIFIED = 0; + */ + SECRET_TYPE_UNSPECIFIED(0), + /** + * + * + *
+     * Applicable to secrets which are used for the managed rotation feature
+     * for Cloud SQL Single User.
+     * 
+ * + * CLOUD_SQL_DB_CREDENTIALS = 1; + */ + CLOUD_SQL_DB_CREDENTIALS(1), + /** + * + * + *
+     * Applicable to secrets where the payload contains an access key.
+     * 
+ * + * ACCESS_KEY = 2; + */ + ACCESS_KEY(2), + /** + * + * + *
+     * Applicable to secrets where the payload contains a certificate.
+     * 
+ * + * CERTIFICATE = 3; + */ + CERTIFICATE(3), + /** + * + * + *
+     * Applicable to secrets where the payload contains database credentials.
+     * 
+ * + * OTHER_DB_CREDENTIALS = 4; + */ + OTHER_DB_CREDENTIALS(4), + /** + * + * + *
+     * Applicable to secrets whose type doesn't belong to any of the above
+     * defined types.
+     * 
+ * + * OTHER = 50; + */ + OTHER(50), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "SecretType"); + } + + /** + * + * + *
+     * Applicable to all secrets which do not have any restriction on the
+     * SecretVersions.
+     * 
+ * + * SECRET_TYPE_UNSPECIFIED = 0; + */ + public static final int SECRET_TYPE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Applicable to secrets which are used for the managed rotation feature
+     * for Cloud SQL Single User.
+     * 
+ * + * CLOUD_SQL_DB_CREDENTIALS = 1; + */ + public static final int CLOUD_SQL_DB_CREDENTIALS_VALUE = 1; + + /** + * + * + *
+     * Applicable to secrets where the payload contains an access key.
+     * 
+ * + * ACCESS_KEY = 2; + */ + public static final int ACCESS_KEY_VALUE = 2; + + /** + * + * + *
+     * Applicable to secrets where the payload contains a certificate.
+     * 
+ * + * CERTIFICATE = 3; + */ + public static final int CERTIFICATE_VALUE = 3; + + /** + * + * + *
+     * Applicable to secrets where the payload contains database credentials.
+     * 
+ * + * OTHER_DB_CREDENTIALS = 4; + */ + public static final int OTHER_DB_CREDENTIALS_VALUE = 4; + + /** + * + * + *
+     * Applicable to secrets whose type doesn't belong to any of the above
+     * defined types.
+     * 
+ * + * OTHER = 50; + */ + public static final int OTHER_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 SecretType 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 SecretType forNumber(int value) { + switch (value) { + case 0: + return SECRET_TYPE_UNSPECIFIED; + case 1: + return CLOUD_SQL_DB_CREDENTIALS; + case 2: + return ACCESS_KEY; + case 3: + return CERTIFICATE; + case 4: + return OTHER_DB_CREDENTIALS; + case 50: + return OTHER; + 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 SecretType findValueByNumber(int number) { + return SecretType.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.cloud.secretmanager.v1.Secret.getDescriptor().getEnumTypes().get(0); + } + + private static final SecretType[] VALUES = values(); + + public static SecretType 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 SecretType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.cloud.secretmanager.v1.Secret.SecretType) + } + private int bitField0_; private int expirationCase_ = 0; @@ -1412,6 +1657,120 @@ public java.lang.String getTagsOrThrow(java.lang.String key) { return map.get(key); } + public static final int SECRET_TYPE_FIELD_NUMBER = 17; + private int secretType_ = 0; + + /** + * + * + *
+   * Optional. Immutable. This defines the type of the secret.
+   * Enforces certain structural requirements on the
+   * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+   * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The enum numeric value on the wire for secretType. + */ + @java.lang.Override + public int getSecretTypeValue() { + return secretType_; + } + + /** + * + * + *
+   * Optional. Immutable. This defines the type of the secret.
+   * Enforces certain structural requirements on the
+   * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+   * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The secretType. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Secret.SecretType getSecretType() { + com.google.cloud.secretmanager.v1.Secret.SecretType result = + com.google.cloud.secretmanager.v1.Secret.SecretType.forNumber(secretType_); + return result == null + ? com.google.cloud.secretmanager.v1.Secret.SecretType.UNRECOGNIZED + : result; + } + + public static final int POLICY_MEMBER_FIELD_NUMBER = 18; + private com.google.iam.v1.ResourcePolicyMember policyMember_; + + /** + * + * + *
+   * Output only. Defines the policy member for the secret.
+   * This will be used to check if the caller has the permission to perform
+   * certain operations on the typed secret.
+   * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the policyMember field is set. + */ + @java.lang.Override + public boolean hasPolicyMember() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Output only. Defines the policy member for the secret.
+   * This will be used to check if the caller has the permission to perform
+   * certain operations on the typed secret.
+   * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The policyMember. + */ + @java.lang.Override + public com.google.iam.v1.ResourcePolicyMember getPolicyMember() { + return policyMember_ == null + ? com.google.iam.v1.ResourcePolicyMember.getDefaultInstance() + : policyMember_; + } + + /** + * + * + *
+   * Output only. Defines the policy member for the secret.
+   * This will be used to check if the caller has the permission to perform
+   * certain operations on the typed secret.
+   * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.iam.v1.ResourcePolicyMemberOrBuilder getPolicyMemberOrBuilder() { + return policyMember_ == null + ? com.google.iam.v1.ResourcePolicyMember.getDefaultInstance() + : policyMember_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -1464,6 +1823,14 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io } com.google.protobuf.GeneratedMessage.serializeStringMapTo( output, internalGetTags(), TagsDefaultEntryHolder.defaultEntry, 16); + if (secretType_ + != com.google.cloud.secretmanager.v1.Secret.SecretType.SECRET_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(17, secretType_); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeMessage(18, getPolicyMember()); + } getUnknownFields().writeTo(output); } @@ -1549,6 +1916,14 @@ public int getSerializedSize() { .build(); size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, tags__); } + if (secretType_ + != com.google.cloud.secretmanager.v1.Secret.SecretType.SECRET_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(17, secretType_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getPolicyMember()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -1592,6 +1967,11 @@ public boolean equals(final java.lang.Object obj) { return false; } if (!internalGetTags().equals(other.internalGetTags())) return false; + if (secretType_ != other.secretType_) return false; + if (hasPolicyMember() != other.hasPolicyMember()) return false; + if (hasPolicyMember()) { + if (!getPolicyMember().equals(other.getPolicyMember())) return false; + } if (!getExpirationCase().equals(other.getExpirationCase())) return false; switch (expirationCase_) { case 6: @@ -1658,6 +2038,12 @@ public int hashCode() { hash = (37 * hash) + TAGS_FIELD_NUMBER; hash = (53 * hash) + internalGetTags().hashCode(); } + hash = (37 * hash) + SECRET_TYPE_FIELD_NUMBER; + hash = (53 * hash) + secretType_; + if (hasPolicyMember()) { + hash = (37 * hash) + POLICY_MEMBER_FIELD_NUMBER; + hash = (53 * hash) + getPolicyMember().hashCode(); + } switch (expirationCase_) { case 6: hash = (37 * hash) + EXPIRE_TIME_FIELD_NUMBER; @@ -1856,6 +2242,7 @@ private void maybeForceBuilderInitialization() { internalGetRotationFieldBuilder(); internalGetVersionDestroyTtlFieldBuilder(); internalGetCustomerManagedEncryptionFieldBuilder(); + internalGetPolicyMemberFieldBuilder(); } } @@ -1907,6 +2294,12 @@ public Builder clear() { customerManagedEncryptionBuilder_ = null; } internalGetMutableTags().clear(); + secretType_ = 0; + policyMember_ = null; + if (policyMemberBuilder_ != null) { + policyMemberBuilder_.dispose(); + policyMemberBuilder_ = null; + } expirationCase_ = 0; expiration_ = null; return this; @@ -2009,6 +2402,14 @@ private void buildPartial0(com.google.cloud.secretmanager.v1.Secret result) { result.tags_ = internalGetTags(); result.tags_.makeImmutable(); } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.secretType_ = secretType_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.policyMember_ = + policyMemberBuilder_ == null ? policyMember_ : policyMemberBuilder_.build(); + to_bitField0_ |= 0x00000020; + } result.bitField0_ |= to_bitField0_; } @@ -2095,6 +2496,12 @@ public Builder mergeFrom(com.google.cloud.secretmanager.v1.Secret other) { } internalGetMutableTags().mergeFrom(other.internalGetTags()); bitField0_ |= 0x00002000; + if (other.secretType_ != 0) { + setSecretTypeValue(other.getSecretTypeValue()); + } + if (other.hasPolicyMember()) { + mergePolicyMember(other.getPolicyMember()); + } switch (other.getExpirationCase()) { case EXPIRE_TIME: { @@ -2256,6 +2663,19 @@ public Builder mergeFrom( bitField0_ |= 0x00002000; break; } // case 130 + case 136: + { + secretType_ = input.readEnum(); + bitField0_ |= 0x00004000; + break; + } // case 136 + case 146: + { + input.readMessage( + internalGetPolicyMemberFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00008000; + break; + } // case 146 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -5639,6 +6059,358 @@ public Builder putAllTags(java.util.Map valu return this; } + private int secretType_ = 0; + + /** + * + * + *
+     * Optional. Immutable. This defines the type of the secret.
+     * Enforces certain structural requirements on the
+     * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+     * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The enum numeric value on the wire for secretType. + */ + @java.lang.Override + public int getSecretTypeValue() { + return secretType_; + } + + /** + * + * + *
+     * Optional. Immutable. This defines the type of the secret.
+     * Enforces certain structural requirements on the
+     * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+     * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The enum numeric value on the wire for secretType to set. + * @return This builder for chaining. + */ + public Builder setSecretTypeValue(int value) { + secretType_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Immutable. This defines the type of the secret.
+     * Enforces certain structural requirements on the
+     * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+     * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The secretType. + */ + @java.lang.Override + public com.google.cloud.secretmanager.v1.Secret.SecretType getSecretType() { + com.google.cloud.secretmanager.v1.Secret.SecretType result = + com.google.cloud.secretmanager.v1.Secret.SecretType.forNumber(secretType_); + return result == null + ? com.google.cloud.secretmanager.v1.Secret.SecretType.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Optional. Immutable. This defines the type of the secret.
+     * Enforces certain structural requirements on the
+     * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+     * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @param value The secretType to set. + * @return This builder for chaining. + */ + public Builder setSecretType(com.google.cloud.secretmanager.v1.Secret.SecretType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00004000; + secretType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Immutable. This defines the type of the secret.
+     * Enforces certain structural requirements on the
+     * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+     * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+     * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @return This builder for chaining. + */ + public Builder clearSecretType() { + bitField0_ = (bitField0_ & ~0x00004000); + secretType_ = 0; + onChanged(); + return this; + } + + private com.google.iam.v1.ResourcePolicyMember policyMember_; + private com.google.protobuf.SingleFieldBuilder< + com.google.iam.v1.ResourcePolicyMember, + com.google.iam.v1.ResourcePolicyMember.Builder, + com.google.iam.v1.ResourcePolicyMemberOrBuilder> + policyMemberBuilder_; + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the policyMember field is set. + */ + public boolean hasPolicyMember() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The policyMember. + */ + public com.google.iam.v1.ResourcePolicyMember getPolicyMember() { + if (policyMemberBuilder_ == null) { + return policyMember_ == null + ? com.google.iam.v1.ResourcePolicyMember.getDefaultInstance() + : policyMember_; + } else { + return policyMemberBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setPolicyMember(com.google.iam.v1.ResourcePolicyMember value) { + if (policyMemberBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + policyMember_ = value; + } else { + policyMemberBuilder_.setMessage(value); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setPolicyMember(com.google.iam.v1.ResourcePolicyMember.Builder builderForValue) { + if (policyMemberBuilder_ == null) { + policyMember_ = builderForValue.build(); + } else { + policyMemberBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergePolicyMember(com.google.iam.v1.ResourcePolicyMember value) { + if (policyMemberBuilder_ == null) { + if (((bitField0_ & 0x00008000) != 0) + && policyMember_ != null + && policyMember_ != com.google.iam.v1.ResourcePolicyMember.getDefaultInstance()) { + getPolicyMemberBuilder().mergeFrom(value); + } else { + policyMember_ = value; + } + } else { + policyMemberBuilder_.mergeFrom(value); + } + if (policyMember_ != null) { + bitField0_ |= 0x00008000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearPolicyMember() { + bitField0_ = (bitField0_ & ~0x00008000); + policyMember_ = null; + if (policyMemberBuilder_ != null) { + policyMemberBuilder_.dispose(); + policyMemberBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.iam.v1.ResourcePolicyMember.Builder getPolicyMemberBuilder() { + bitField0_ |= 0x00008000; + onChanged(); + return internalGetPolicyMemberFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.iam.v1.ResourcePolicyMemberOrBuilder getPolicyMemberOrBuilder() { + if (policyMemberBuilder_ != null) { + return policyMemberBuilder_.getMessageOrBuilder(); + } else { + return policyMember_ == null + ? com.google.iam.v1.ResourcePolicyMember.getDefaultInstance() + : policyMember_; + } + } + + /** + * + * + *
+     * Output only. Defines the policy member for the secret.
+     * This will be used to check if the caller has the permission to perform
+     * certain operations on the typed secret.
+     * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.iam.v1.ResourcePolicyMember, + com.google.iam.v1.ResourcePolicyMember.Builder, + com.google.iam.v1.ResourcePolicyMemberOrBuilder> + internalGetPolicyMemberFieldBuilder() { + if (policyMemberBuilder_ == null) { + policyMemberBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.iam.v1.ResourcePolicyMember, + com.google.iam.v1.ResourcePolicyMember.Builder, + com.google.iam.v1.ResourcePolicyMemberOrBuilder>( + getPolicyMember(), getParentForChildren(), isClean()); + policyMember_ = null; + } + return policyMemberBuilder_; + } + // @@protoc_insertion_point(builder_scope:google.cloud.secretmanager.v1.Secret) } diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java index ad96f6bd242c..acf82592bc0c 100644 --- a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/SecretOrBuilder.java @@ -969,5 +969,90 @@ java.lang.String getTagsOrDefault( */ java.lang.String getTagsOrThrow(java.lang.String key); + /** + * + * + *
+   * Optional. Immutable. This defines the type of the secret.
+   * Enforces certain structural requirements on the
+   * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+   * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The enum numeric value on the wire for secretType. + */ + int getSecretTypeValue(); + + /** + * + * + *
+   * Optional. Immutable. This defines the type of the secret.
+   * Enforces certain structural requirements on the
+   * [SecretVersions][google.cloud.secretmanager.v1.SecretVersion].
+   * For secret of type UNSPECIFIED, the SecretVersions can be of any type.
+   * 
+ * + * + * .google.cloud.secretmanager.v1.Secret.SecretType secret_type = 17 [(.google.api.field_behavior) = IMMUTABLE, (.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The secretType. + */ + com.google.cloud.secretmanager.v1.Secret.SecretType getSecretType(); + + /** + * + * + *
+   * Output only. Defines the policy member for the secret.
+   * This will be used to check if the caller has the permission to perform
+   * certain operations on the typed secret.
+   * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the policyMember field is set. + */ + boolean hasPolicyMember(); + + /** + * + * + *
+   * Output only. Defines the policy member for the secret.
+   * This will be used to check if the caller has the permission to perform
+   * certain operations on the typed secret.
+   * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The policyMember. + */ + com.google.iam.v1.ResourcePolicyMember getPolicyMember(); + + /** + * + * + *
+   * Output only. Defines the policy member for the secret.
+   * This will be used to check if the caller has the permission to perform
+   * certain operations on the typed secret.
+   * 
+ * + * + * .google.iam.v1.ResourcePolicyMember policy_member = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.iam.v1.ResourcePolicyMemberOrBuilder getPolicyMemberOrBuilder(); + com.google.cloud.secretmanager.v1.Secret.ExpirationCase getExpirationCase(); } diff --git a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ServiceProto.java b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ServiceProto.java index 0a6eeb3f6cdf..c6e7115ad412 100644 --- a/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ServiceProto.java +++ b/java-secretmanager/proto-google-cloud-secretmanager-v1/src/main/java/com/google/cloud/secretmanager/v1/ServiceProto.java @@ -56,6 +56,18 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_cloud_secretmanager_v1_AddSecretVersionRequest_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_google_cloud_secretmanager_v1_AddSecretVersionRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_CloudSQLSingleUserCredentials_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_secretmanager_v1_EnableManagedRotationRequest_CloudSQLSingleUserCredentials_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_secretmanager_v1_RotateSecretRequest_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_secretmanager_v1_RotateSecretRequest_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_cloud_secretmanager_v1_GetSecretRequest_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable @@ -139,7 +151,20 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\006parent\030\001 \001(\tB+\340A\002\372A%\n" + "#secretmanager.googleapis.com/Secret\022B\n" + "\007payload\030\002 \001(\0132,.goo" - + "gle.cloud.secretmanager.v1.SecretPayloadB\003\340A\002\"M\n" + + "gle.cloud.secretmanager.v1.SecretPayloadB\003\340A\002\"\334\002\n" + + "\034EnableManagedRotationRequest\022;\n" + + "\006parent\030\001 \001(\tB+\340A\002\372A%\n" + + "#secretmanager.googleapis.com/Secret\022\206\001\n" + + "!cloud_sql_single_user_credentials\030\002 \001(\0132Y.google.cloud.s" + + "ecretmanager.v1.EnableManagedRotationRequest.CloudSQLSingleUserCredentialsH\000\032g\n" + + "\035CloudSQLSingleUserCredentials\022\030\n" + + "\013instance_id\030\001 \001(\tB\003\340A\002\022\025\n" + + "\010username\030\002 \001(\tB\003\340A\002\022\025\n" + + "\010password\030\003 \001(\tB\003\340A\001B\r\n" + + "\013credentials\"R\n" + + "\023RotateSecretRequest\022;\n" + + "\006parent\030\001 \001(\tB+\340A\002\372A%\n" + + "#secretmanager.googleapis.com/Secret\"M\n" + "\020GetSecretRequest\0229\n" + "\004name\030\001 \001(\tB+\340A\002\372A%\n" + "#secretmanager.googleapis.com/Secret\"\236\001\n" @@ -157,8 +182,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\004name\030\001 \001(\tB2\340A\002\372A,\n" + "*secretmanager.googleapis.com/SecretVersion\"\207\001\n" + "\023UpdateSecretRequest\022:\n" - + "\006secret\030\001 \001(\0132%" - + ".google.cloud.secretmanager.v1.SecretB\003\340A\002\0224\n" + + "\006secret\030\001" + + " \001(\0132%.google.cloud.secretmanager.v1.SecretB\003\340A\002\0224\n" + "\013update_mask\030\002 \001(\0132\032.google.protobuf.FieldMaskB\003\340A\002\"^\n" + "\032AccessSecretVersionRequest\022@\n" + "\004name\030\001 \001(\tB2\340A\002\372A,\n" @@ -182,88 +207,96 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\033DestroySecretVersionRequest\022@\n" + "\004name\030\001 \001(\tB2\340A\002\372A,\n" + "*secretmanager.googleapis.com/SecretVersion\022\021\n" - + "\004etag\030\002 \001(\tB\003\340A\0012\350\034\n" + + "\004etag\030\002 \001(\tB\003\340A\0012\241!\n" + "\024SecretManagerService\022\325\001\n" - + "\013ListSecrets\0221.google.cloud.secretmanager.v1.ListSecr" - + "etsRequest\0322.google.cloud.secretmanager." - + "v1.ListSecretsResponse\"_\332A\006parent\202\323\344\223\002P\022" - + "\037/v1/{parent=projects/*}/secretsZ-\022+/v1/" - + "{parent=projects/*/locations/*}/secrets\022\354\001\n" - + "\014CreateSecret\0222.google.cloud.secretmanager.v1.CreateSecretRequest\032%.google.cl" - + "oud.secretmanager.v1.Secret\"\200\001\332A\027parent," - + "secret_id,secret\202\323\344\223\002`\"\037/v1/{parent=proj" - + "ects/*}/secrets:\006secretZ5\"+/v1/{parent=p" - + "rojects/*/locations/*}/secrets:\006secret\022\202\002\n" - + "\020AddSecretVersion\0226.google.cloud.secre" - + "tmanager.v1.AddSecretVersionRequest\032,.google.cloud.secretmanager.v1.SecretVersio" - + "n\"\207\001\332A\016parent,payload\202\323\344\223\002p\",/v1/{parent" - + "=projects/*/secrets/*}:addVersion:\001*Z=\"8" - + "/v1/{parent=projects/*/locations/*/secrets/*}:addVersion:\001*\022\302\001\n" - + "\tGetSecret\022/.google.cloud.secretmanager.v1.GetSecretReque" - + "st\032%.google.cloud.secretmanager.v1.Secre" - + "t\"]\332A\004name\202\323\344\223\002P\022\037/v1/{name=projects/*/s" - + "ecrets/*}Z-\022+/v1/{name=projects/*/locations/*/secrets/*}\022\365\001\n" - + "\014UpdateSecret\0222.google.cloud.secretmanager.v1.UpdateSecretRe" - + "quest\032%.google.cloud.secretmanager.v1.Se" - + "cret\"\211\001\332A\022secret,update_mask\202\323\344\223\002n2&/v1/" - + "{secret.name=projects/*/secrets/*}:\006secr" - + "etZ<22/v1/{secret.name=projects/*/locations/*/secrets/*}:\006secret\022\271\001\n" - + "\014DeleteSecret\0222.google.cloud.secretmanager.v1.Delete" - + "SecretRequest\032\026.google.protobuf.Empty\"]\332" - + "A\004name\202\323\344\223\002P*\037/v1/{name=projects/*/secre" - + "ts/*}Z-*+/v1/{name=projects/*/locations/*/secrets/*}\022\200\002\n" - + "\022ListSecretVersions\0228.google.cloud.secretmanager.v1.ListSecretVe" - + "rsionsRequest\0329.google.cloud.secretmanag" - + "er.v1.ListSecretVersionsResponse\"u\332A\006par" - + "ent\202\323\344\223\002f\022*/v1/{parent=projects/*/secret" - + "s/*}/versionsZ8\0226/v1/{parent=projects/*/locations/*/secrets/*}/versions\022\355\001\n" - + "\020GetSecretVersion\0226.google.cloud.secretmanage" - + "r.v1.GetSecretVersionRequest\032,.google.cl" - + "oud.secretmanager.v1.SecretVersion\"s\332A\004n" - + "ame\202\323\344\223\002f\022*/v1/{name=projects/*/secrets/" - + "*/versions/*}Z8\0226/v1/{name=projects/*/locations/*/secrets/*/versions/*}\022\220\002\n" - + "\023AccessSecretVersion\0229.google.cloud.secretman" - + "ager.v1.AccessSecretVersionRequest\032:.google.cloud.secretmanager.v1.AccessSecretV" - + "ersionResponse\"\201\001\332A\004name\202\323\344\223\002t\0221/v1/{nam" - + "e=projects/*/secrets/*/versions/*}:acces" - + "sZ?\022=/v1/{name=projects/*/locations/*/secrets/*/versions/*}:access\022\214\002\n" - + "\024DisableSecretVersion\022:.google.cloud.secretmanager" - + ".v1.DisableSecretVersionRequest\032,.google" - + ".cloud.secretmanager.v1.SecretVersion\"\211\001" - + "\332A\004name\202\323\344\223\002|\"2/v1/{name=projects/*/secr" - + "ets/*/versions/*}:disable:\001*ZC\">/v1/{nam" - + "e=projects/*/locations/*/secrets/*/versions/*}:disable:\001*\022\210\002\n" - + "\023EnableSecretVersion\0229.google.cloud.secretmanager.v1.Enable" - + "SecretVersionRequest\032,.google.cloud.secr" - + "etmanager.v1.SecretVersion\"\207\001\332A\004name\202\323\344\223" - + "\002z\"1/v1/{name=projects/*/secrets/*/versi" - + "ons/*}:enable:\001*ZB\"=/v1/{name=projects/*" - + "/locations/*/secrets/*/versions/*}:enable:\001*\022\214\002\n" - + "\024DestroySecretVersion\022:.google.cloud.secretmanager.v1.DestroySecretVersi" + + "\013ListSecrets\0221.google.cloud.secretmanager.v1.ListSecretsRe" + + "quest\0322.google.cloud.secretmanager.v1.Li" + + "stSecretsResponse\"_\332A\006parent\202\323\344\223\002P\022\037/v1/" + + "{parent=projects/*}/secretsZ-\022+/v1/{parent=projects/*/locations/*}/secrets\022\354\001\n" + + "\014CreateSecret\0222.google.cloud.secretmanager" + + ".v1.CreateSecretRequest\032%.google.cloud.s" + + "ecretmanager.v1.Secret\"\200\001\332A\027parent,secre" + + "t_id,secret\202\323\344\223\002`\"\037/v1/{parent=projects/" + + "*}/secrets:\006secretZ5\"+/v1/{parent=projects/*/locations/*}/secrets:\006secret\022\202\002\n" + + "\020AddSecretVersion\0226.google.cloud.secretmana" + + "ger.v1.AddSecretVersionRequest\032,.google." + + "cloud.secretmanager.v1.SecretVersion\"\207\001\332" + + "A\016parent,payload\202\323\344\223\002p\",/v1/{parent=proj" + + "ects/*/secrets/*}:addVersion:\001*Z=\"8/v1/{" + + "parent=projects/*/locations/*/secrets/*}:addVersion:\001*\022\302\001\n" + + "\tGetSecret\022/.google.cloud.secretmanager.v1.GetSecretRequest\032%." + + "google.cloud.secretmanager.v1.Secret\"]\332A" + + "\004name\202\323\344\223\002P\022\037/v1/{name=projects/*/secret" + + "s/*}Z-\022+/v1/{name=projects/*/locations/*/secrets/*}\022\365\001\n" + + "\014UpdateSecret\0222.google.cloud.secretmanager.v1.UpdateSecretRequest" + + "\032%.google.cloud.secretmanager.v1.Secret\"" + + "\211\001\332A\022secret,update_mask\202\323\344\223\002n2&/v1/{secr" + + "et.name=projects/*/secrets/*}:\006secretZ<2" + + "2/v1/{secret.name=projects/*/locations/*/secrets/*}:\006secret\022\271\001\n" + + "\014DeleteSecret\0222.google.cloud.secretmanager.v1.DeleteSecre" + + "tRequest\032\026.google.protobuf.Empty\"]\332A\004nam" + + "e\202\323\344\223\002P*\037/v1/{name=projects/*/secrets/*}" + + "Z-*+/v1/{name=projects/*/locations/*/secrets/*}\022\200\002\n" + + "\022ListSecretVersions\0228.google.cloud.secretmanager.v1.ListSecretVersion" + + "sRequest\0329.google.cloud.secretmanager.v1" + + ".ListSecretVersionsResponse\"u\332A\006parent\202\323" + + "\344\223\002f\022*/v1/{parent=projects/*/secrets/*}/" + + "versionsZ8\0226/v1/{parent=projects/*/locations/*/secrets/*}/versions\022\355\001\n" + + "\020GetSecretVersion\0226.google.cloud.secretmanager.v1." + + "GetSecretVersionRequest\032,.google.cloud.s" + + "ecretmanager.v1.SecretVersion\"s\332A\004name\202\323" + + "\344\223\002f\022*/v1/{name=projects/*/secrets/*/ver" + + "sions/*}Z8\0226/v1/{name=projects/*/locations/*/secrets/*/versions/*}\022\220\002\n" + + "\023AccessSecretVersion\0229.google.cloud.secretmanager." + + "v1.AccessSecretVersionRequest\032:.google.cloud.secretmanager.v1.AccessSecretVersio" + + "nResponse\"\201\001\332A\004name\202\323\344\223\002t\0221/v1/{name=pro" + + "jects/*/secrets/*/versions/*}:accessZ?\022=" + + "/v1/{name=projects/*/locations/*/secrets/*/versions/*}:access\022\214\002\n" + + "\024DisableSecretVersion\022:.google.cloud.secretmanager.v1.D" + + "isableSecretVersionRequest\032,.google.clou" + + "d.secretmanager.v1.SecretVersion\"\211\001\332A\004na" + + "me\202\323\344\223\002|\"2/v1/{name=projects/*/secrets/*" + + "/versions/*}:disable:\001*ZC\">/v1/{name=pro" + + "jects/*/locations/*/secrets/*/versions/*}:disable:\001*\022\210\002\n" + + "\023EnableSecretVersion\0229.google.cloud.secretmanager.v1.EnableSecre" + + "tVersionRequest\032,.google.cloud.secretman" + + "ager.v1.SecretVersion\"\207\001\332A\004name\202\323\344\223\002z\"1/" + + "v1/{name=projects/*/secrets/*/versions/*}:enable:\001*ZB\"=/v1/{name=projects/*/loca" + + "tions/*/secrets/*/versions/*}:enable:\001*\022\214\002\n" + + "\024DestroySecretVersion\022:.google.cloud.secretmanager.v1.DestroySecretVersionReq" + + "uest\032,.google.cloud.secretmanager.v1.Sec" + + "retVersion\"\211\001\332A\004name\202\323\344\223\002|\"2/v1/{name=pr" + + "ojects/*/secrets/*/versions/*}:destroy:\001" + + "*ZC\">/v1/{name=projects/*/locations/*/secrets/*/versions/*}:destroy:\001*\022\311\001\n" + + "\014SetIamPolicy\022\".google.iam.v1.SetIamPolicyRequ" + + "est\032\025.google.iam.v1.Policy\"~\202\323\344\223\002x\"0/v1/" + + "{resource=projects/*/secrets/*}:setIamPo" + + "licy:\001*ZA\"\022/v1/{name=projects/*/locations/*/secrets/*/versions/*}:destroy:\001*\022\311\001\n" - + "\014SetIamPolicy\022\".google.iam.v1.SetIamPolic" - + "yRequest\032\025.google.iam.v1.Policy\"~\202\323\344\223\002x\"" - + "0/v1/{resource=projects/*/secrets/*}:setIamPolicy:\001*ZA\"\022 future = + secretManagerServiceClient.enableManagedRotationCallable().futureCall(request); + // Do something. + SecretVersion response = future.get(); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_EnableManagedRotation_async] diff --git a/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotation.java b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotation.java new file mode 100644 index 000000000000..12bf9dbb8da3 --- /dev/null +++ b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotation.java @@ -0,0 +1,47 @@ +/* + * Copyright 2026 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.cloud.secretmanager.v1.samples; + +// [START secretmanager_v1_generated_SecretManagerService_EnableManagedRotation_sync] +import com.google.cloud.secretmanager.v1.EnableManagedRotationRequest; +import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; +import com.google.cloud.secretmanager.v1.SecretName; +import com.google.cloud.secretmanager.v1.SecretVersion; + +public class SyncEnableManagedRotation { + + public static void main(String[] args) throws Exception { + syncEnableManagedRotation(); + } + + public static void syncEnableManagedRotation() 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 (SecretManagerServiceClient secretManagerServiceClient = + SecretManagerServiceClient.create()) { + EnableManagedRotationRequest request = + EnableManagedRotationRequest.newBuilder() + .setParent(SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString()) + .build(); + SecretVersion response = secretManagerServiceClient.enableManagedRotation(request); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_EnableManagedRotation_sync] diff --git a/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotationSecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials.java b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotationSecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials.java new file mode 100644 index 000000000000..c6c737e26f6c --- /dev/null +++ b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotationSecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials.java @@ -0,0 +1,50 @@ +/* + * Copyright 2026 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.cloud.secretmanager.v1.samples; + +// [START secretmanager_v1_generated_SecretManagerService_EnableManagedRotation_SecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials_sync] +import com.google.cloud.secretmanager.v1.EnableManagedRotationRequest; +import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; +import com.google.cloud.secretmanager.v1.SecretName; +import com.google.cloud.secretmanager.v1.SecretVersion; + +public +class SyncEnableManagedRotationSecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials { + + public static void main(String[] args) throws Exception { + syncEnableManagedRotationSecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials(); + } + + public static void + syncEnableManagedRotationSecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials() + 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 (SecretManagerServiceClient secretManagerServiceClient = + SecretManagerServiceClient.create()) { + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + SecretVersion response = + secretManagerServiceClient.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_EnableManagedRotation_SecretnameEnablemanagedrotationrequestcloudsqlsingleusercredentials_sync] diff --git a/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotationStringEnablemanagedrotationrequestcloudsqlsingleusercredentials.java b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotationStringEnablemanagedrotationrequestcloudsqlsingleusercredentials.java new file mode 100644 index 000000000000..6439b1c9aea0 --- /dev/null +++ b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/enablemanagedrotation/SyncEnableManagedRotationStringEnablemanagedrotationrequestcloudsqlsingleusercredentials.java @@ -0,0 +1,50 @@ +/* + * Copyright 2026 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.cloud.secretmanager.v1.samples; + +// [START secretmanager_v1_generated_SecretManagerService_EnableManagedRotation_StringEnablemanagedrotationrequestcloudsqlsingleusercredentials_sync] +import com.google.cloud.secretmanager.v1.EnableManagedRotationRequest; +import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; +import com.google.cloud.secretmanager.v1.SecretName; +import com.google.cloud.secretmanager.v1.SecretVersion; + +public +class SyncEnableManagedRotationStringEnablemanagedrotationrequestcloudsqlsingleusercredentials { + + public static void main(String[] args) throws Exception { + syncEnableManagedRotationStringEnablemanagedrotationrequestcloudsqlsingleusercredentials(); + } + + public static void + syncEnableManagedRotationStringEnablemanagedrotationrequestcloudsqlsingleusercredentials() + 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 (SecretManagerServiceClient secretManagerServiceClient = + SecretManagerServiceClient.create()) { + String parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString(); + EnableManagedRotationRequest.CloudSQLSingleUserCredentials cloudSqlSingleUserCredentials = + EnableManagedRotationRequest.CloudSQLSingleUserCredentials.newBuilder().build(); + SecretVersion response = + secretManagerServiceClient.enableManagedRotation(parent, cloudSqlSingleUserCredentials); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_EnableManagedRotation_StringEnablemanagedrotationrequestcloudsqlsingleusercredentials_sync] diff --git a/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/AsyncRotateSecret.java b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/AsyncRotateSecret.java new file mode 100644 index 000000000000..3e40fe7b6db7 --- /dev/null +++ b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/AsyncRotateSecret.java @@ -0,0 +1,51 @@ +/* + * Copyright 2026 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.cloud.secretmanager.v1.samples; + +// [START secretmanager_v1_generated_SecretManagerService_RotateSecret_async] +import com.google.api.core.ApiFuture; +import com.google.cloud.secretmanager.v1.RotateSecretRequest; +import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; +import com.google.cloud.secretmanager.v1.SecretName; +import com.google.cloud.secretmanager.v1.SecretVersion; + +public class AsyncRotateSecret { + + public static void main(String[] args) throws Exception { + asyncRotateSecret(); + } + + public static void asyncRotateSecret() 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 (SecretManagerServiceClient secretManagerServiceClient = + SecretManagerServiceClient.create()) { + RotateSecretRequest request = + RotateSecretRequest.newBuilder() + .setParent(SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString()) + .build(); + ApiFuture future = + secretManagerServiceClient.rotateSecretCallable().futureCall(request); + // Do something. + SecretVersion response = future.get(); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_RotateSecret_async] diff --git a/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecret.java b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecret.java new file mode 100644 index 000000000000..3630731db836 --- /dev/null +++ b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecret.java @@ -0,0 +1,47 @@ +/* + * Copyright 2026 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.cloud.secretmanager.v1.samples; + +// [START secretmanager_v1_generated_SecretManagerService_RotateSecret_sync] +import com.google.cloud.secretmanager.v1.RotateSecretRequest; +import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; +import com.google.cloud.secretmanager.v1.SecretName; +import com.google.cloud.secretmanager.v1.SecretVersion; + +public class SyncRotateSecret { + + public static void main(String[] args) throws Exception { + syncRotateSecret(); + } + + public static void syncRotateSecret() 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 (SecretManagerServiceClient secretManagerServiceClient = + SecretManagerServiceClient.create()) { + RotateSecretRequest request = + RotateSecretRequest.newBuilder() + .setParent(SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString()) + .build(); + SecretVersion response = secretManagerServiceClient.rotateSecret(request); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_RotateSecret_sync] diff --git a/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecretSecretname.java b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecretSecretname.java new file mode 100644 index 000000000000..69becabba02d --- /dev/null +++ b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecretSecretname.java @@ -0,0 +1,43 @@ +/* + * Copyright 2026 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.cloud.secretmanager.v1.samples; + +// [START secretmanager_v1_generated_SecretManagerService_RotateSecret_Secretname_sync] +import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; +import com.google.cloud.secretmanager.v1.SecretName; +import com.google.cloud.secretmanager.v1.SecretVersion; + +public class SyncRotateSecretSecretname { + + public static void main(String[] args) throws Exception { + syncRotateSecretSecretname(); + } + + public static void syncRotateSecretSecretname() 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 (SecretManagerServiceClient secretManagerServiceClient = + SecretManagerServiceClient.create()) { + SecretName parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]"); + SecretVersion response = secretManagerServiceClient.rotateSecret(parent); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_RotateSecret_Secretname_sync] diff --git a/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecretString.java b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecretString.java new file mode 100644 index 000000000000..0412f1d43cdb --- /dev/null +++ b/java-secretmanager/samples/snippets/generated/com/google/cloud/secretmanager/v1/secretmanagerservice/rotatesecret/SyncRotateSecretString.java @@ -0,0 +1,43 @@ +/* + * Copyright 2026 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.cloud.secretmanager.v1.samples; + +// [START secretmanager_v1_generated_SecretManagerService_RotateSecret_String_sync] +import com.google.cloud.secretmanager.v1.SecretManagerServiceClient; +import com.google.cloud.secretmanager.v1.SecretName; +import com.google.cloud.secretmanager.v1.SecretVersion; + +public class SyncRotateSecretString { + + public static void main(String[] args) throws Exception { + syncRotateSecretString(); + } + + public static void syncRotateSecretString() 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 (SecretManagerServiceClient secretManagerServiceClient = + SecretManagerServiceClient.create()) { + String parent = SecretName.ofProjectSecretName("[PROJECT]", "[SECRET]").toString(); + SecretVersion response = secretManagerServiceClient.rotateSecret(parent); + } + } +} +// [END secretmanager_v1_generated_SecretManagerService_RotateSecret_String_sync] diff --git a/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v1/reflect-config.json b/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v1/reflect-config.json index b47c5e723c0c..ffa78fc55a5b 100644 --- a/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v1/reflect-config.json +++ b/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v1/reflect-config.json @@ -557,6 +557,60 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.securitycenter.v1.Agent", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.Agent$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.AgentAnomaly", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.AgentAnomaly$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.AgentSession", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.AgentSession$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.securitycenter.v1.Application", "queryAllDeclaredConstructors": true, @@ -1736,6 +1790,33 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.securitycenter.v1.DetectorReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.DetectorReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.DetectorReference$Severity", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.securitycenter.v1.EffectiveEventThreatDetectionCustomModule", "queryAllDeclaredConstructors": true, @@ -2582,6 +2663,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.securitycenter.v1.InvocationReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v1.InvocationReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.securitycenter.v1.KernelRootkit", "queryAllDeclaredConstructors": true, diff --git a/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v2/reflect-config.json b/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v2/reflect-config.json index 70b727388f32..f384d2538983 100644 --- a/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v2/reflect-config.json +++ b/java-securitycenter/google-cloud-securitycenter/src/main/resources/META-INF/native-image/com.google.cloud.securitycenter.v2/reflect-config.json @@ -566,6 +566,60 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.securitycenter.v2.Agent", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.Agent$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.AgentAnomaly", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.AgentAnomaly$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.AgentSession", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.AgentSession$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.securitycenter.v2.AiModel", "queryAllDeclaredConstructors": true, @@ -1700,6 +1754,33 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.securitycenter.v2.DetectorReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.DetectorReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.DetectorReference$Severity", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.securitycenter.v2.Disk", "queryAllDeclaredConstructors": true, @@ -2402,6 +2483,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.securitycenter.v2.InvocationReference", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.securitycenter.v2.InvocationReference$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.securitycenter.v2.IpRule", "queryAllDeclaredConstructors": true, diff --git a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientHttpJsonTest.java b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientHttpJsonTest.java index fcabe39247e3..0c8c3a23cbcf 100644 --- a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientHttpJsonTest.java +++ b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientHttpJsonTest.java @@ -477,6 +477,9 @@ public void createFindingTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -575,6 +578,9 @@ public void createFindingTest2() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4656,6 +4662,9 @@ public void setFindingStateTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4756,6 +4765,9 @@ public void setFindingStateTest2() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4854,6 +4866,9 @@ public void setMuteTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4952,6 +4967,9 @@ public void setMuteTest2() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -5371,6 +5389,9 @@ public void updateFindingTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -5427,6 +5448,9 @@ public void updateFindingTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); Finding actualResponse = client.updateFinding(finding); @@ -5508,6 +5532,9 @@ public void updateFindingExceptionTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); client.updateFinding(finding); Assert.fail("No exception raised"); diff --git a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientTest.java b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientTest.java index ef145318a848..424fdeb8b9c9 100644 --- a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientTest.java +++ b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v1/SecurityCenterClientTest.java @@ -464,6 +464,9 @@ public void createFindingTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -558,6 +561,9 @@ public void createFindingTest2() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4262,6 +4268,9 @@ public void setFindingStateTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4358,6 +4367,9 @@ public void setFindingStateTest2() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4452,6 +4464,9 @@ public void setMuteTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4545,6 +4560,9 @@ public void setMuteTest2() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4904,6 +4922,9 @@ public void updateFindingTest() throws Exception { .addAllGroupMemberships(new ArrayList()) .setChokepoint(Chokepoint.newBuilder().build()) .setExternalExposure(ExternalExposure.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); diff --git a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientHttpJsonTest.java b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientHttpJsonTest.java index 10f3187e0973..dcc36c2e0f9d 100644 --- a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientHttpJsonTest.java +++ b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientHttpJsonTest.java @@ -631,6 +631,9 @@ public void createFindingTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -738,6 +741,9 @@ public void createFindingTest2() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4314,6 +4320,9 @@ public void setFindingStateTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4421,6 +4430,9 @@ public void setFindingStateTest2() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4624,6 +4636,9 @@ public void setMuteTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -4731,6 +4746,9 @@ public void setMuteTest2() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -5090,6 +5108,9 @@ public void updateFindingTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockService.addResponse(expectedResponse); @@ -5155,6 +5176,9 @@ public void updateFindingTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); @@ -5246,6 +5270,9 @@ public void updateFindingExceptionTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); FieldMask updateMask = FieldMask.newBuilder().build(); client.updateFinding(finding, updateMask); diff --git a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientTest.java b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientTest.java index 3ded1c968ffe..0c2fd7c40243 100644 --- a/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientTest.java +++ b/java-securitycenter/google-cloud-securitycenter/src/test/java/com/google/cloud/securitycenter/v2/SecurityCenterClientTest.java @@ -608,6 +608,9 @@ public void createFindingTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -711,6 +714,9 @@ public void createFindingTest2() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -3912,6 +3918,9 @@ public void setFindingStateTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4014,6 +4023,9 @@ public void setFindingStateTest2() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4202,6 +4214,9 @@ public void setMuteTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4304,6 +4319,9 @@ public void setMuteTest2() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); @@ -4586,6 +4604,9 @@ public void updateFindingTest() throws Exception { .setAiModel(AiModel.newBuilder().build()) .setChokepoint(Chokepoint.newBuilder().build()) .setVertexAi(VertexAi.newBuilder().build()) + .setAgent(Agent.newBuilder().build()) + .addAllAgentSessions(new ArrayList()) + .setAgentAnomaly(AgentAnomaly.newBuilder().build()) .build(); mockSecurityCenter.addResponse(expectedResponse); diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/Agent.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/Agent.java new file mode 100644 index 000000000000..bb26e29a7213 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/Agent.java @@ -0,0 +1,790 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +/** + * + * + *
+ * Represents a monitored AI Agent.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.Agent} + */ +@com.google.protobuf.Generated +public final class Agent extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v1.Agent) + AgentOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Agent"); + } + + // Use Agent.newBuilder() to construct. + private Agent(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private Agent() { + id_ = ""; + displayName_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentProto + .internal_static_google_cloud_securitycenter_v1_Agent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentProto + .internal_static_google_cloud_securitycenter_v1_Agent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.Agent.class, + com.google.cloud.securitycenter.v1.Agent.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * 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; + } + } + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * 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 DISPLAY_NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object displayName_ = ""; + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The displayName. + */ + @java.lang.Override + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + 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(); + displayName_ = s; + return s; + } + } + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The bytes for displayName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = 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.GeneratedMessage.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, id_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, displayName_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, id_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, displayName_); + } + 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.cloud.securitycenter.v1.Agent)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v1.Agent other = (com.google.cloud.securitycenter.v1.Agent) obj; + + if (!getId().equals(other.getId())) return false; + if (!getDisplayName().equals(other.getDisplayName())) 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) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER; + hash = (53 * hash) + getDisplayName().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.Agent parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.Agent parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.Agent parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v1.Agent 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a monitored AI Agent.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.Agent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v1.Agent) + com.google.cloud.securitycenter.v1.AgentOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentProto + .internal_static_google_cloud_securitycenter_v1_Agent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentProto + .internal_static_google_cloud_securitycenter_v1_Agent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.Agent.class, + com.google.cloud.securitycenter.v1.Agent.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v1.Agent.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + displayName_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v1.AgentProto + .internal_static_google_cloud_securitycenter_v1_Agent_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.Agent getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v1.Agent.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.Agent build() { + com.google.cloud.securitycenter.v1.Agent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.Agent buildPartial() { + com.google.cloud.securitycenter.v1.Agent result = + new com.google.cloud.securitycenter.v1.Agent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v1.Agent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.displayName_ = displayName_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v1.Agent) { + return mergeFrom((com.google.cloud.securitycenter.v1.Agent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v1.Agent other) { + if (other == com.google.cloud.securitycenter.v1.Agent.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDisplayName().isEmpty()) { + displayName_ = other.displayName_; + 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: + { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + displayName_ = 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 id_ = ""; + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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; + } + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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; + } + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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; + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * string id = 1; + * + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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 displayName_ = ""; + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @return The displayName. + */ + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @return The bytes for displayName. + */ + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @param value The displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + displayName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @return This builder for chaining. + */ + public Builder clearDisplayName() { + displayName_ = getDefaultInstance().getDisplayName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @param value The bytes for displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + displayName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v1.Agent) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v1.Agent) + private static final com.google.cloud.securitycenter.v1.Agent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v1.Agent(); + } + + public static com.google.cloud.securitycenter.v1.Agent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Agent 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.cloud.securitycenter.v1.Agent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomaly.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomaly.java new file mode 100644 index 000000000000..e2010b419061 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomaly.java @@ -0,0 +1,1655 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +/** + * + * + *
+ * Represents details about an anomaly detected in an AI agent's behavior.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.AgentAnomaly} + */ +@com.google.protobuf.Generated +public final class AgentAnomaly extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v1.AgentAnomaly) + AgentAnomalyOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentAnomaly"); + } + + // Use AgentAnomaly.newBuilder() to construct. + private AgentAnomaly(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private AgentAnomaly() { + detectorReferences_ = java.util.Collections.emptyList(); + invocationReferences_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_AgentAnomaly_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_AgentAnomaly_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.AgentAnomaly.class, + com.google.cloud.securitycenter.v1.AgentAnomaly.Builder.class); + } + + public static final int CONFIDENCE_SCORE_FIELD_NUMBER = 1; + private double confidenceScore_ = 0D; + + /** + * + * + *
+   * The overall confidence score indicating the likelihood that this session
+   * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+   * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+   * 0% confidence.
+   * 
+ * + * double confidence_score = 1; + * + * @return The confidenceScore. + */ + @java.lang.Override + public double getConfidenceScore() { + return confidenceScore_; + } + + public static final int DETECTOR_REFERENCES_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private java.util.List detectorReferences_; + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public java.util.List + getDetectorReferencesList() { + return detectorReferences_; + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public java.util.List + getDetectorReferencesOrBuilderList() { + return detectorReferences_; + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public int getDetectorReferencesCount() { + return detectorReferences_.size(); + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.DetectorReference getDetectorReferences(int index) { + return detectorReferences_.get(index); + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.DetectorReferenceOrBuilder + getDetectorReferencesOrBuilder(int index) { + return detectorReferences_.get(index); + } + + public static final int INVOCATION_REFERENCES_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private java.util.List + invocationReferences_; + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public java.util.List + getInvocationReferencesList() { + return invocationReferences_; + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public java.util.List + getInvocationReferencesOrBuilderList() { + return invocationReferences_; + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public int getInvocationReferencesCount() { + return invocationReferences_.size(); + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.InvocationReference getInvocationReferences(int index) { + return invocationReferences_.get(index); + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.InvocationReferenceOrBuilder + getInvocationReferencesOrBuilder(int index) { + return invocationReferences_.get(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 (java.lang.Double.doubleToRawLongBits(confidenceScore_) != 0) { + output.writeDouble(1, confidenceScore_); + } + for (int i = 0; i < detectorReferences_.size(); i++) { + output.writeMessage(2, detectorReferences_.get(i)); + } + for (int i = 0; i < invocationReferences_.size(); i++) { + output.writeMessage(3, invocationReferences_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (java.lang.Double.doubleToRawLongBits(confidenceScore_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, confidenceScore_); + } + for (int i = 0; i < detectorReferences_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(2, detectorReferences_.get(i)); + } + for (int i = 0; i < invocationReferences_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(3, invocationReferences_.get(i)); + } + 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.cloud.securitycenter.v1.AgentAnomaly)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v1.AgentAnomaly other = + (com.google.cloud.securitycenter.v1.AgentAnomaly) obj; + + if (java.lang.Double.doubleToLongBits(getConfidenceScore()) + != java.lang.Double.doubleToLongBits(other.getConfidenceScore())) return false; + if (!getDetectorReferencesList().equals(other.getDetectorReferencesList())) return false; + if (!getInvocationReferencesList().equals(other.getInvocationReferencesList())) 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) + CONFIDENCE_SCORE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConfidenceScore())); + if (getDetectorReferencesCount() > 0) { + hash = (37 * hash) + DETECTOR_REFERENCES_FIELD_NUMBER; + hash = (53 * hash) + getDetectorReferencesList().hashCode(); + } + if (getInvocationReferencesCount() > 0) { + hash = (37 * hash) + INVOCATION_REFERENCES_FIELD_NUMBER; + hash = (53 * hash) + getInvocationReferencesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v1.AgentAnomaly 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents details about an anomaly detected in an AI agent's behavior.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.AgentAnomaly} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v1.AgentAnomaly) + com.google.cloud.securitycenter.v1.AgentAnomalyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_AgentAnomaly_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_AgentAnomaly_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.AgentAnomaly.class, + com.google.cloud.securitycenter.v1.AgentAnomaly.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v1.AgentAnomaly.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + confidenceScore_ = 0D; + if (detectorReferencesBuilder_ == null) { + detectorReferences_ = java.util.Collections.emptyList(); + } else { + detectorReferences_ = null; + detectorReferencesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + if (invocationReferencesBuilder_ == null) { + invocationReferences_ = java.util.Collections.emptyList(); + } else { + invocationReferences_ = null; + invocationReferencesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_AgentAnomaly_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentAnomaly getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v1.AgentAnomaly.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentAnomaly build() { + com.google.cloud.securitycenter.v1.AgentAnomaly result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentAnomaly buildPartial() { + com.google.cloud.securitycenter.v1.AgentAnomaly result = + new com.google.cloud.securitycenter.v1.AgentAnomaly(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.cloud.securitycenter.v1.AgentAnomaly result) { + if (detectorReferencesBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + detectorReferences_ = java.util.Collections.unmodifiableList(detectorReferences_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.detectorReferences_ = detectorReferences_; + } else { + result.detectorReferences_ = detectorReferencesBuilder_.build(); + } + if (invocationReferencesBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + invocationReferences_ = java.util.Collections.unmodifiableList(invocationReferences_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.invocationReferences_ = invocationReferences_; + } else { + result.invocationReferences_ = invocationReferencesBuilder_.build(); + } + } + + private void buildPartial0(com.google.cloud.securitycenter.v1.AgentAnomaly result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.confidenceScore_ = confidenceScore_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v1.AgentAnomaly) { + return mergeFrom((com.google.cloud.securitycenter.v1.AgentAnomaly) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v1.AgentAnomaly other) { + if (other == com.google.cloud.securitycenter.v1.AgentAnomaly.getDefaultInstance()) + return this; + if (java.lang.Double.doubleToRawLongBits(other.getConfidenceScore()) != 0) { + setConfidenceScore(other.getConfidenceScore()); + } + if (detectorReferencesBuilder_ == null) { + if (!other.detectorReferences_.isEmpty()) { + if (detectorReferences_.isEmpty()) { + detectorReferences_ = other.detectorReferences_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureDetectorReferencesIsMutable(); + detectorReferences_.addAll(other.detectorReferences_); + } + onChanged(); + } + } else { + if (!other.detectorReferences_.isEmpty()) { + if (detectorReferencesBuilder_.isEmpty()) { + detectorReferencesBuilder_.dispose(); + detectorReferencesBuilder_ = null; + detectorReferences_ = other.detectorReferences_; + bitField0_ = (bitField0_ & ~0x00000002); + detectorReferencesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetDetectorReferencesFieldBuilder() + : null; + } else { + detectorReferencesBuilder_.addAllMessages(other.detectorReferences_); + } + } + } + if (invocationReferencesBuilder_ == null) { + if (!other.invocationReferences_.isEmpty()) { + if (invocationReferences_.isEmpty()) { + invocationReferences_ = other.invocationReferences_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureInvocationReferencesIsMutable(); + invocationReferences_.addAll(other.invocationReferences_); + } + onChanged(); + } + } else { + if (!other.invocationReferences_.isEmpty()) { + if (invocationReferencesBuilder_.isEmpty()) { + invocationReferencesBuilder_.dispose(); + invocationReferencesBuilder_ = null; + invocationReferences_ = other.invocationReferences_; + bitField0_ = (bitField0_ & ~0x00000004); + invocationReferencesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetInvocationReferencesFieldBuilder() + : null; + } else { + invocationReferencesBuilder_.addAllMessages(other.invocationReferences_); + } + } + } + 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 9: + { + confidenceScore_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } // case 9 + case 18: + { + com.google.cloud.securitycenter.v1.DetectorReference m = + input.readMessage( + com.google.cloud.securitycenter.v1.DetectorReference.parser(), + extensionRegistry); + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(m); + } else { + detectorReferencesBuilder_.addMessage(m); + } + break; + } // case 18 + case 26: + { + com.google.cloud.securitycenter.v1.InvocationReference m = + input.readMessage( + com.google.cloud.securitycenter.v1.InvocationReference.parser(), + extensionRegistry); + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(m); + } else { + invocationReferencesBuilder_.addMessage(m); + } + 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 double confidenceScore_; + + /** + * + * + *
+     * The overall confidence score indicating the likelihood that this session
+     * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+     * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+     * 0% confidence.
+     * 
+ * + * double confidence_score = 1; + * + * @return The confidenceScore. + */ + @java.lang.Override + public double getConfidenceScore() { + return confidenceScore_; + } + + /** + * + * + *
+     * The overall confidence score indicating the likelihood that this session
+     * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+     * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+     * 0% confidence.
+     * 
+ * + * double confidence_score = 1; + * + * @param value The confidenceScore to set. + * @return This builder for chaining. + */ + public Builder setConfidenceScore(double value) { + + confidenceScore_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The overall confidence score indicating the likelihood that this session
+     * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+     * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+     * 0% confidence.
+     * 
+ * + * double confidence_score = 1; + * + * @return This builder for chaining. + */ + public Builder clearConfidenceScore() { + bitField0_ = (bitField0_ & ~0x00000001); + confidenceScore_ = 0D; + onChanged(); + return this; + } + + private java.util.List + detectorReferences_ = java.util.Collections.emptyList(); + + private void ensureDetectorReferencesIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + detectorReferences_ = + new java.util.ArrayList( + detectorReferences_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.DetectorReference, + com.google.cloud.securitycenter.v1.DetectorReference.Builder, + com.google.cloud.securitycenter.v1.DetectorReferenceOrBuilder> + detectorReferencesBuilder_; + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public java.util.List + getDetectorReferencesList() { + if (detectorReferencesBuilder_ == null) { + return java.util.Collections.unmodifiableList(detectorReferences_); + } else { + return detectorReferencesBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public int getDetectorReferencesCount() { + if (detectorReferencesBuilder_ == null) { + return detectorReferences_.size(); + } else { + return detectorReferencesBuilder_.getCount(); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v1.DetectorReference getDetectorReferences(int index) { + if (detectorReferencesBuilder_ == null) { + return detectorReferences_.get(index); + } else { + return detectorReferencesBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder setDetectorReferences( + int index, com.google.cloud.securitycenter.v1.DetectorReference value) { + if (detectorReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDetectorReferencesIsMutable(); + detectorReferences_.set(index, value); + onChanged(); + } else { + detectorReferencesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder setDetectorReferences( + int index, com.google.cloud.securitycenter.v1.DetectorReference.Builder builderForValue) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.set(index, builderForValue.build()); + onChanged(); + } else { + detectorReferencesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + com.google.cloud.securitycenter.v1.DetectorReference value) { + if (detectorReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(value); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + int index, com.google.cloud.securitycenter.v1.DetectorReference value) { + if (detectorReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(index, value); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + com.google.cloud.securitycenter.v1.DetectorReference.Builder builderForValue) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(builderForValue.build()); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + int index, com.google.cloud.securitycenter.v1.DetectorReference.Builder builderForValue) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(index, builderForValue.build()); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder addAllDetectorReferences( + java.lang.Iterable values) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, detectorReferences_); + onChanged(); + } else { + detectorReferencesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder clearDetectorReferences() { + if (detectorReferencesBuilder_ == null) { + detectorReferences_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + detectorReferencesBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public Builder removeDetectorReferences(int index) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.remove(index); + onChanged(); + } else { + detectorReferencesBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v1.DetectorReference.Builder + getDetectorReferencesBuilder(int index) { + return internalGetDetectorReferencesFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v1.DetectorReferenceOrBuilder + getDetectorReferencesOrBuilder(int index) { + if (detectorReferencesBuilder_ == null) { + return detectorReferences_.get(index); + } else { + return detectorReferencesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public java.util.List + getDetectorReferencesOrBuilderList() { + if (detectorReferencesBuilder_ != null) { + return detectorReferencesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(detectorReferences_); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v1.DetectorReference.Builder + addDetectorReferencesBuilder() { + return internalGetDetectorReferencesFieldBuilder() + .addBuilder(com.google.cloud.securitycenter.v1.DetectorReference.getDefaultInstance()); + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v1.DetectorReference.Builder + addDetectorReferencesBuilder(int index) { + return internalGetDetectorReferencesFieldBuilder() + .addBuilder( + index, com.google.cloud.securitycenter.v1.DetectorReference.getDefaultInstance()); + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + public java.util.List + getDetectorReferencesBuilderList() { + return internalGetDetectorReferencesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.DetectorReference, + com.google.cloud.securitycenter.v1.DetectorReference.Builder, + com.google.cloud.securitycenter.v1.DetectorReferenceOrBuilder> + internalGetDetectorReferencesFieldBuilder() { + if (detectorReferencesBuilder_ == null) { + detectorReferencesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.DetectorReference, + com.google.cloud.securitycenter.v1.DetectorReference.Builder, + com.google.cloud.securitycenter.v1.DetectorReferenceOrBuilder>( + detectorReferences_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + detectorReferences_ = null; + } + return detectorReferencesBuilder_; + } + + private java.util.List + invocationReferences_ = java.util.Collections.emptyList(); + + private void ensureInvocationReferencesIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + invocationReferences_ = + new java.util.ArrayList( + invocationReferences_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.InvocationReference, + com.google.cloud.securitycenter.v1.InvocationReference.Builder, + com.google.cloud.securitycenter.v1.InvocationReferenceOrBuilder> + invocationReferencesBuilder_; + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public java.util.List + getInvocationReferencesList() { + if (invocationReferencesBuilder_ == null) { + return java.util.Collections.unmodifiableList(invocationReferences_); + } else { + return invocationReferencesBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public int getInvocationReferencesCount() { + if (invocationReferencesBuilder_ == null) { + return invocationReferences_.size(); + } else { + return invocationReferencesBuilder_.getCount(); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v1.InvocationReference getInvocationReferences( + int index) { + if (invocationReferencesBuilder_ == null) { + return invocationReferences_.get(index); + } else { + return invocationReferencesBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder setInvocationReferences( + int index, com.google.cloud.securitycenter.v1.InvocationReference value) { + if (invocationReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvocationReferencesIsMutable(); + invocationReferences_.set(index, value); + onChanged(); + } else { + invocationReferencesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder setInvocationReferences( + int index, com.google.cloud.securitycenter.v1.InvocationReference.Builder builderForValue) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.set(index, builderForValue.build()); + onChanged(); + } else { + invocationReferencesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + com.google.cloud.securitycenter.v1.InvocationReference value) { + if (invocationReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(value); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + int index, com.google.cloud.securitycenter.v1.InvocationReference value) { + if (invocationReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(index, value); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + com.google.cloud.securitycenter.v1.InvocationReference.Builder builderForValue) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(builderForValue.build()); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + int index, com.google.cloud.securitycenter.v1.InvocationReference.Builder builderForValue) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(index, builderForValue.build()); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder addAllInvocationReferences( + java.lang.Iterable + values) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, invocationReferences_); + onChanged(); + } else { + invocationReferencesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder clearInvocationReferences() { + if (invocationReferencesBuilder_ == null) { + invocationReferences_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + invocationReferencesBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public Builder removeInvocationReferences(int index) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.remove(index); + onChanged(); + } else { + invocationReferencesBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v1.InvocationReference.Builder + getInvocationReferencesBuilder(int index) { + return internalGetInvocationReferencesFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v1.InvocationReferenceOrBuilder + getInvocationReferencesOrBuilder(int index) { + if (invocationReferencesBuilder_ == null) { + return invocationReferences_.get(index); + } else { + return invocationReferencesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public java.util.List + getInvocationReferencesOrBuilderList() { + if (invocationReferencesBuilder_ != null) { + return invocationReferencesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(invocationReferences_); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v1.InvocationReference.Builder + addInvocationReferencesBuilder() { + return internalGetInvocationReferencesFieldBuilder() + .addBuilder(com.google.cloud.securitycenter.v1.InvocationReference.getDefaultInstance()); + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v1.InvocationReference.Builder + addInvocationReferencesBuilder(int index) { + return internalGetInvocationReferencesFieldBuilder() + .addBuilder( + index, com.google.cloud.securitycenter.v1.InvocationReference.getDefaultInstance()); + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + public java.util.List + getInvocationReferencesBuilderList() { + return internalGetInvocationReferencesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.InvocationReference, + com.google.cloud.securitycenter.v1.InvocationReference.Builder, + com.google.cloud.securitycenter.v1.InvocationReferenceOrBuilder> + internalGetInvocationReferencesFieldBuilder() { + if (invocationReferencesBuilder_ == null) { + invocationReferencesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.InvocationReference, + com.google.cloud.securitycenter.v1.InvocationReference.Builder, + com.google.cloud.securitycenter.v1.InvocationReferenceOrBuilder>( + invocationReferences_, + ((bitField0_ & 0x00000004) != 0), + getParentForChildren(), + isClean()); + invocationReferences_ = null; + } + return invocationReferencesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v1.AgentAnomaly) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v1.AgentAnomaly) + private static final com.google.cloud.securitycenter.v1.AgentAnomaly DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v1.AgentAnomaly(); + } + + public static com.google.cloud.securitycenter.v1.AgentAnomaly getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AgentAnomaly 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.cloud.securitycenter.v1.AgentAnomaly getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomalyOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomalyOrBuilder.java new file mode 100644 index 000000000000..b5aca0f8809f --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomalyOrBuilder.java @@ -0,0 +1,174 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public interface AgentAnomalyOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v1.AgentAnomaly) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The overall confidence score indicating the likelihood that this session
+   * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+   * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+   * 0% confidence.
+   * 
+ * + * double confidence_score = 1; + * + * @return The confidenceScore. + */ + double getConfidenceScore(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + java.util.List getDetectorReferencesList(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + com.google.cloud.securitycenter.v1.DetectorReference getDetectorReferences(int index); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + int getDetectorReferencesCount(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + java.util.List + getDetectorReferencesOrBuilderList(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.DetectorReference detector_references = 2; + * + */ + com.google.cloud.securitycenter.v1.DetectorReferenceOrBuilder getDetectorReferencesOrBuilder( + int index); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + java.util.List + getInvocationReferencesList(); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + com.google.cloud.securitycenter.v1.InvocationReference getInvocationReferences(int index); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + int getInvocationReferencesCount(); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + java.util.List + getInvocationReferencesOrBuilderList(); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.InvocationReference invocation_references = 3; + * + */ + com.google.cloud.securitycenter.v1.InvocationReferenceOrBuilder getInvocationReferencesOrBuilder( + int index); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomalyProto.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomalyProto.java new file mode 100644 index 000000000000..d321b13839d7 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentAnomalyProto.java @@ -0,0 +1,125 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public final class AgentAnomalyProto extends com.google.protobuf.GeneratedFile { + private AgentAnomalyProto() {} + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentAnomalyProto"); + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v1_AgentAnomaly_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v1_AgentAnomaly_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v1_DetectorReference_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v1_DetectorReference_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v1_InvocationReference_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v1_InvocationReference_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" + + "2google/cloud/securitycenter/v1/agent_a" + + "nomaly.proto\022\036google.cloud.securitycenter.v1\"\314\001\n" + + "\014AgentAnomaly\022\030\n" + + "\020confidence_score\030\001 \001(\001\022N\n" + + "\023detector_references\030\002 \003(\01321.g" + + "oogle.cloud.securitycenter.v1.DetectorReference\022R\n" + + "\025invocation_references\030\003 \003(\01323" + + ".google.cloud.securitycenter.v1.InvocationReference\"\214\002\n" + + "\021DetectorReference\022L\n" + + "\010severity\030\001" + + " \001(\0162:.google.cloud.securitycenter.v1.DetectorReference.Severity\022\023\n" + + "\013detector_id\030\002 \001(\t\022\024\n" + + "\014display_name\030\003 \001(\t\022\023\n" + + "\013explanation\030\004 \001(\t\022\026\n" + + "\016recommendation\030\005 \001(\t\"Q\n" + + "\010Severity\022\030\n" + + "\024SEVERITY_UNSPECIFIED\020\000\022\014\n" + + "\010CRITICAL\020\001\022\010\n" + + "\004HIGH\020\002\022\n\n" + + "\006MEDIUM\020\003\022\007\n" + + "\003LOW\020\004\",\n" + + "\023InvocationReference\022\025\n\r" + + "invocation_id\030\001 \001(\tB\353\001\n" + + "\"com.google.cloud.securitycenter.v1B\021AgentAnomalyProtoP\001ZJcloud.goog" + + "le.com/go/securitycenter/apiv1/securityc" + + "enterpb;securitycenterpb\252\002\036Google.Cloud." + + "SecurityCenter.V1\312\002\036Google\\Cloud\\Securit" + + "yCenter\\V1\352\002!Google::Cloud::SecurityCenter::V1b\006proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_google_cloud_securitycenter_v1_AgentAnomaly_descriptor = + getDescriptor().getMessageType(0); + internal_static_google_cloud_securitycenter_v1_AgentAnomaly_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v1_AgentAnomaly_descriptor, + new java.lang.String[] { + "ConfidenceScore", "DetectorReferences", "InvocationReferences", + }); + internal_static_google_cloud_securitycenter_v1_DetectorReference_descriptor = + getDescriptor().getMessageType(1); + internal_static_google_cloud_securitycenter_v1_DetectorReference_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v1_DetectorReference_descriptor, + new java.lang.String[] { + "Severity", "DetectorId", "DisplayName", "Explanation", "Recommendation", + }); + internal_static_google_cloud_securitycenter_v1_InvocationReference_descriptor = + getDescriptor().getMessageType(2); + internal_static_google_cloud_securitycenter_v1_InvocationReference_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v1_InvocationReference_descriptor, + new java.lang.String[] { + "InvocationId", + }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentOrBuilder.java new file mode 100644 index 000000000000..34efd6c33e68 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentOrBuilder.java @@ -0,0 +1,82 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public interface AgentOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v1.Agent) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * string id = 1; + * + * @return The id. + */ + java.lang.String getId(); + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * string id = 1; + * + * @return The bytes for id. + */ + com.google.protobuf.ByteString getIdBytes(); + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The displayName. + */ + java.lang.String getDisplayName(); + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The bytes for displayName. + */ + com.google.protobuf.ByteString getDisplayNameBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentProto.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentProto.java new file mode 100644 index 000000000000..589c333139ab --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentProto.java @@ -0,0 +1,81 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public final class AgentProto extends com.google.protobuf.GeneratedFile { + private AgentProto() {} + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentProto"); + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v1_Agent_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v1_Agent_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + + static { + java.lang.String[] descriptorData = { + "\n*google/cloud/securitycenter/v1/agent.p" + + "roto\022\036google.cloud.securitycenter.v1\")\n\005" + + "Agent\022\n\n\002id\030\001 \001(\t\022\024\n\014display_name\030\002 \001(\tB" + + "\344\001\n\"com.google.cloud.securitycenter.v1B\n" + + "AgentProtoP\001ZJcloud.google.com/go/securi" + + "tycenter/apiv1/securitycenterpb;security" + + "centerpb\252\002\036Google.Cloud.SecurityCenter.V" + + "1\312\002\036Google\\Cloud\\SecurityCenter\\V1\352\002!Goo" + + "gle::Cloud::SecurityCenter::V1b\006proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_google_cloud_securitycenter_v1_Agent_descriptor = + getDescriptor().getMessageType(0); + internal_static_google_cloud_securitycenter_v1_Agent_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v1_Agent_descriptor, + new java.lang.String[] { + "Id", "DisplayName", + }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSession.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSession.java new file mode 100644 index 000000000000..036ff3068445 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSession.java @@ -0,0 +1,596 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_session.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +/** + * + * + *
+ * Represents a conversational session where the finding occurred.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.AgentSession} + */ +@com.google.protobuf.Generated +public final class AgentSession extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v1.AgentSession) + AgentSessionOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentSession"); + } + + // Use AgentSession.newBuilder() to construct. + private AgentSession(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private AgentSession() { + sessionId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentSessionProto + .internal_static_google_cloud_securitycenter_v1_AgentSession_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentSessionProto + .internal_static_google_cloud_securitycenter_v1_AgentSession_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.AgentSession.class, + com.google.cloud.securitycenter.v1.AgentSession.Builder.class); + } + + public static final int SESSION_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object sessionId_ = ""; + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The sessionId. + */ + @java.lang.Override + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + 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(); + sessionId_ = s; + return s; + } + } + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The bytes for sessionId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + sessionId_ = 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.GeneratedMessage.isStringEmpty(sessionId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_); + } + 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.cloud.securitycenter.v1.AgentSession)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v1.AgentSession other = + (com.google.cloud.securitycenter.v1.AgentSession) obj; + + if (!getSessionId().equals(other.getSessionId())) 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) + SESSION_ID_FIELD_NUMBER; + hash = (53 * hash) + getSessionId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.AgentSession parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v1.AgentSession 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a conversational session where the finding occurred.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.AgentSession} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v1.AgentSession) + com.google.cloud.securitycenter.v1.AgentSessionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentSessionProto + .internal_static_google_cloud_securitycenter_v1_AgentSession_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentSessionProto + .internal_static_google_cloud_securitycenter_v1_AgentSession_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.AgentSession.class, + com.google.cloud.securitycenter.v1.AgentSession.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v1.AgentSession.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sessionId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v1.AgentSessionProto + .internal_static_google_cloud_securitycenter_v1_AgentSession_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentSession getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v1.AgentSession.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentSession build() { + com.google.cloud.securitycenter.v1.AgentSession result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentSession buildPartial() { + com.google.cloud.securitycenter.v1.AgentSession result = + new com.google.cloud.securitycenter.v1.AgentSession(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v1.AgentSession result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sessionId_ = sessionId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v1.AgentSession) { + return mergeFrom((com.google.cloud.securitycenter.v1.AgentSession) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v1.AgentSession other) { + if (other == com.google.cloud.securitycenter.v1.AgentSession.getDefaultInstance()) + return this; + if (!other.getSessionId().isEmpty()) { + sessionId_ = other.sessionId_; + bitField0_ |= 0x00000001; + 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: + { + sessionId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + 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 sessionId_ = ""; + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @return The sessionId. + */ + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @return The bytes for sessionId. + */ + public com.google.protobuf.ByteString getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @param value The sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearSessionId() { + sessionId_ = getDefaultInstance().getSessionId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @param value The bytes for sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v1.AgentSession) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v1.AgentSession) + private static final com.google.cloud.securitycenter.v1.AgentSession DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v1.AgentSession(); + } + + public static com.google.cloud.securitycenter.v1.AgentSession getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AgentSession 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.cloud.securitycenter.v1.AgentSession getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSessionOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSessionOrBuilder.java new file mode 100644 index 000000000000..67670d37817b --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSessionOrBuilder.java @@ -0,0 +1,54 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_session.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public interface AgentSessionOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v1.AgentSession) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The sessionId. + */ + java.lang.String getSessionId(); + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The bytes for sessionId. + */ + com.google.protobuf.ByteString getSessionIdBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSessionProto.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSessionProto.java new file mode 100644 index 000000000000..aec948e23f6c --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/AgentSessionProto.java @@ -0,0 +1,82 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_session.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public final class AgentSessionProto extends com.google.protobuf.GeneratedFile { + private AgentSessionProto() {} + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentSessionProto"); + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v1_AgentSession_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v1_AgentSession_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + + static { + java.lang.String[] descriptorData = { + "\n2google/cloud/securitycenter/v1/agent_s" + + "ession.proto\022\036google.cloud.securitycente" + + "r.v1\"\"\n\014AgentSession\022\022\n\nsession_id\030\001 \001(\t" + + "B\353\001\n\"com.google.cloud.securitycenter.v1B" + + "\021AgentSessionProtoP\001ZJcloud.google.com/g" + + "o/securitycenter/apiv1/securitycenterpb;" + + "securitycenterpb\252\002\036Google.Cloud.Security" + + "Center.V1\312\002\036Google\\Cloud\\SecurityCenter\\" + + "V1\352\002!Google::Cloud::SecurityCenter::V1b\006" + + "proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_google_cloud_securitycenter_v1_AgentSession_descriptor = + getDescriptor().getMessageType(0); + internal_static_google_cloud_securitycenter_v1_AgentSession_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v1_AgentSession_descriptor, + new java.lang.String[] { + "SessionId", + }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/DetectorReference.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/DetectorReference.java new file mode 100644 index 000000000000..e285b0b91e4f --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/DetectorReference.java @@ -0,0 +1,1579 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +/** + * + * + *
+ * Represents a reference to a specific anomaly detector.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.DetectorReference} + */ +@com.google.protobuf.Generated +public final class DetectorReference extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v1.DetectorReference) + DetectorReferenceOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "DetectorReference"); + } + + // Use DetectorReference.newBuilder() to construct. + private DetectorReference(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private DetectorReference() { + severity_ = 0; + detectorId_ = ""; + displayName_ = ""; + explanation_ = ""; + recommendation_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_DetectorReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_DetectorReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.DetectorReference.class, + com.google.cloud.securitycenter.v1.DetectorReference.Builder.class); + } + + /** + * + * + *
+   * Severity levels for detectors.
+   * 
+ * + * Protobuf enum {@code google.cloud.securitycenter.v1.DetectorReference.Severity} + */ + public enum Severity implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Unspecified severity.
+     * 
+ * + * SEVERITY_UNSPECIFIED = 0; + */ + SEVERITY_UNSPECIFIED(0), + /** + * + * + *
+     * Critical severity.
+     * 
+ * + * CRITICAL = 1; + */ + CRITICAL(1), + /** + * + * + *
+     * High severity.
+     * 
+ * + * HIGH = 2; + */ + HIGH(2), + /** + * + * + *
+     * Medium severity.
+     * 
+ * + * MEDIUM = 3; + */ + MEDIUM(3), + /** + * + * + *
+     * Low severity.
+     * 
+ * + * LOW = 4; + */ + LOW(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Severity"); + } + + /** + * + * + *
+     * Unspecified severity.
+     * 
+ * + * SEVERITY_UNSPECIFIED = 0; + */ + public static final int SEVERITY_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Critical severity.
+     * 
+ * + * CRITICAL = 1; + */ + public static final int CRITICAL_VALUE = 1; + + /** + * + * + *
+     * High severity.
+     * 
+ * + * HIGH = 2; + */ + public static final int HIGH_VALUE = 2; + + /** + * + * + *
+     * Medium severity.
+     * 
+ * + * MEDIUM = 3; + */ + public static final int MEDIUM_VALUE = 3; + + /** + * + * + *
+     * Low severity.
+     * 
+ * + * LOW = 4; + */ + public static final int LOW_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 Severity 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 Severity forNumber(int value) { + switch (value) { + case 0: + return SEVERITY_UNSPECIFIED; + case 1: + return CRITICAL; + case 2: + return HIGH; + case 3: + return MEDIUM; + case 4: + return LOW; + 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 Severity findValueByNumber(int number) { + return Severity.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.DetectorReference.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final Severity[] VALUES = values(); + + public static Severity 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 Severity(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.cloud.securitycenter.v1.DetectorReference.Severity) + } + + public static final int SEVERITY_FIELD_NUMBER = 1; + private int severity_ = 0; + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @return The enum numeric value on the wire for severity. + */ + @java.lang.Override + public int getSeverityValue() { + return severity_; + } + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @return The severity. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.DetectorReference.Severity getSeverity() { + com.google.cloud.securitycenter.v1.DetectorReference.Severity result = + com.google.cloud.securitycenter.v1.DetectorReference.Severity.forNumber(severity_); + return result == null + ? com.google.cloud.securitycenter.v1.DetectorReference.Severity.UNRECOGNIZED + : result; + } + + public static final int DETECTOR_ID_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object detectorId_ = ""; + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The detectorId. + */ + @java.lang.Override + public java.lang.String getDetectorId() { + java.lang.Object ref = detectorId_; + 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(); + detectorId_ = s; + return s; + } + } + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The bytes for detectorId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDetectorIdBytes() { + java.lang.Object ref = detectorId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + detectorId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAY_NAME_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object displayName_ = ""; + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The displayName. + */ + @java.lang.Override + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + 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(); + displayName_ = s; + return s; + } + } + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The bytes for displayName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EXPLANATION_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object explanation_ = ""; + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The explanation. + */ + @java.lang.Override + public java.lang.String getExplanation() { + java.lang.Object ref = explanation_; + 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(); + explanation_ = s; + return s; + } + } + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The bytes for explanation. + */ + @java.lang.Override + public com.google.protobuf.ByteString getExplanationBytes() { + java.lang.Object ref = explanation_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + explanation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RECOMMENDATION_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object recommendation_ = ""; + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The recommendation. + */ + @java.lang.Override + public java.lang.String getRecommendation() { + java.lang.Object ref = recommendation_; + 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(); + recommendation_ = s; + return s; + } + } + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The bytes for recommendation. + */ + @java.lang.Override + public com.google.protobuf.ByteString getRecommendationBytes() { + java.lang.Object ref = recommendation_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + recommendation_ = 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 (severity_ + != com.google.cloud.securitycenter.v1.DetectorReference.Severity.SEVERITY_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, severity_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(detectorId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, detectorId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, displayName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(explanation_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, explanation_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(recommendation_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, recommendation_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (severity_ + != com.google.cloud.securitycenter.v1.DetectorReference.Severity.SEVERITY_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, severity_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(detectorId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, detectorId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, displayName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(explanation_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, explanation_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(recommendation_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, recommendation_); + } + 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.cloud.securitycenter.v1.DetectorReference)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v1.DetectorReference other = + (com.google.cloud.securitycenter.v1.DetectorReference) obj; + + if (severity_ != other.severity_) return false; + if (!getDetectorId().equals(other.getDetectorId())) return false; + if (!getDisplayName().equals(other.getDisplayName())) return false; + if (!getExplanation().equals(other.getExplanation())) return false; + if (!getRecommendation().equals(other.getRecommendation())) 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) + SEVERITY_FIELD_NUMBER; + hash = (53 * hash) + severity_; + hash = (37 * hash) + DETECTOR_ID_FIELD_NUMBER; + hash = (53 * hash) + getDetectorId().hashCode(); + hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER; + hash = (53 * hash) + getDisplayName().hashCode(); + hash = (37 * hash) + EXPLANATION_FIELD_NUMBER; + hash = (53 * hash) + getExplanation().hashCode(); + hash = (37 * hash) + RECOMMENDATION_FIELD_NUMBER; + hash = (53 * hash) + getRecommendation().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v1.DetectorReference 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a reference to a specific anomaly detector.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.DetectorReference} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v1.DetectorReference) + com.google.cloud.securitycenter.v1.DetectorReferenceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_DetectorReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_DetectorReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.DetectorReference.class, + com.google.cloud.securitycenter.v1.DetectorReference.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v1.DetectorReference.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + severity_ = 0; + detectorId_ = ""; + displayName_ = ""; + explanation_ = ""; + recommendation_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_DetectorReference_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.DetectorReference getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v1.DetectorReference.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.DetectorReference build() { + com.google.cloud.securitycenter.v1.DetectorReference result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.DetectorReference buildPartial() { + com.google.cloud.securitycenter.v1.DetectorReference result = + new com.google.cloud.securitycenter.v1.DetectorReference(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v1.DetectorReference result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.severity_ = severity_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.detectorId_ = detectorId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.displayName_ = displayName_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.explanation_ = explanation_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.recommendation_ = recommendation_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v1.DetectorReference) { + return mergeFrom((com.google.cloud.securitycenter.v1.DetectorReference) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v1.DetectorReference other) { + if (other == com.google.cloud.securitycenter.v1.DetectorReference.getDefaultInstance()) + return this; + if (other.severity_ != 0) { + setSeverityValue(other.getSeverityValue()); + } + if (!other.getDetectorId().isEmpty()) { + detectorId_ = other.detectorId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getDisplayName().isEmpty()) { + displayName_ = other.displayName_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getExplanation().isEmpty()) { + explanation_ = other.explanation_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getRecommendation().isEmpty()) { + recommendation_ = other.recommendation_; + bitField0_ |= 0x00000010; + 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: + { + severity_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + detectorId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + displayName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + explanation_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + recommendation_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + 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 severity_ = 0; + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @return The enum numeric value on the wire for severity. + */ + @java.lang.Override + public int getSeverityValue() { + return severity_; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @param value The enum numeric value on the wire for severity to set. + * @return This builder for chaining. + */ + public Builder setSeverityValue(int value) { + severity_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @return The severity. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.DetectorReference.Severity getSeverity() { + com.google.cloud.securitycenter.v1.DetectorReference.Severity result = + com.google.cloud.securitycenter.v1.DetectorReference.Severity.forNumber(severity_); + return result == null + ? com.google.cloud.securitycenter.v1.DetectorReference.Severity.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @param value The severity to set. + * @return This builder for chaining. + */ + public Builder setSeverity( + com.google.cloud.securitycenter.v1.DetectorReference.Severity value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + severity_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @return This builder for chaining. + */ + public Builder clearSeverity() { + bitField0_ = (bitField0_ & ~0x00000001); + severity_ = 0; + onChanged(); + return this; + } + + private java.lang.Object detectorId_ = ""; + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @return The detectorId. + */ + public java.lang.String getDetectorId() { + java.lang.Object ref = detectorId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + detectorId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @return The bytes for detectorId. + */ + public com.google.protobuf.ByteString getDetectorIdBytes() { + java.lang.Object ref = detectorId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + detectorId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @param value The detectorId to set. + * @return This builder for chaining. + */ + public Builder setDetectorId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + detectorId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @return This builder for chaining. + */ + public Builder clearDetectorId() { + detectorId_ = getDefaultInstance().getDetectorId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @param value The bytes for detectorId to set. + * @return This builder for chaining. + */ + public Builder setDetectorIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + detectorId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object displayName_ = ""; + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @return The displayName. + */ + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @return The bytes for displayName. + */ + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @param value The displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + displayName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @return This builder for chaining. + */ + public Builder clearDisplayName() { + displayName_ = getDefaultInstance().getDisplayName(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @param value The bytes for displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + displayName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object explanation_ = ""; + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @return The explanation. + */ + public java.lang.String getExplanation() { + java.lang.Object ref = explanation_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + explanation_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @return The bytes for explanation. + */ + public com.google.protobuf.ByteString getExplanationBytes() { + java.lang.Object ref = explanation_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + explanation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @param value The explanation to set. + * @return This builder for chaining. + */ + public Builder setExplanation(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + explanation_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @return This builder for chaining. + */ + public Builder clearExplanation() { + explanation_ = getDefaultInstance().getExplanation(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @param value The bytes for explanation to set. + * @return This builder for chaining. + */ + public Builder setExplanationBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + explanation_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object recommendation_ = ""; + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @return The recommendation. + */ + public java.lang.String getRecommendation() { + java.lang.Object ref = recommendation_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + recommendation_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @return The bytes for recommendation. + */ + public com.google.protobuf.ByteString getRecommendationBytes() { + java.lang.Object ref = recommendation_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + recommendation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @param value The recommendation to set. + * @return This builder for chaining. + */ + public Builder setRecommendation(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + recommendation_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @return This builder for chaining. + */ + public Builder clearRecommendation() { + recommendation_ = getDefaultInstance().getRecommendation(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @param value The bytes for recommendation to set. + * @return This builder for chaining. + */ + public Builder setRecommendationBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + recommendation_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v1.DetectorReference) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v1.DetectorReference) + private static final com.google.cloud.securitycenter.v1.DetectorReference DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v1.DetectorReference(); + } + + public static com.google.cloud.securitycenter.v1.DetectorReference getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DetectorReference 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.cloud.securitycenter.v1.DetectorReference getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/DetectorReferenceOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/DetectorReferenceOrBuilder.java new file mode 100644 index 000000000000..62a1925567d6 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/DetectorReferenceOrBuilder.java @@ -0,0 +1,168 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public interface DetectorReferenceOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v1.DetectorReference) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @return The enum numeric value on the wire for severity. + */ + int getSeverityValue(); + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v1.DetectorReference.Severity severity = 1; + * + * @return The severity. + */ + com.google.cloud.securitycenter.v1.DetectorReference.Severity getSeverity(); + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The detectorId. + */ + java.lang.String getDetectorId(); + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The bytes for detectorId. + */ + com.google.protobuf.ByteString getDetectorIdBytes(); + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The displayName. + */ + java.lang.String getDisplayName(); + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The bytes for displayName. + */ + com.google.protobuf.ByteString getDisplayNameBytes(); + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The explanation. + */ + java.lang.String getExplanation(); + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The bytes for explanation. + */ + com.google.protobuf.ByteString getExplanationBytes(); + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The recommendation. + */ + java.lang.String getRecommendation(); + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The bytes for recommendation. + */ + com.google.protobuf.ByteString getRecommendationBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/Finding.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/Finding.java index 235cb7e3b16b..96bccd16237f 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/Finding.java +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/Finding.java @@ -83,6 +83,7 @@ private Finding() { logEntries_ = java.util.Collections.emptyList(); loadBalancers_ = java.util.Collections.emptyList(); groupMemberships_ = java.util.Collections.emptyList(); + agentSessions_ = java.util.Collections.emptyList(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @@ -7879,6 +7880,185 @@ public com.google.cloud.securitycenter.v1.ExternalExposure getExternalExposure() : externalExposure_; } + public static final int AGENT_FIELD_NUMBER = 88; + private com.google.cloud.securitycenter.v1.Agent agent_; + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + * + * @return Whether the agent field is set. + */ + @java.lang.Override + public boolean hasAgent() { + return ((bitField0_ & 0x01000000) != 0); + } + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + * + * @return The agent. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.Agent getAgent() { + return agent_ == null ? com.google.cloud.securitycenter.v1.Agent.getDefaultInstance() : agent_; + } + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentOrBuilder getAgentOrBuilder() { + return agent_ == null ? com.google.cloud.securitycenter.v1.Agent.getDefaultInstance() : agent_; + } + + public static final int AGENT_SESSIONS_FIELD_NUMBER = 89; + + @SuppressWarnings("serial") + private java.util.List agentSessions_; + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + @java.lang.Override + public java.util.List getAgentSessionsList() { + return agentSessions_; + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + @java.lang.Override + public java.util.List + getAgentSessionsOrBuilderList() { + return agentSessions_; + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + @java.lang.Override + public int getAgentSessionsCount() { + return agentSessions_.size(); + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentSession getAgentSessions(int index) { + return agentSessions_.get(index); + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentSessionOrBuilder getAgentSessionsOrBuilder( + int index) { + return agentSessions_.get(index); + } + + public static final int AGENT_ANOMALY_FIELD_NUMBER = 90; + private com.google.cloud.securitycenter.v1.AgentAnomaly agentAnomaly_; + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + * + * @return Whether the agentAnomaly field is set. + */ + @java.lang.Override + public boolean hasAgentAnomaly() { + return ((bitField0_ & 0x02000000) != 0); + } + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + * + * @return The agentAnomaly. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentAnomaly getAgentAnomaly() { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v1.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v1.AgentAnomalyOrBuilder getAgentAnomalyOrBuilder() { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v1.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -8049,6 +8229,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (((bitField0_ & 0x00800000) != 0)) { output.writeMessage(84, getExternalExposure()); } + if (((bitField0_ & 0x01000000) != 0)) { + output.writeMessage(88, getAgent()); + } + for (int i = 0; i < agentSessions_.size(); i++) { + output.writeMessage(89, agentSessions_.get(i)); + } + if (((bitField0_ & 0x02000000) != 0)) { + output.writeMessage(90, getAgentAnomaly()); + } getUnknownFields().writeTo(output); } @@ -8245,6 +8434,15 @@ public int getSerializedSize() { if (((bitField0_ & 0x00800000) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(84, getExternalExposure()); } + if (((bitField0_ & 0x01000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(88, getAgent()); + } + for (int i = 0; i < agentSessions_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(89, agentSessions_.get(i)); + } + if (((bitField0_ & 0x02000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(90, getAgentAnomaly()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -8385,6 +8583,15 @@ public boolean equals(final java.lang.Object obj) { if (hasExternalExposure()) { if (!getExternalExposure().equals(other.getExternalExposure())) return false; } + if (hasAgent() != other.hasAgent()) return false; + if (hasAgent()) { + if (!getAgent().equals(other.getAgent())) return false; + } + if (!getAgentSessionsList().equals(other.getAgentSessionsList())) return false; + if (hasAgentAnomaly() != other.hasAgentAnomaly()) return false; + if (hasAgentAnomaly()) { + if (!getAgentAnomaly().equals(other.getAgentAnomaly())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -8574,6 +8781,18 @@ public int hashCode() { hash = (37 * hash) + EXTERNAL_EXPOSURE_FIELD_NUMBER; hash = (53 * hash) + getExternalExposure().hashCode(); } + if (hasAgent()) { + hash = (37 * hash) + AGENT_FIELD_NUMBER; + hash = (53 * hash) + getAgent().hashCode(); + } + if (getAgentSessionsCount() > 0) { + hash = (37 * hash) + AGENT_SESSIONS_FIELD_NUMBER; + hash = (53 * hash) + getAgentSessionsList().hashCode(); + } + if (hasAgentAnomaly()) { + hash = (37 * hash) + AGENT_ANOMALY_FIELD_NUMBER; + hash = (53 * hash) + getAgentAnomaly().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -8785,6 +9004,9 @@ private void maybeForceBuilderInitialization() { internalGetGroupMembershipsFieldBuilder(); internalGetChokepointFieldBuilder(); internalGetExternalExposureFieldBuilder(); + internalGetAgentFieldBuilder(); + internalGetAgentSessionsFieldBuilder(); + internalGetAgentAnomalyFieldBuilder(); } } @@ -9001,6 +9223,23 @@ public Builder clear() { externalExposureBuilder_.dispose(); externalExposureBuilder_ = null; } + agent_ = null; + if (agentBuilder_ != null) { + agentBuilder_.dispose(); + agentBuilder_ = null; + } + if (agentSessionsBuilder_ == null) { + agentSessions_ = java.util.Collections.emptyList(); + } else { + agentSessions_ = null; + agentSessionsBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00200000); + agentAnomaly_ = null; + if (agentAnomalyBuilder_ != null) { + agentAnomalyBuilder_.dispose(); + agentAnomalyBuilder_ = null; + } return this; } @@ -9130,6 +9369,15 @@ private void buildPartialRepeatedFields(com.google.cloud.securitycenter.v1.Findi } else { result.groupMemberships_ = groupMembershipsBuilder_.build(); } + if (agentSessionsBuilder_ == null) { + if (((bitField1_ & 0x00200000) != 0)) { + agentSessions_ = java.util.Collections.unmodifiableList(agentSessions_); + bitField1_ = (bitField1_ & ~0x00200000); + } + result.agentSessions_ = agentSessions_; + } else { + result.agentSessions_ = agentSessionsBuilder_.build(); + } } private void buildPartial0(com.google.cloud.securitycenter.v1.Finding result) { @@ -9313,6 +9561,15 @@ private void buildPartial1(com.google.cloud.securitycenter.v1.Finding result) { externalExposureBuilder_ == null ? externalExposure_ : externalExposureBuilder_.build(); to_bitField0_ |= 0x00800000; } + if (((from_bitField1_ & 0x00100000) != 0)) { + result.agent_ = agentBuilder_ == null ? agent_ : agentBuilder_.build(); + to_bitField0_ |= 0x01000000; + } + if (((from_bitField1_ & 0x00400000) != 0)) { + result.agentAnomaly_ = + agentAnomalyBuilder_ == null ? agentAnomaly_ : agentAnomalyBuilder_.build(); + to_bitField0_ |= 0x02000000; + } result.bitField0_ |= to_bitField0_; } @@ -9743,6 +10000,39 @@ public Builder mergeFrom(com.google.cloud.securitycenter.v1.Finding other) { if (other.hasExternalExposure()) { mergeExternalExposure(other.getExternalExposure()); } + if (other.hasAgent()) { + mergeAgent(other.getAgent()); + } + if (agentSessionsBuilder_ == null) { + if (!other.agentSessions_.isEmpty()) { + if (agentSessions_.isEmpty()) { + agentSessions_ = other.agentSessions_; + bitField1_ = (bitField1_ & ~0x00200000); + } else { + ensureAgentSessionsIsMutable(); + agentSessions_.addAll(other.agentSessions_); + } + onChanged(); + } + } else { + if (!other.agentSessions_.isEmpty()) { + if (agentSessionsBuilder_.isEmpty()) { + agentSessionsBuilder_.dispose(); + agentSessionsBuilder_ = null; + agentSessions_ = other.agentSessions_; + bitField1_ = (bitField1_ & ~0x00200000); + agentSessionsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetAgentSessionsFieldBuilder() + : null; + } else { + agentSessionsBuilder_.addAllMessages(other.agentSessions_); + } + } + } + if (other.hasAgentAnomaly()) { + mergeAgentAnomaly(other.getAgentAnomaly()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -10200,6 +10490,33 @@ public Builder mergeFrom( bitField1_ |= 0x00080000; break; } // case 674 + case 706: + { + input.readMessage(internalGetAgentFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x00100000; + break; + } // case 706 + case 714: + { + com.google.cloud.securitycenter.v1.AgentSession m = + input.readMessage( + com.google.cloud.securitycenter.v1.AgentSession.parser(), + extensionRegistry); + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.add(m); + } else { + agentSessionsBuilder_.addMessage(m); + } + break; + } // case 714 + case 722: + { + input.readMessage( + internalGetAgentAnomalyFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x00400000; + break; + } // case 722 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -21665,6 +21982,773 @@ public Builder clearExternalExposure() { return externalExposureBuilder_; } + private com.google.cloud.securitycenter.v1.Agent agent_; + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v1.Agent, + com.google.cloud.securitycenter.v1.Agent.Builder, + com.google.cloud.securitycenter.v1.AgentOrBuilder> + agentBuilder_; + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + * + * @return Whether the agent field is set. + */ + public boolean hasAgent() { + return ((bitField1_ & 0x00100000) != 0); + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + * + * @return The agent. + */ + public com.google.cloud.securitycenter.v1.Agent getAgent() { + if (agentBuilder_ == null) { + return agent_ == null + ? com.google.cloud.securitycenter.v1.Agent.getDefaultInstance() + : agent_; + } else { + return agentBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + public Builder setAgent(com.google.cloud.securitycenter.v1.Agent value) { + if (agentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + agent_ = value; + } else { + agentBuilder_.setMessage(value); + } + bitField1_ |= 0x00100000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + public Builder setAgent(com.google.cloud.securitycenter.v1.Agent.Builder builderForValue) { + if (agentBuilder_ == null) { + agent_ = builderForValue.build(); + } else { + agentBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00100000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + public Builder mergeAgent(com.google.cloud.securitycenter.v1.Agent value) { + if (agentBuilder_ == null) { + if (((bitField1_ & 0x00100000) != 0) + && agent_ != null + && agent_ != com.google.cloud.securitycenter.v1.Agent.getDefaultInstance()) { + getAgentBuilder().mergeFrom(value); + } else { + agent_ = value; + } + } else { + agentBuilder_.mergeFrom(value); + } + if (agent_ != null) { + bitField1_ |= 0x00100000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + public Builder clearAgent() { + bitField1_ = (bitField1_ & ~0x00100000); + agent_ = null; + if (agentBuilder_ != null) { + agentBuilder_.dispose(); + agentBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + public com.google.cloud.securitycenter.v1.Agent.Builder getAgentBuilder() { + bitField1_ |= 0x00100000; + onChanged(); + return internalGetAgentFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + public com.google.cloud.securitycenter.v1.AgentOrBuilder getAgentOrBuilder() { + if (agentBuilder_ != null) { + return agentBuilder_.getMessageOrBuilder(); + } else { + return agent_ == null + ? com.google.cloud.securitycenter.v1.Agent.getDefaultInstance() + : agent_; + } + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v1.Agent, + com.google.cloud.securitycenter.v1.Agent.Builder, + com.google.cloud.securitycenter.v1.AgentOrBuilder> + internalGetAgentFieldBuilder() { + if (agentBuilder_ == null) { + agentBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v1.Agent, + com.google.cloud.securitycenter.v1.Agent.Builder, + com.google.cloud.securitycenter.v1.AgentOrBuilder>( + getAgent(), getParentForChildren(), isClean()); + agent_ = null; + } + return agentBuilder_; + } + + private java.util.List agentSessions_ = + java.util.Collections.emptyList(); + + private void ensureAgentSessionsIsMutable() { + if (!((bitField1_ & 0x00200000) != 0)) { + agentSessions_ = + new java.util.ArrayList( + agentSessions_); + bitField1_ |= 0x00200000; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.AgentSession, + com.google.cloud.securitycenter.v1.AgentSession.Builder, + com.google.cloud.securitycenter.v1.AgentSessionOrBuilder> + agentSessionsBuilder_; + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public java.util.List getAgentSessionsList() { + if (agentSessionsBuilder_ == null) { + return java.util.Collections.unmodifiableList(agentSessions_); + } else { + return agentSessionsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public int getAgentSessionsCount() { + if (agentSessionsBuilder_ == null) { + return agentSessions_.size(); + } else { + return agentSessionsBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public com.google.cloud.securitycenter.v1.AgentSession getAgentSessions(int index) { + if (agentSessionsBuilder_ == null) { + return agentSessions_.get(index); + } else { + return agentSessionsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder setAgentSessions( + int index, com.google.cloud.securitycenter.v1.AgentSession value) { + if (agentSessionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAgentSessionsIsMutable(); + agentSessions_.set(index, value); + onChanged(); + } else { + agentSessionsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder setAgentSessions( + int index, com.google.cloud.securitycenter.v1.AgentSession.Builder builderForValue) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.set(index, builderForValue.build()); + onChanged(); + } else { + agentSessionsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder addAgentSessions(com.google.cloud.securitycenter.v1.AgentSession value) { + if (agentSessionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAgentSessionsIsMutable(); + agentSessions_.add(value); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder addAgentSessions( + int index, com.google.cloud.securitycenter.v1.AgentSession value) { + if (agentSessionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAgentSessionsIsMutable(); + agentSessions_.add(index, value); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder addAgentSessions( + com.google.cloud.securitycenter.v1.AgentSession.Builder builderForValue) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.add(builderForValue.build()); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder addAgentSessions( + int index, com.google.cloud.securitycenter.v1.AgentSession.Builder builderForValue) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.add(index, builderForValue.build()); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder addAllAgentSessions( + java.lang.Iterable values) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, agentSessions_); + onChanged(); + } else { + agentSessionsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder clearAgentSessions() { + if (agentSessionsBuilder_ == null) { + agentSessions_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00200000); + onChanged(); + } else { + agentSessionsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public Builder removeAgentSessions(int index) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.remove(index); + onChanged(); + } else { + agentSessionsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public com.google.cloud.securitycenter.v1.AgentSession.Builder getAgentSessionsBuilder( + int index) { + return internalGetAgentSessionsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public com.google.cloud.securitycenter.v1.AgentSessionOrBuilder getAgentSessionsOrBuilder( + int index) { + if (agentSessionsBuilder_ == null) { + return agentSessions_.get(index); + } else { + return agentSessionsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public java.util.List + getAgentSessionsOrBuilderList() { + if (agentSessionsBuilder_ != null) { + return agentSessionsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(agentSessions_); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public com.google.cloud.securitycenter.v1.AgentSession.Builder addAgentSessionsBuilder() { + return internalGetAgentSessionsFieldBuilder() + .addBuilder(com.google.cloud.securitycenter.v1.AgentSession.getDefaultInstance()); + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public com.google.cloud.securitycenter.v1.AgentSession.Builder addAgentSessionsBuilder( + int index) { + return internalGetAgentSessionsFieldBuilder() + .addBuilder(index, com.google.cloud.securitycenter.v1.AgentSession.getDefaultInstance()); + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + public java.util.List + getAgentSessionsBuilderList() { + return internalGetAgentSessionsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.AgentSession, + com.google.cloud.securitycenter.v1.AgentSession.Builder, + com.google.cloud.securitycenter.v1.AgentSessionOrBuilder> + internalGetAgentSessionsFieldBuilder() { + if (agentSessionsBuilder_ == null) { + agentSessionsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v1.AgentSession, + com.google.cloud.securitycenter.v1.AgentSession.Builder, + com.google.cloud.securitycenter.v1.AgentSessionOrBuilder>( + agentSessions_, + ((bitField1_ & 0x00200000) != 0), + getParentForChildren(), + isClean()); + agentSessions_ = null; + } + return agentSessionsBuilder_; + } + + private com.google.cloud.securitycenter.v1.AgentAnomaly agentAnomaly_; + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v1.AgentAnomaly, + com.google.cloud.securitycenter.v1.AgentAnomaly.Builder, + com.google.cloud.securitycenter.v1.AgentAnomalyOrBuilder> + agentAnomalyBuilder_; + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + * + * @return Whether the agentAnomaly field is set. + */ + public boolean hasAgentAnomaly() { + return ((bitField1_ & 0x00400000) != 0); + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + * + * @return The agentAnomaly. + */ + public com.google.cloud.securitycenter.v1.AgentAnomaly getAgentAnomaly() { + if (agentAnomalyBuilder_ == null) { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v1.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } else { + return agentAnomalyBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + public Builder setAgentAnomaly(com.google.cloud.securitycenter.v1.AgentAnomaly value) { + if (agentAnomalyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + agentAnomaly_ = value; + } else { + agentAnomalyBuilder_.setMessage(value); + } + bitField1_ |= 0x00400000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + public Builder setAgentAnomaly( + com.google.cloud.securitycenter.v1.AgentAnomaly.Builder builderForValue) { + if (agentAnomalyBuilder_ == null) { + agentAnomaly_ = builderForValue.build(); + } else { + agentAnomalyBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00400000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + public Builder mergeAgentAnomaly(com.google.cloud.securitycenter.v1.AgentAnomaly value) { + if (agentAnomalyBuilder_ == null) { + if (((bitField1_ & 0x00400000) != 0) + && agentAnomaly_ != null + && agentAnomaly_ + != com.google.cloud.securitycenter.v1.AgentAnomaly.getDefaultInstance()) { + getAgentAnomalyBuilder().mergeFrom(value); + } else { + agentAnomaly_ = value; + } + } else { + agentAnomalyBuilder_.mergeFrom(value); + } + if (agentAnomaly_ != null) { + bitField1_ |= 0x00400000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + public Builder clearAgentAnomaly() { + bitField1_ = (bitField1_ & ~0x00400000); + agentAnomaly_ = null; + if (agentAnomalyBuilder_ != null) { + agentAnomalyBuilder_.dispose(); + agentAnomalyBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + public com.google.cloud.securitycenter.v1.AgentAnomaly.Builder getAgentAnomalyBuilder() { + bitField1_ |= 0x00400000; + onChanged(); + return internalGetAgentAnomalyFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + public com.google.cloud.securitycenter.v1.AgentAnomalyOrBuilder getAgentAnomalyOrBuilder() { + if (agentAnomalyBuilder_ != null) { + return agentAnomalyBuilder_.getMessageOrBuilder(); + } else { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v1.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v1.AgentAnomaly, + com.google.cloud.securitycenter.v1.AgentAnomaly.Builder, + com.google.cloud.securitycenter.v1.AgentAnomalyOrBuilder> + internalGetAgentAnomalyFieldBuilder() { + if (agentAnomalyBuilder_ == null) { + agentAnomalyBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v1.AgentAnomaly, + com.google.cloud.securitycenter.v1.AgentAnomaly.Builder, + com.google.cloud.securitycenter.v1.AgentAnomalyOrBuilder>( + getAgentAnomaly(), getParentForChildren(), isClean()); + agentAnomaly_ = null; + } + return agentAnomalyBuilder_; + } + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v1.Finding) } diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOrBuilder.java index 06751917dae1..22de203798ba 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOrBuilder.java +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOrBuilder.java @@ -2352,4 +2352,134 @@ com.google.cloud.securitycenter.v1.GroupMembershipOrBuilder getGroupMembershipsO * .google.cloud.securitycenter.v1.ExternalExposure external_exposure = 84; */ com.google.cloud.securitycenter.v1.ExternalExposureOrBuilder getExternalExposureOrBuilder(); + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + * + * @return Whether the agent field is set. + */ + boolean hasAgent(); + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + * + * @return The agent. + */ + com.google.cloud.securitycenter.v1.Agent getAgent(); + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v1.Agent agent = 88; + */ + com.google.cloud.securitycenter.v1.AgentOrBuilder getAgentOrBuilder(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + java.util.List getAgentSessionsList(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + com.google.cloud.securitycenter.v1.AgentSession getAgentSessions(int index); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + int getAgentSessionsCount(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + java.util.List + getAgentSessionsOrBuilderList(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v1.AgentSession agent_sessions = 89; + */ + com.google.cloud.securitycenter.v1.AgentSessionOrBuilder getAgentSessionsOrBuilder(int index); + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + * + * @return Whether the agentAnomaly field is set. + */ + boolean hasAgentAnomaly(); + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + * + * @return The agentAnomaly. + */ + com.google.cloud.securitycenter.v1.AgentAnomaly getAgentAnomaly(); + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v1.AgentAnomaly agent_anomaly = 90; + */ + com.google.cloud.securitycenter.v1.AgentAnomalyOrBuilder getAgentAnomalyOrBuilder(); } diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOuterClass.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOuterClass.java index 5d3e45626178..18bacb907ae0 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOuterClass.java +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/FindingOuterClass.java @@ -77,169 +77,172 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { static { java.lang.String[] descriptorData = { - "\n,google/cloud/securitycenter/v1/finding" + "\n" + + ",google/cloud/securitycenter/v1/finding" + ".proto\022\036google.cloud.securitycenter.v1\032\037" + "google/api/field_behavior.proto\032\031google/" - + "api/resource.proto\032+google/cloud/securit" - + "ycenter/v1/access.proto\0320google/cloud/se" - + "curitycenter/v1/application.proto\0324googl" - + "e/cloud/securitycenter/v1/attack_exposur" - + "e.proto\032=google/cloud/securitycenter/v1/" - + "backup_disaster_recovery.proto\032/google/c" - + "loud/securitycenter/v1/chokepoint.proto\032" - + "0google/cloud/securitycenter/v1/cloud_ar" - + "mor.proto\032;google/cloud/securitycenter/v" - + "1/cloud_dlp_data_profile.proto\0329google/c" - + "loud/securitycenter/v1/cloud_dlp_inspect" - + "ion.proto\032/google/cloud/securitycenter/v" - + "1/compliance.proto\032/google/cloud/securit" - + "ycenter/v1/connection.proto\0324google/clou" - + "d/securitycenter/v1/contact_details.prot" - + "o\032.google/cloud/securitycenter/v1/contai" - + "ner.proto\032-google/cloud/securitycenter/v" - + "1/database.proto\0321google/cloud/securityc" - + "enter/v1/exfiltration.proto\0326google/clou" - + "d/securitycenter/v1/external_exposure.pr" - + "oto\0324google/cloud/securitycenter/v1/exte" - + "rnal_system.proto\032)google/cloud/security" - + "center/v1/file.proto\0325google/cloud/secur" - + "itycenter/v1/group_membership.proto\0320goo" - + "gle/cloud/securitycenter/v1/iam_binding." - + "proto\032.google/cloud/securitycenter/v1/in" - + "dicator.proto\0323google/cloud/securitycent" - + "er/v1/kernel_rootkit.proto\032/google/cloud" - + "/securitycenter/v1/kubernetes.proto\0322goo" - + "gle/cloud/securitycenter/v1/load_balance" - + "r.proto\032.google/cloud/securitycenter/v1/" - + "log_entry.proto\0321google/cloud/securityce" - + "nter/v1/mitre_attack.proto\032-google/cloud" - + "/securitycenter/v1/notebook.proto\032/googl" - + "e/cloud/securitycenter/v1/org_policy.pro" - + "to\032,google/cloud/securitycenter/v1/proce" - + "ss.proto\0323google/cloud/securitycenter/v1" - + "/security_marks.proto\0325google/cloud/secu" - + "ritycenter/v1/security_posture.proto\0326go" - + "ogle/cloud/securitycenter/v1/toxic_combi" - + "nation.proto\0322google/cloud/securitycente" - + "r/v1/vulnerability.proto\032\034google/protobu" - + "f/struct.proto\032\037google/protobuf/timestam" - + "p.proto\"\330\"\n\007Finding\022\014\n\004name\030\001 \001(\t\022\016\n\006par" - + "ent\030\002 \001(\t\022\025\n\rresource_name\030\003 \001(\t\022<\n\005stat" - + "e\030\004 \001(\0162-.google.cloud.securitycenter.v1" - + ".Finding.State\022\020\n\010category\030\005 \001(\t\022\024\n\014exte" - + "rnal_uri\030\006 \001(\t\022X\n\021source_properties\030\007 \003(" - + "\0132=.google.cloud.securitycenter.v1.Findi" - + "ng.SourcePropertiesEntry\022J\n\016security_mar" - + "ks\030\010 \001(\0132-.google.cloud.securitycenter.v" - + "1.SecurityMarksB\003\340A\003\022.\n\nevent_time\030\t \001(\013" - + "2\032.google.protobuf.Timestamp\022/\n\013create_t" - + "ime\030\n \001(\0132\032.google.protobuf.Timestamp\022B\n" - + "\010severity\030\014 \001(\01620.google.cloud.securityc" - + "enter.v1.Finding.Severity\022\026\n\016canonical_n" - + "ame\030\016 \001(\t\022:\n\004mute\030\017 \001(\0162,.google.cloud.s" - + "ecuritycenter.v1.Finding.Mute\022K\n\rfinding" - + "_class\030\021 \001(\01624.google.cloud.securitycent" - + "er.v1.Finding.FindingClass\022<\n\tindicator\030" - + "\022 \001(\0132).google.cloud.securitycenter.v1.I" - + "ndicator\022D\n\rvulnerability\030\024 \001(\0132-.google" - + ".cloud.securitycenter.v1.Vulnerability\0229" - + "\n\020mute_update_time\030\025 \001(\0132\032.google.protob" - + "uf.TimestampB\003\340A\003\022[\n\020external_systems\030\026 " - + "\003(\0132<.google.cloud.securitycenter.v1.Fin" - + "ding.ExternalSystemsEntryB\003\340A\003\022A\n\014mitre_" - + "attack\030\031 \001(\0132+.google.cloud.securitycent" - + "er.v1.MitreAttack\0226\n\006access\030\032 \001(\0132&.goog" - + "le.cloud.securitycenter.v1.Access\022?\n\013con" - + "nections\030\037 \003(\0132*.google.cloud.securityce" - + "nter.v1.Connection\022\026\n\016mute_initiator\030\034 \001" - + "(\t\022H\n\tmute_info\030= \001(\01320.google.cloud.sec" - + "uritycenter.v1.Finding.MuteInfoB\003\340A\003\022:\n\t" - + "processes\030\036 \003(\0132\'.google.cloud.securityc" - + "enter.v1.Process\022L\n\010contacts\030! \003(\01325.goo" - + "gle.cloud.securitycenter.v1.Finding.Cont" - + "actsEntryB\003\340A\003\022?\n\013compliances\030\" \003(\0132*.go" - + "ogle.cloud.securitycenter.v1.Compliance\022" - + " \n\023parent_display_name\030$ \001(\tB\003\340A\003\022\023\n\013des" - + "cription\030% \001(\t\022B\n\014exfiltration\030& \001(\0132,.g" - + "oogle.cloud.securitycenter.v1.Exfiltrati" - + "on\022@\n\014iam_bindings\030\' \003(\0132*.google.cloud." - + "securitycenter.v1.IamBinding\022\022\n\nnext_ste" - + "ps\030( \001(\t\022\023\n\013module_name\030) \001(\t\022=\n\ncontain" - + "ers\030* \003(\0132).google.cloud.securitycenter." - + "v1.Container\022>\n\nkubernetes\030+ \001(\0132*.googl" - + "e.cloud.securitycenter.v1.Kubernetes\022:\n\010" - + "database\030, \001(\0132(.google.cloud.securityce" - + "nter.v1.Database\022G\n\017attack_exposure\030- \001(" - + "\0132..google.cloud.securitycenter.v1.Attac" - + "kExposure\0223\n\005files\030. \003(\0132$.google.cloud." - + "securitycenter.v1.File\022P\n\024cloud_dlp_insp" - + "ection\0300 \001(\01322.google.cloud.securitycent" - + "er.v1.CloudDlpInspection\022S\n\026cloud_dlp_da" - + "ta_profile\0301 \001(\01323.google.cloud.security" - + "center.v1.CloudDlpDataProfile\022E\n\016kernel_" - + "rootkit\0302 \001(\0132-.google.cloud.securitycen" - + "ter.v1.KernelRootkit\022?\n\014org_policies\0303 \003" - + "(\0132).google.cloud.securitycenter.v1.OrgP" - + "olicy\022@\n\013application\0305 \001(\0132+.google.clou" - + "d.securitycenter.v1.Application\022X\n\030backu" - + "p_disaster_recovery\0307 \001(\01326.google.cloud" - + ".securitycenter.v1.BackupDisasterRecover" - + "y\022I\n\020security_posture\0308 \001(\0132/.google.clo" - + "ud.securitycenter.v1.SecurityPosture\022=\n\013" - + "log_entries\0309 \003(\0132(.google.cloud.securit" - + "ycenter.v1.LogEntry\022D\n\016load_balancers\030: " - + "\003(\0132,.google.cloud.securitycenter.v1.Loa" - + "dBalancer\022?\n\013cloud_armor\030; \001(\0132*.google." - + "cloud.securitycenter.v1.CloudArmor\022:\n\010no" - + "tebook\030? \001(\0132(.google.cloud.securitycent" - + "er.v1.Notebook\022K\n\021toxic_combination\030@ \001(" - + "\01320.google.cloud.securitycenter.v1.Toxic" - + "Combination\022J\n\021group_memberships\030A \003(\0132/" - + ".google.cloud.securitycenter.v1.GroupMem" - + "bership\022>\n\nchokepoint\030M \001(\0132*.google.clo" - + "ud.securitycenter.v1.Chokepoint\022K\n\021exter" - + "nal_exposure\030T \001(\01320.google.cloud.securi" - + "tycenter.v1.ExternalExposure\032\223\003\n\010MuteInf" - + "o\022P\n\013static_mute\030\001 \001(\0132;.google.cloud.se" - + "curitycenter.v1.Finding.MuteInfo.StaticM" - + "ute\022`\n\024dynamic_mute_records\030\002 \003(\0132B.goog" - + "le.cloud.securitycenter.v1.Finding.MuteI" - + "nfo.DynamicMuteRecord\032y\n\nStaticMute\022;\n\005s" - + "tate\030\001 \001(\0162,.google.cloud.securitycenter" - + ".v1.Finding.Mute\022.\n\napply_time\030\002 \001(\0132\032.g" - + "oogle.protobuf.Timestamp\032X\n\021DynamicMuteR" - + "ecord\022\023\n\013mute_config\030\001 \001(\t\022.\n\nmatch_time" - + "\030\002 \001(\0132\032.google.protobuf.Timestamp\032O\n\025So" - + "urcePropertiesEntry\022\013\n\003key\030\001 \001(\t\022%\n\005valu" - + "e\030\002 \001(\0132\026.google.protobuf.Value:\0028\001\032f\n\024E" - + "xternalSystemsEntry\022\013\n\003key\030\001 \001(\t\022=\n\005valu" - + "e\030\002 \001(\0132..google.cloud.securitycenter.v1" - + ".ExternalSystem:\0028\001\032_\n\rContactsEntry\022\013\n\003" - + "key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..google.cloud." - + "securitycenter.v1.ContactDetails:\0028\001\"8\n\005" - + "State\022\025\n\021STATE_UNSPECIFIED\020\000\022\n\n\006ACTIVE\020\001" - + "\022\014\n\010INACTIVE\020\002\"Q\n\010Severity\022\030\n\024SEVERITY_U" - + "NSPECIFIED\020\000\022\014\n\010CRITICAL\020\001\022\010\n\004HIGH\020\002\022\n\n\006" - + "MEDIUM\020\003\022\007\n\003LOW\020\004\"C\n\004Mute\022\024\n\020MUTE_UNSPEC" - + "IFIED\020\000\022\t\n\005MUTED\020\001\022\013\n\007UNMUTED\020\002\022\r\n\tUNDEF" - + "INED\020\004\"\360\001\n\014FindingClass\022\035\n\031FINDING_CLASS" - + "_UNSPECIFIED\020\000\022\n\n\006THREAT\020\001\022\021\n\rVULNERABIL" - + "ITY\020\002\022\024\n\020MISCONFIGURATION\020\003\022\017\n\013OBSERVATI" - + "ON\020\004\022\r\n\tSCC_ERROR\020\005\022\025\n\021POSTURE_VIOLATION" - + "\020\006\022\025\n\021TOXIC_COMBINATION\020\007\022\027\n\023SENSITIVE_D" - + "ATA_RISK\020\010\022\016\n\nCHOKEPOINT\020\t\022\025\n\021EXTERNAL_E" - + "XPOSURE\020\n:\356\001\352A\352\001\n%securitycenter.googlea" - + "pis.com/Finding\022@organizations/{organiza" - + "tion}/sources/{source}/findings/{finding" - + "}\0224folders/{folder}/sources/{source}/fin" - + "dings/{finding}\0226projects/{project}/sour" - + "ces/{source}/findings/{finding}*\010finding" - + "s2\007findingB\330\001\n\"com.google.cloud.security" - + "center.v1P\001ZJcloud.google.com/go/securit" - + "ycenter/apiv1/securitycenterpb;securityc" - + "enterpb\252\002\036Google.Cloud.SecurityCenter.V1" - + "\312\002\036Google\\Cloud\\SecurityCenter\\V1\352\002!Goog" - + "le::Cloud::SecurityCenter::V1b\006proto3" + + "api/resource.proto\032+google/cloud/securitycenter/v1/access.proto\032*google/cloud/se" + + "curitycenter/v1/agent.proto\0322google/cloud/securitycenter/v1/agent_anomaly.proto\032" + + "2google/cloud/securitycenter/v1/agent_session.proto\0320google/cloud/securitycenter" + + "/v1/application.proto\0324google/cloud/securitycenter/v1/attack_exposure.proto\032=goo" + + "gle/cloud/securitycenter/v1/backup_disaster_recovery.proto\032/google/cloud/securit" + + "ycenter/v1/chokepoint.proto\0320google/cloud/securitycenter/v1/cloud_armor.proto\032;g" + + "oogle/cloud/securitycenter/v1/cloud_dlp_data_profile.proto\0329google/cloud/securit" + + "ycenter/v1/cloud_dlp_inspection.proto\032/google/cloud/securitycenter/v1/compliance" + + ".proto\032/google/cloud/securitycenter/v1/connection.proto\0324google/cloud/securityce" + + "nter/v1/contact_details.proto\032.google/cloud/securitycenter/v1/container.proto\032-g" + + "oogle/cloud/securitycenter/v1/database.proto\0321google/cloud/securitycenter/v1/exf" + + "iltration.proto\0326google/cloud/securitycenter/v1/external_exposure.proto\0324google/" + + "cloud/securitycenter/v1/external_system.proto\032)google/cloud/securitycenter/v1/fi" + + "le.proto\0325google/cloud/securitycenter/v1/group_membership.proto\0320google/cloud/se" + + "curitycenter/v1/iam_binding.proto\032.google/cloud/securitycenter/v1/indicator.prot" + + "o\0323google/cloud/securitycenter/v1/kernel_rootkit.proto\032/google/cloud/securitycen" + + "ter/v1/kubernetes.proto\0322google/cloud/securitycenter/v1/load_balancer.proto\032.goo" + + "gle/cloud/securitycenter/v1/log_entry.proto\0321google/cloud/securitycenter/v1/mitr" + + "e_attack.proto\032-google/cloud/securitycenter/v1/notebook.proto\032/google/cloud/secu" + + "ritycenter/v1/org_policy.proto\032,google/cloud/securitycenter/v1/process.proto\0323go" + + "ogle/cloud/securitycenter/v1/security_marks.proto\0325google/cloud/securitycenter/v" + + "1/security_posture.proto\0326google/cloud/securitycenter/v1/toxic_combination.proto" + + "\0322google/cloud/securitycenter/v1/vulnera" + + "bility.proto\032\034google/protobuf/struct.proto\032\037google/protobuf/timestamp.proto\"\231$\n" + + "\007Finding\022\014\n" + + "\004name\030\001 \001(\t\022\016\n" + + "\006parent\030\002 \001(\t\022\025\n" + + "\r" + + "resource_name\030\003 \001(\t\022<\n" + + "\005state\030\004 \001(\0162-.google.cloud.securitycenter.v1.Finding.State\022\020\n" + + "\010category\030\005 \001(\t\022\024\n" + + "\014external_uri\030\006 \001(\t\022X\n" + + "\021source_properties\030\007 \003(\0132=.google.c" + + "loud.securitycenter.v1.Finding.SourcePropertiesEntry\022J\n" + + "\016security_marks\030\010 \001(\0132-.g" + + "oogle.cloud.securitycenter.v1.SecurityMarksB\003\340A\003\022.\n\n" + + "event_time\030\t \001(\0132\032.google.protobuf.Timestamp\022/\n" + + "\013create_time\030\n" + + " \001(\0132\032.google.protobuf.Timestamp\022B\n" + + "\010severity\030\014 " + + "\001(\01620.google.cloud.securitycenter.v1.Finding.Severity\022\026\n" + + "\016canonical_name\030\016 \001(\t\022:\n" + + "\004mute\030\017 \001(\0162,.google.cloud.securitycenter.v1.Finding.Mute\022K\n\r" + + "finding_class\030\021 \001(\016" + + "24.google.cloud.securitycenter.v1.Finding.FindingClass\022<\n" + + "\tindicator\030\022 \001(\0132).google.cloud.securitycenter.v1.Indicator\022D\n\r" + + "vulnerability\030\024 \001(\0132-.google.cloud.securitycenter.v1.Vulnerability\0229\n" + + "\020mute_update_time\030\025" + + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022[\n" + + "\020external_systems\030\026 \003(\0132<.google" + + ".cloud.securitycenter.v1.Finding.ExternalSystemsEntryB\003\340A\003\022A\n" + + "\014mitre_attack\030\031 \001(\0132+.google.cloud.securitycenter.v1.MitreAttack\0226\n" + + "\006access\030\032 \001(\0132&.google.cloud.securitycenter.v1.Access\022?\n" + + "\013connections\030\037 \003" + + "(\0132*.google.cloud.securitycenter.v1.Connection\022\026\n" + + "\016mute_initiator\030\034 \001(\t\022H\n" + + "\tmute_info\030=" + + " \001(\01320.google.cloud.securitycenter.v1.Finding.MuteInfoB\003\340A\003\022:\n" + + "\tprocesses\030\036 \003(\0132\'.google.cloud.securitycenter.v1.Process\022L\n" + + "\010contacts\030! \003(\01325.google.cloud.se" + + "curitycenter.v1.Finding.ContactsEntryB\003\340A\003\022?\n" + + "\013compliances\030\" \003(\0132*.google.cloud.securitycenter.v1.Compliance\022 \n" + + "\023parent_display_name\030$ \001(\tB\003\340A\003\022\023\n" + + "\013description\030% \001(\t\022B\n" + + "\014exfiltration\030& \001(\0132,.google.cloud.securitycenter.v1.Exfiltration\022@\n" + + "\014iam_bindings\030\'" + + " \003(\0132*.google.cloud.securitycenter.v1.IamBinding\022\022\n\n" + + "next_steps\030( \001(\t\022\023\n" + + "\013module_name\030) \001(\t\022=\n\n" + + "containers\030* \003(\0132).google.cloud.securitycenter.v1.Container\022>\n\n" + + "kubernetes\030+ \001(\0132*.google.cloud.securitycenter.v1.Kubernetes\022:\n" + + "\010database\030, \001(\0132(.google.cloud.securitycenter.v1.Database\022G\n" + + "\017attack_exposure\030-" + + " \001(\0132..google.cloud.securitycenter.v1.AttackExposure\0223\n" + + "\005files\030. \003(\0132$.google.cloud.securitycenter.v1.File\022P\n" + + "\024cloud_dlp_inspection\0300 \001(\013" + + "22.google.cloud.securitycenter.v1.CloudDlpInspection\022S\n" + + "\026cloud_dlp_data_profile\0301" + + " \001(\01323.google.cloud.securitycenter.v1.CloudDlpDataProfile\022E\n" + + "\016kernel_rootkit\0302 \001(" + + "\0132-.google.cloud.securitycenter.v1.KernelRootkit\022?\n" + + "\014org_policies\0303 \003(\0132).google.cloud.securitycenter.v1.OrgPolicy\022@\n" + + "\013application\0305 \001(\0132+.google.cloud.securitycenter.v1.Application\022X\n" + + "\030backup_disaster_recovery\0307" + + " \001(\01326.google.cloud.securitycenter.v1.BackupDisasterRecovery\022I\n" + + "\020security_posture\0308" + + " \001(\0132/.google.cloud.securitycenter.v1.SecurityPosture\022=\n" + + "\013log_entries\0309 \003(\0132(.google.cloud.securitycenter.v1.LogEntry\022D\n" + + "\016load_balancers\030: \003(\0132,.google.cloud.securitycenter.v1.LoadBalancer\022?\n" + + "\013cloud_armor\030; \001(\0132*.google.cloud.securitycenter.v1.CloudArmor\022:\n" + + "\010notebook\030? \001(\0132(.google.cloud.securitycenter.v1.Notebook\022K\n" + + "\021toxic_combination\030@ \001(\01320.google.c" + + "loud.securitycenter.v1.ToxicCombination\022J\n" + + "\021group_memberships\030A" + + " \003(\0132/.google.cloud.securitycenter.v1.GroupMembership\022>\n\n" + + "chokepoint\030M \001(\0132*.google.cloud.securitycenter.v1.Chokepoint\022K\n" + + "\021external_exposure\030T" + + " \001(\01320.google.cloud.securitycenter.v1.ExternalExposure\0224\n" + + "\005agent\030X \001(\0132%.google.cloud.securitycenter.v1.Agent\022D\n" + + "\016agent_sessions\030Y" + + " \003(\0132,.google.cloud.securitycenter.v1.AgentSession\022C\n\r" + + "agent_anomaly\030Z " + + "\001(\0132,.google.cloud.securitycenter.v1.AgentAnomaly\032\223\003\n" + + "\010MuteInfo\022P\n" + + "\013static_mute\030\001 " + + "\001(\0132;.google.cloud.securitycenter.v1.Finding.MuteInfo.StaticMute\022`\n" + + "\024dynamic_mute_records\030\002 \003(\0132B.google.cloud.securityce" + + "nter.v1.Finding.MuteInfo.DynamicMuteRecord\032y\n\n" + + "StaticMute\022;\n" + + "\005state\030\001 \001(\0162,.google.cloud.securitycenter.v1.Finding.Mute\022.\n" + + "\n" + + "apply_time\030\002 \001(\0132\032.google.protobuf.Timestamp\032X\n" + + "\021DynamicMuteRecord\022\023\n" + + "\013mute_config\030\001 \001(\t\022.\n\n" + + "match_time\030\002 \001(\0132\032.google.protobuf.Timestamp\032O\n" + + "\025SourcePropertiesEntry\022\013\n" + + "\003key\030\001 \001(\t\022%\n" + + "\005value\030\002 \001(\0132\026.google.protobuf.Value:\0028\001\032f\n" + + "\024ExternalSystemsEntry\022\013\n" + + "\003key\030\001 \001(\t\022=\n" + + "\005value\030\002 \001(\0132..google.cl" + + "oud.securitycenter.v1.ExternalSystem:\0028\001\032_\n\r" + + "ContactsEntry\022\013\n" + + "\003key\030\001 \001(\t\022=\n" + + "\005value\030\002" + + " \001(\0132..google.cloud.securitycenter.v1.ContactDetails:\0028\001\"8\n" + + "\005State\022\025\n" + + "\021STATE_UNSPECIFIED\020\000\022\n\n" + + "\006ACTIVE\020\001\022\014\n" + + "\010INACTIVE\020\002\"Q\n" + + "\010Severity\022\030\n" + + "\024SEVERITY_UNSPECIFIED\020\000\022\014\n" + + "\010CRITICAL\020\001\022\010\n" + + "\004HIGH\020\002\022\n\n" + + "\006MEDIUM\020\003\022\007\n" + + "\003LOW\020\004\"C\n" + + "\004Mute\022\024\n" + + "\020MUTE_UNSPECIFIED\020\000\022\t\n" + + "\005MUTED\020\001\022\013\n" + + "\007UNMUTED\020\002\022\r\n" + + "\tUNDEFINED\020\004\"\360\001\n" + + "\014FindingClass\022\035\n" + + "\031FINDING_CLASS_UNSPECIFIED\020\000\022\n\n" + + "\006THREAT\020\001\022\021\n\r" + + "VULNERABILITY\020\002\022\024\n" + + "\020MISCONFIGURATION\020\003\022\017\n" + + "\013OBSERVATION\020\004\022\r\n" + + "\tSCC_ERROR\020\005\022\025\n" + + "\021POSTURE_VIOLATION\020\006\022\025\n" + + "\021TOXIC_COMBINATION\020\007\022\027\n" + + "\023SENSITIVE_DATA_RISK\020\010\022\016\n\n" + + "CHOKEPOINT\020\t\022\025\n" + + "\021EXTERNAL_EXPOSURE\020\n" + + ":\356\001\352A\352\001\n" + + "%securitycenter.googleapis.com/Finding\022@organizations/{organization}/sources/{sour" + + "ce}/findings/{finding}\0224folders/{folder}/sources/{source}/findings/{finding}\0226pr" + + "ojects/{project}/sources/{source}/findings/{finding}*\010findings2\007findingB\330\001\n" + + "\"com.google.cloud.securitycenter.v1P\001ZJcloud." + + "google.com/go/securitycenter/apiv1/secur" + + "itycenterpb;securitycenterpb\252\002\036Google.Cl" + + "oud.SecurityCenter.V1\312\002\036Google\\Cloud\\Sec" + + "urityCenter\\V1\352\002!Google::Cloud::SecurityCenter::V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -248,6 +251,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { com.google.api.FieldBehaviorProto.getDescriptor(), com.google.api.ResourceProto.getDescriptor(), com.google.cloud.securitycenter.v1.AccessProto.getDescriptor(), + com.google.cloud.securitycenter.v1.AgentProto.getDescriptor(), + com.google.cloud.securitycenter.v1.AgentAnomalyProto.getDescriptor(), + com.google.cloud.securitycenter.v1.AgentSessionProto.getDescriptor(), com.google.cloud.securitycenter.v1.ApplicationProto.getDescriptor(), com.google.cloud.securitycenter.v1.AttackExposureProto.getDescriptor(), com.google.cloud.securitycenter.v1.BackupDisasterRecoveryProto.getDescriptor(), @@ -340,6 +346,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "GroupMemberships", "Chokepoint", "ExternalExposure", + "Agent", + "AgentSessions", + "AgentAnomaly", }); internal_static_google_cloud_securitycenter_v1_Finding_MuteInfo_descriptor = internal_static_google_cloud_securitycenter_v1_Finding_descriptor.getNestedType(0); @@ -393,6 +402,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { com.google.api.FieldBehaviorProto.getDescriptor(); com.google.api.ResourceProto.getDescriptor(); com.google.cloud.securitycenter.v1.AccessProto.getDescriptor(); + com.google.cloud.securitycenter.v1.AgentProto.getDescriptor(); + com.google.cloud.securitycenter.v1.AgentAnomalyProto.getDescriptor(); + com.google.cloud.securitycenter.v1.AgentSessionProto.getDescriptor(); com.google.cloud.securitycenter.v1.ApplicationProto.getDescriptor(); com.google.cloud.securitycenter.v1.AttackExposureProto.getDescriptor(); com.google.cloud.securitycenter.v1.BackupDisasterRecoveryProto.getDescriptor(); diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/InvocationReference.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/InvocationReference.java new file mode 100644 index 000000000000..dd2724f7470e --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/InvocationReference.java @@ -0,0 +1,597 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +/** + * + * + *
+ * Represents a reference to a specific OpenTelemetry invocation.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.InvocationReference} + */ +@com.google.protobuf.Generated +public final class InvocationReference extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v1.InvocationReference) + InvocationReferenceOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "InvocationReference"); + } + + // Use InvocationReference.newBuilder() to construct. + private InvocationReference(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private InvocationReference() { + invocationId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_InvocationReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_InvocationReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.InvocationReference.class, + com.google.cloud.securitycenter.v1.InvocationReference.Builder.class); + } + + public static final int INVOCATION_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object invocationId_ = ""; + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The invocationId. + */ + @java.lang.Override + public java.lang.String getInvocationId() { + java.lang.Object ref = invocationId_; + 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(); + invocationId_ = s; + return s; + } + } + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The bytes for invocationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInvocationIdBytes() { + java.lang.Object ref = invocationId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + invocationId_ = 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.GeneratedMessage.isStringEmpty(invocationId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, invocationId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(invocationId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, invocationId_); + } + 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.cloud.securitycenter.v1.InvocationReference)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v1.InvocationReference other = + (com.google.cloud.securitycenter.v1.InvocationReference) obj; + + if (!getInvocationId().equals(other.getInvocationId())) 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) + INVOCATION_ID_FIELD_NUMBER; + hash = (53 * hash) + getInvocationId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.cloud.securitycenter.v1.InvocationReference 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a reference to a specific OpenTelemetry invocation.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v1.InvocationReference} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v1.InvocationReference) + com.google.cloud.securitycenter.v1.InvocationReferenceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_InvocationReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_InvocationReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v1.InvocationReference.class, + com.google.cloud.securitycenter.v1.InvocationReference.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v1.InvocationReference.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + invocationId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v1.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v1_InvocationReference_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.InvocationReference getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v1.InvocationReference.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.InvocationReference build() { + com.google.cloud.securitycenter.v1.InvocationReference result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v1.InvocationReference buildPartial() { + com.google.cloud.securitycenter.v1.InvocationReference result = + new com.google.cloud.securitycenter.v1.InvocationReference(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v1.InvocationReference result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.invocationId_ = invocationId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v1.InvocationReference) { + return mergeFrom((com.google.cloud.securitycenter.v1.InvocationReference) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v1.InvocationReference other) { + if (other == com.google.cloud.securitycenter.v1.InvocationReference.getDefaultInstance()) + return this; + if (!other.getInvocationId().isEmpty()) { + invocationId_ = other.invocationId_; + bitField0_ |= 0x00000001; + 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: + { + invocationId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + 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 invocationId_ = ""; + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @return The invocationId. + */ + public java.lang.String getInvocationId() { + java.lang.Object ref = invocationId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + invocationId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @return The bytes for invocationId. + */ + public com.google.protobuf.ByteString getInvocationIdBytes() { + java.lang.Object ref = invocationId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + invocationId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @param value The invocationId to set. + * @return This builder for chaining. + */ + public Builder setInvocationId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + invocationId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearInvocationId() { + invocationId_ = getDefaultInstance().getInvocationId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @param value The bytes for invocationId to set. + * @return This builder for chaining. + */ + public Builder setInvocationIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + invocationId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v1.InvocationReference) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v1.InvocationReference) + private static final com.google.cloud.securitycenter.v1.InvocationReference DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v1.InvocationReference(); + } + + public static com.google.cloud.securitycenter.v1.InvocationReference getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public InvocationReference 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.cloud.securitycenter.v1.InvocationReference getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/InvocationReferenceOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/InvocationReferenceOrBuilder.java new file mode 100644 index 000000000000..203124a1b186 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/java/com/google/cloud/securitycenter/v1/InvocationReferenceOrBuilder.java @@ -0,0 +1,54 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v1/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v1; + +@com.google.protobuf.Generated +public interface InvocationReferenceOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v1.InvocationReference) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The invocationId. + */ + java.lang.String getInvocationId(); + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The bytes for invocationId. + */ + com.google.protobuf.ByteString getInvocationIdBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent.proto b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent.proto new file mode 100644 index 000000000000..e1071aa708ec --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent.proto @@ -0,0 +1,35 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AgentProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents a monitored AI Agent. +message Agent { + // Identifier of the agent. + string id = 1; + + // The user friendly name of the specific agent instance where the finding was + // detected, for example, "Banking Agent". + string display_name = 2; +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent_anomaly.proto b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent_anomaly.proto new file mode 100644 index 000000000000..90001cba95e7 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent_anomaly.proto @@ -0,0 +1,88 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AgentAnomalyProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents details about an anomaly detected in an AI agent's behavior. +message AgentAnomaly { + // The overall confidence score indicating the likelihood that this session + // contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0 + // signifies 100% confidence in the presence of an anomaly and 0.0 signifies + // 0% confidence. + double confidence_score = 1; + + // The list of references to specific detectors that identified anomalies + // within this session. + repeated DetectorReference detector_references = 2; + + // References to the OpenTelemetry invocations. + repeated InvocationReference invocation_references = 3; +} + +// Represents a reference to a specific anomaly detector. +message DetectorReference { + // Severity levels for detectors. + enum Severity { + // Unspecified severity. + SEVERITY_UNSPECIFIED = 0; + + // Critical severity. + CRITICAL = 1; + + // High severity. + HIGH = 2; + + // Medium severity. + MEDIUM = 3; + + // Low severity. + LOW = 4; + } + + // The severity of the detector. + Severity severity = 1; + + // The unique identifier of the detector. + string detector_id = 2; + + // A human readable name for the detector, providing context on its purpose. + // For example, "ASI02: Tool Misuse", or "Excessive API Calls". + string display_name = 3; + + // A detailed explanation generated by an LLM or the detector itself, + // describing why this specific anomaly was flagged. This provides rationale + // and context for the detection. + string explanation = 4; + + // Recommended steps or actions to remediate or investigate the anomaly + // flagged by this detector. These could include configuration changes, code + // adjustments, or further diagnostic procedures. + string recommendation = 5; +} + +// Represents a reference to a specific OpenTelemetry invocation. +message InvocationReference { + // The unique identifier of the invocation. + string invocation_id = 1; +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent_session.proto b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent_session.proto new file mode 100644 index 000000000000..56e2051db1b3 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/agent_session.proto @@ -0,0 +1,31 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v1; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V1"; +option go_package = "cloud.google.com/go/securitycenter/apiv1/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AgentSessionProto"; +option java_package = "com.google.cloud.securitycenter.v1"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V1"; +option ruby_package = "Google::Cloud::SecurityCenter::V1"; + +// Represents a conversational session where the finding occurred. +message AgentSession { + // The session ID of a conversation. + string session_id = 1; +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/finding.proto b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/finding.proto index dd7a7e1a05c0..84f6e23cd33d 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/finding.proto +++ b/java-securitycenter/proto-google-cloud-securitycenter-v1/src/main/proto/google/cloud/securitycenter/v1/finding.proto @@ -19,6 +19,9 @@ package google.cloud.securitycenter.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/securitycenter/v1/access.proto"; +import "google/cloud/securitycenter/v1/agent.proto"; +import "google/cloud/securitycenter/v1/agent_anomaly.proto"; +import "google/cloud/securitycenter/v1/agent_session.proto"; import "google/cloud/securitycenter/v1/application.proto"; import "google/cloud/securitycenter/v1/attack_exposure.proto"; import "google/cloud/securitycenter/v1/backup_disaster_recovery.proto"; @@ -482,4 +485,13 @@ message Finding { // External exposure associated with the finding. ExternalExposure external_exposure = 84; + + // Primary Agent that the specified finding was flagged for + Agent agent = 88; + + // Conversational session(s) where the finding occurred. + repeated AgentSession agent_sessions = 89; + + // Details about behavior anomalies detected in AI agents. + AgentAnomaly agent_anomaly = 90; } diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/Agent.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/Agent.java new file mode 100644 index 000000000000..69a35e31dc53 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/Agent.java @@ -0,0 +1,790 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +/** + * + * + *
+ * Represents a monitored AI Agent.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.Agent} + */ +@com.google.protobuf.Generated +public final class Agent extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v2.Agent) + AgentOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Agent"); + } + + // Use Agent.newBuilder() to construct. + private Agent(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private Agent() { + id_ = ""; + displayName_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentProto + .internal_static_google_cloud_securitycenter_v2_Agent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentProto + .internal_static_google_cloud_securitycenter_v2_Agent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.Agent.class, + com.google.cloud.securitycenter.v2.Agent.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * 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; + } + } + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * 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 DISPLAY_NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object displayName_ = ""; + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The displayName. + */ + @java.lang.Override + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + 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(); + displayName_ = s; + return s; + } + } + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The bytes for displayName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = 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.GeneratedMessage.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, id_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, displayName_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, id_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, displayName_); + } + 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.cloud.securitycenter.v2.Agent)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v2.Agent other = (com.google.cloud.securitycenter.v2.Agent) obj; + + if (!getId().equals(other.getId())) return false; + if (!getDisplayName().equals(other.getDisplayName())) 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) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER; + hash = (53 * hash) + getDisplayName().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.Agent parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.Agent parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.Agent parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v2.Agent 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a monitored AI Agent.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.Agent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v2.Agent) + com.google.cloud.securitycenter.v2.AgentOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentProto + .internal_static_google_cloud_securitycenter_v2_Agent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentProto + .internal_static_google_cloud_securitycenter_v2_Agent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.Agent.class, + com.google.cloud.securitycenter.v2.Agent.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v2.Agent.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + displayName_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v2.AgentProto + .internal_static_google_cloud_securitycenter_v2_Agent_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.Agent getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v2.Agent.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.Agent build() { + com.google.cloud.securitycenter.v2.Agent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.Agent buildPartial() { + com.google.cloud.securitycenter.v2.Agent result = + new com.google.cloud.securitycenter.v2.Agent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v2.Agent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.displayName_ = displayName_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v2.Agent) { + return mergeFrom((com.google.cloud.securitycenter.v2.Agent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v2.Agent other) { + if (other == com.google.cloud.securitycenter.v2.Agent.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDisplayName().isEmpty()) { + displayName_ = other.displayName_; + 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: + { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + displayName_ = 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 id_ = ""; + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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; + } + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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; + } + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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; + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * string id = 1; + * + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Identifier of the agent.
+     * 
+ * + * 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 displayName_ = ""; + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @return The displayName. + */ + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @return The bytes for displayName. + */ + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @param value The displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + displayName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @return This builder for chaining. + */ + public Builder clearDisplayName() { + displayName_ = getDefaultInstance().getDisplayName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * The user friendly name of the specific agent instance where the finding was
+     * detected, for example, "Banking Agent".
+     * 
+ * + * string display_name = 2; + * + * @param value The bytes for displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + displayName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v2.Agent) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v2.Agent) + private static final com.google.cloud.securitycenter.v2.Agent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v2.Agent(); + } + + public static com.google.cloud.securitycenter.v2.Agent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Agent 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.cloud.securitycenter.v2.Agent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomaly.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomaly.java new file mode 100644 index 000000000000..0ebd60dfb8f5 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomaly.java @@ -0,0 +1,1655 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +/** + * + * + *
+ * Represents details about an anomaly detected in an AI agent's behavior.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.AgentAnomaly} + */ +@com.google.protobuf.Generated +public final class AgentAnomaly extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v2.AgentAnomaly) + AgentAnomalyOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentAnomaly"); + } + + // Use AgentAnomaly.newBuilder() to construct. + private AgentAnomaly(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private AgentAnomaly() { + detectorReferences_ = java.util.Collections.emptyList(); + invocationReferences_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_AgentAnomaly_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_AgentAnomaly_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.AgentAnomaly.class, + com.google.cloud.securitycenter.v2.AgentAnomaly.Builder.class); + } + + public static final int CONFIDENCE_SCORE_FIELD_NUMBER = 1; + private double confidenceScore_ = 0D; + + /** + * + * + *
+   * The overall confidence score indicating the likelihood that this session
+   * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+   * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+   * 0% confidence.
+   * 
+ * + * double confidence_score = 1; + * + * @return The confidenceScore. + */ + @java.lang.Override + public double getConfidenceScore() { + return confidenceScore_; + } + + public static final int DETECTOR_REFERENCES_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private java.util.List detectorReferences_; + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public java.util.List + getDetectorReferencesList() { + return detectorReferences_; + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public java.util.List + getDetectorReferencesOrBuilderList() { + return detectorReferences_; + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public int getDetectorReferencesCount() { + return detectorReferences_.size(); + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.DetectorReference getDetectorReferences(int index) { + return detectorReferences_.get(index); + } + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.DetectorReferenceOrBuilder + getDetectorReferencesOrBuilder(int index) { + return detectorReferences_.get(index); + } + + public static final int INVOCATION_REFERENCES_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private java.util.List + invocationReferences_; + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public java.util.List + getInvocationReferencesList() { + return invocationReferences_; + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public java.util.List + getInvocationReferencesOrBuilderList() { + return invocationReferences_; + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public int getInvocationReferencesCount() { + return invocationReferences_.size(); + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.InvocationReference getInvocationReferences(int index) { + return invocationReferences_.get(index); + } + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.InvocationReferenceOrBuilder + getInvocationReferencesOrBuilder(int index) { + return invocationReferences_.get(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 (java.lang.Double.doubleToRawLongBits(confidenceScore_) != 0) { + output.writeDouble(1, confidenceScore_); + } + for (int i = 0; i < detectorReferences_.size(); i++) { + output.writeMessage(2, detectorReferences_.get(i)); + } + for (int i = 0; i < invocationReferences_.size(); i++) { + output.writeMessage(3, invocationReferences_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (java.lang.Double.doubleToRawLongBits(confidenceScore_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, confidenceScore_); + } + for (int i = 0; i < detectorReferences_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(2, detectorReferences_.get(i)); + } + for (int i = 0; i < invocationReferences_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(3, invocationReferences_.get(i)); + } + 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.cloud.securitycenter.v2.AgentAnomaly)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v2.AgentAnomaly other = + (com.google.cloud.securitycenter.v2.AgentAnomaly) obj; + + if (java.lang.Double.doubleToLongBits(getConfidenceScore()) + != java.lang.Double.doubleToLongBits(other.getConfidenceScore())) return false; + if (!getDetectorReferencesList().equals(other.getDetectorReferencesList())) return false; + if (!getInvocationReferencesList().equals(other.getInvocationReferencesList())) 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) + CONFIDENCE_SCORE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getConfidenceScore())); + if (getDetectorReferencesCount() > 0) { + hash = (37 * hash) + DETECTOR_REFERENCES_FIELD_NUMBER; + hash = (53 * hash) + getDetectorReferencesList().hashCode(); + } + if (getInvocationReferencesCount() > 0) { + hash = (37 * hash) + INVOCATION_REFERENCES_FIELD_NUMBER; + hash = (53 * hash) + getInvocationReferencesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v2.AgentAnomaly 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents details about an anomaly detected in an AI agent's behavior.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.AgentAnomaly} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v2.AgentAnomaly) + com.google.cloud.securitycenter.v2.AgentAnomalyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_AgentAnomaly_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_AgentAnomaly_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.AgentAnomaly.class, + com.google.cloud.securitycenter.v2.AgentAnomaly.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v2.AgentAnomaly.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + confidenceScore_ = 0D; + if (detectorReferencesBuilder_ == null) { + detectorReferences_ = java.util.Collections.emptyList(); + } else { + detectorReferences_ = null; + detectorReferencesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + if (invocationReferencesBuilder_ == null) { + invocationReferences_ = java.util.Collections.emptyList(); + } else { + invocationReferences_ = null; + invocationReferencesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_AgentAnomaly_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentAnomaly getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v2.AgentAnomaly.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentAnomaly build() { + com.google.cloud.securitycenter.v2.AgentAnomaly result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentAnomaly buildPartial() { + com.google.cloud.securitycenter.v2.AgentAnomaly result = + new com.google.cloud.securitycenter.v2.AgentAnomaly(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.cloud.securitycenter.v2.AgentAnomaly result) { + if (detectorReferencesBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + detectorReferences_ = java.util.Collections.unmodifiableList(detectorReferences_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.detectorReferences_ = detectorReferences_; + } else { + result.detectorReferences_ = detectorReferencesBuilder_.build(); + } + if (invocationReferencesBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + invocationReferences_ = java.util.Collections.unmodifiableList(invocationReferences_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.invocationReferences_ = invocationReferences_; + } else { + result.invocationReferences_ = invocationReferencesBuilder_.build(); + } + } + + private void buildPartial0(com.google.cloud.securitycenter.v2.AgentAnomaly result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.confidenceScore_ = confidenceScore_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v2.AgentAnomaly) { + return mergeFrom((com.google.cloud.securitycenter.v2.AgentAnomaly) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v2.AgentAnomaly other) { + if (other == com.google.cloud.securitycenter.v2.AgentAnomaly.getDefaultInstance()) + return this; + if (java.lang.Double.doubleToRawLongBits(other.getConfidenceScore()) != 0) { + setConfidenceScore(other.getConfidenceScore()); + } + if (detectorReferencesBuilder_ == null) { + if (!other.detectorReferences_.isEmpty()) { + if (detectorReferences_.isEmpty()) { + detectorReferences_ = other.detectorReferences_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureDetectorReferencesIsMutable(); + detectorReferences_.addAll(other.detectorReferences_); + } + onChanged(); + } + } else { + if (!other.detectorReferences_.isEmpty()) { + if (detectorReferencesBuilder_.isEmpty()) { + detectorReferencesBuilder_.dispose(); + detectorReferencesBuilder_ = null; + detectorReferences_ = other.detectorReferences_; + bitField0_ = (bitField0_ & ~0x00000002); + detectorReferencesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetDetectorReferencesFieldBuilder() + : null; + } else { + detectorReferencesBuilder_.addAllMessages(other.detectorReferences_); + } + } + } + if (invocationReferencesBuilder_ == null) { + if (!other.invocationReferences_.isEmpty()) { + if (invocationReferences_.isEmpty()) { + invocationReferences_ = other.invocationReferences_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureInvocationReferencesIsMutable(); + invocationReferences_.addAll(other.invocationReferences_); + } + onChanged(); + } + } else { + if (!other.invocationReferences_.isEmpty()) { + if (invocationReferencesBuilder_.isEmpty()) { + invocationReferencesBuilder_.dispose(); + invocationReferencesBuilder_ = null; + invocationReferences_ = other.invocationReferences_; + bitField0_ = (bitField0_ & ~0x00000004); + invocationReferencesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetInvocationReferencesFieldBuilder() + : null; + } else { + invocationReferencesBuilder_.addAllMessages(other.invocationReferences_); + } + } + } + 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 9: + { + confidenceScore_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } // case 9 + case 18: + { + com.google.cloud.securitycenter.v2.DetectorReference m = + input.readMessage( + com.google.cloud.securitycenter.v2.DetectorReference.parser(), + extensionRegistry); + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(m); + } else { + detectorReferencesBuilder_.addMessage(m); + } + break; + } // case 18 + case 26: + { + com.google.cloud.securitycenter.v2.InvocationReference m = + input.readMessage( + com.google.cloud.securitycenter.v2.InvocationReference.parser(), + extensionRegistry); + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(m); + } else { + invocationReferencesBuilder_.addMessage(m); + } + 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 double confidenceScore_; + + /** + * + * + *
+     * The overall confidence score indicating the likelihood that this session
+     * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+     * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+     * 0% confidence.
+     * 
+ * + * double confidence_score = 1; + * + * @return The confidenceScore. + */ + @java.lang.Override + public double getConfidenceScore() { + return confidenceScore_; + } + + /** + * + * + *
+     * The overall confidence score indicating the likelihood that this session
+     * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+     * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+     * 0% confidence.
+     * 
+ * + * double confidence_score = 1; + * + * @param value The confidenceScore to set. + * @return This builder for chaining. + */ + public Builder setConfidenceScore(double value) { + + confidenceScore_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The overall confidence score indicating the likelihood that this session
+     * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+     * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+     * 0% confidence.
+     * 
+ * + * double confidence_score = 1; + * + * @return This builder for chaining. + */ + public Builder clearConfidenceScore() { + bitField0_ = (bitField0_ & ~0x00000001); + confidenceScore_ = 0D; + onChanged(); + return this; + } + + private java.util.List + detectorReferences_ = java.util.Collections.emptyList(); + + private void ensureDetectorReferencesIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + detectorReferences_ = + new java.util.ArrayList( + detectorReferences_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.DetectorReference, + com.google.cloud.securitycenter.v2.DetectorReference.Builder, + com.google.cloud.securitycenter.v2.DetectorReferenceOrBuilder> + detectorReferencesBuilder_; + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public java.util.List + getDetectorReferencesList() { + if (detectorReferencesBuilder_ == null) { + return java.util.Collections.unmodifiableList(detectorReferences_); + } else { + return detectorReferencesBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public int getDetectorReferencesCount() { + if (detectorReferencesBuilder_ == null) { + return detectorReferences_.size(); + } else { + return detectorReferencesBuilder_.getCount(); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v2.DetectorReference getDetectorReferences(int index) { + if (detectorReferencesBuilder_ == null) { + return detectorReferences_.get(index); + } else { + return detectorReferencesBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder setDetectorReferences( + int index, com.google.cloud.securitycenter.v2.DetectorReference value) { + if (detectorReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDetectorReferencesIsMutable(); + detectorReferences_.set(index, value); + onChanged(); + } else { + detectorReferencesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder setDetectorReferences( + int index, com.google.cloud.securitycenter.v2.DetectorReference.Builder builderForValue) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.set(index, builderForValue.build()); + onChanged(); + } else { + detectorReferencesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + com.google.cloud.securitycenter.v2.DetectorReference value) { + if (detectorReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(value); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + int index, com.google.cloud.securitycenter.v2.DetectorReference value) { + if (detectorReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(index, value); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + com.google.cloud.securitycenter.v2.DetectorReference.Builder builderForValue) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(builderForValue.build()); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder addDetectorReferences( + int index, com.google.cloud.securitycenter.v2.DetectorReference.Builder builderForValue) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.add(index, builderForValue.build()); + onChanged(); + } else { + detectorReferencesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder addAllDetectorReferences( + java.lang.Iterable values) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, detectorReferences_); + onChanged(); + } else { + detectorReferencesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder clearDetectorReferences() { + if (detectorReferencesBuilder_ == null) { + detectorReferences_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + detectorReferencesBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public Builder removeDetectorReferences(int index) { + if (detectorReferencesBuilder_ == null) { + ensureDetectorReferencesIsMutable(); + detectorReferences_.remove(index); + onChanged(); + } else { + detectorReferencesBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v2.DetectorReference.Builder + getDetectorReferencesBuilder(int index) { + return internalGetDetectorReferencesFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v2.DetectorReferenceOrBuilder + getDetectorReferencesOrBuilder(int index) { + if (detectorReferencesBuilder_ == null) { + return detectorReferences_.get(index); + } else { + return detectorReferencesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public java.util.List + getDetectorReferencesOrBuilderList() { + if (detectorReferencesBuilder_ != null) { + return detectorReferencesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(detectorReferences_); + } + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v2.DetectorReference.Builder + addDetectorReferencesBuilder() { + return internalGetDetectorReferencesFieldBuilder() + .addBuilder(com.google.cloud.securitycenter.v2.DetectorReference.getDefaultInstance()); + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public com.google.cloud.securitycenter.v2.DetectorReference.Builder + addDetectorReferencesBuilder(int index) { + return internalGetDetectorReferencesFieldBuilder() + .addBuilder( + index, com.google.cloud.securitycenter.v2.DetectorReference.getDefaultInstance()); + } + + /** + * + * + *
+     * The list of references to specific detectors that identified anomalies
+     * within this session.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + public java.util.List + getDetectorReferencesBuilderList() { + return internalGetDetectorReferencesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.DetectorReference, + com.google.cloud.securitycenter.v2.DetectorReference.Builder, + com.google.cloud.securitycenter.v2.DetectorReferenceOrBuilder> + internalGetDetectorReferencesFieldBuilder() { + if (detectorReferencesBuilder_ == null) { + detectorReferencesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.DetectorReference, + com.google.cloud.securitycenter.v2.DetectorReference.Builder, + com.google.cloud.securitycenter.v2.DetectorReferenceOrBuilder>( + detectorReferences_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + detectorReferences_ = null; + } + return detectorReferencesBuilder_; + } + + private java.util.List + invocationReferences_ = java.util.Collections.emptyList(); + + private void ensureInvocationReferencesIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + invocationReferences_ = + new java.util.ArrayList( + invocationReferences_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.InvocationReference, + com.google.cloud.securitycenter.v2.InvocationReference.Builder, + com.google.cloud.securitycenter.v2.InvocationReferenceOrBuilder> + invocationReferencesBuilder_; + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public java.util.List + getInvocationReferencesList() { + if (invocationReferencesBuilder_ == null) { + return java.util.Collections.unmodifiableList(invocationReferences_); + } else { + return invocationReferencesBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public int getInvocationReferencesCount() { + if (invocationReferencesBuilder_ == null) { + return invocationReferences_.size(); + } else { + return invocationReferencesBuilder_.getCount(); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v2.InvocationReference getInvocationReferences( + int index) { + if (invocationReferencesBuilder_ == null) { + return invocationReferences_.get(index); + } else { + return invocationReferencesBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder setInvocationReferences( + int index, com.google.cloud.securitycenter.v2.InvocationReference value) { + if (invocationReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvocationReferencesIsMutable(); + invocationReferences_.set(index, value); + onChanged(); + } else { + invocationReferencesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder setInvocationReferences( + int index, com.google.cloud.securitycenter.v2.InvocationReference.Builder builderForValue) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.set(index, builderForValue.build()); + onChanged(); + } else { + invocationReferencesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + com.google.cloud.securitycenter.v2.InvocationReference value) { + if (invocationReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(value); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + int index, com.google.cloud.securitycenter.v2.InvocationReference value) { + if (invocationReferencesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(index, value); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + com.google.cloud.securitycenter.v2.InvocationReference.Builder builderForValue) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(builderForValue.build()); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder addInvocationReferences( + int index, com.google.cloud.securitycenter.v2.InvocationReference.Builder builderForValue) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.add(index, builderForValue.build()); + onChanged(); + } else { + invocationReferencesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder addAllInvocationReferences( + java.lang.Iterable + values) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, invocationReferences_); + onChanged(); + } else { + invocationReferencesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder clearInvocationReferences() { + if (invocationReferencesBuilder_ == null) { + invocationReferences_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + invocationReferencesBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public Builder removeInvocationReferences(int index) { + if (invocationReferencesBuilder_ == null) { + ensureInvocationReferencesIsMutable(); + invocationReferences_.remove(index); + onChanged(); + } else { + invocationReferencesBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v2.InvocationReference.Builder + getInvocationReferencesBuilder(int index) { + return internalGetInvocationReferencesFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v2.InvocationReferenceOrBuilder + getInvocationReferencesOrBuilder(int index) { + if (invocationReferencesBuilder_ == null) { + return invocationReferences_.get(index); + } else { + return invocationReferencesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public java.util.List + getInvocationReferencesOrBuilderList() { + if (invocationReferencesBuilder_ != null) { + return invocationReferencesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(invocationReferences_); + } + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v2.InvocationReference.Builder + addInvocationReferencesBuilder() { + return internalGetInvocationReferencesFieldBuilder() + .addBuilder(com.google.cloud.securitycenter.v2.InvocationReference.getDefaultInstance()); + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public com.google.cloud.securitycenter.v2.InvocationReference.Builder + addInvocationReferencesBuilder(int index) { + return internalGetInvocationReferencesFieldBuilder() + .addBuilder( + index, com.google.cloud.securitycenter.v2.InvocationReference.getDefaultInstance()); + } + + /** + * + * + *
+     * References to the OpenTelemetry invocations.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + public java.util.List + getInvocationReferencesBuilderList() { + return internalGetInvocationReferencesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.InvocationReference, + com.google.cloud.securitycenter.v2.InvocationReference.Builder, + com.google.cloud.securitycenter.v2.InvocationReferenceOrBuilder> + internalGetInvocationReferencesFieldBuilder() { + if (invocationReferencesBuilder_ == null) { + invocationReferencesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.InvocationReference, + com.google.cloud.securitycenter.v2.InvocationReference.Builder, + com.google.cloud.securitycenter.v2.InvocationReferenceOrBuilder>( + invocationReferences_, + ((bitField0_ & 0x00000004) != 0), + getParentForChildren(), + isClean()); + invocationReferences_ = null; + } + return invocationReferencesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v2.AgentAnomaly) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v2.AgentAnomaly) + private static final com.google.cloud.securitycenter.v2.AgentAnomaly DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v2.AgentAnomaly(); + } + + public static com.google.cloud.securitycenter.v2.AgentAnomaly getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AgentAnomaly 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.cloud.securitycenter.v2.AgentAnomaly getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomalyOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomalyOrBuilder.java new file mode 100644 index 000000000000..91065eede855 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomalyOrBuilder.java @@ -0,0 +1,174 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public interface AgentAnomalyOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v2.AgentAnomaly) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The overall confidence score indicating the likelihood that this session
+   * contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0
+   * signifies 100% confidence in the presence of an anomaly and 0.0 signifies
+   * 0% confidence.
+   * 
+ * + * double confidence_score = 1; + * + * @return The confidenceScore. + */ + double getConfidenceScore(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + java.util.List getDetectorReferencesList(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + com.google.cloud.securitycenter.v2.DetectorReference getDetectorReferences(int index); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + int getDetectorReferencesCount(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + java.util.List + getDetectorReferencesOrBuilderList(); + + /** + * + * + *
+   * The list of references to specific detectors that identified anomalies
+   * within this session.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.DetectorReference detector_references = 2; + * + */ + com.google.cloud.securitycenter.v2.DetectorReferenceOrBuilder getDetectorReferencesOrBuilder( + int index); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + java.util.List + getInvocationReferencesList(); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + com.google.cloud.securitycenter.v2.InvocationReference getInvocationReferences(int index); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + int getInvocationReferencesCount(); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + java.util.List + getInvocationReferencesOrBuilderList(); + + /** + * + * + *
+   * References to the OpenTelemetry invocations.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.InvocationReference invocation_references = 3; + * + */ + com.google.cloud.securitycenter.v2.InvocationReferenceOrBuilder getInvocationReferencesOrBuilder( + int index); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomalyProto.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomalyProto.java new file mode 100644 index 000000000000..bbc6d70a10d0 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentAnomalyProto.java @@ -0,0 +1,125 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public final class AgentAnomalyProto extends com.google.protobuf.GeneratedFile { + private AgentAnomalyProto() {} + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentAnomalyProto"); + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v2_AgentAnomaly_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v2_AgentAnomaly_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v2_DetectorReference_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v2_DetectorReference_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v2_InvocationReference_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v2_InvocationReference_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" + + "2google/cloud/securitycenter/v2/agent_a" + + "nomaly.proto\022\036google.cloud.securitycenter.v2\"\314\001\n" + + "\014AgentAnomaly\022\030\n" + + "\020confidence_score\030\001 \001(\001\022N\n" + + "\023detector_references\030\002 \003(\01321.g" + + "oogle.cloud.securitycenter.v2.DetectorReference\022R\n" + + "\025invocation_references\030\003 \003(\01323" + + ".google.cloud.securitycenter.v2.InvocationReference\"\214\002\n" + + "\021DetectorReference\022L\n" + + "\010severity\030\001" + + " \001(\0162:.google.cloud.securitycenter.v2.DetectorReference.Severity\022\023\n" + + "\013detector_id\030\002 \001(\t\022\024\n" + + "\014display_name\030\003 \001(\t\022\023\n" + + "\013explanation\030\004 \001(\t\022\026\n" + + "\016recommendation\030\005 \001(\t\"Q\n" + + "\010Severity\022\030\n" + + "\024SEVERITY_UNSPECIFIED\020\000\022\014\n" + + "\010CRITICAL\020\001\022\010\n" + + "\004HIGH\020\002\022\n\n" + + "\006MEDIUM\020\003\022\007\n" + + "\003LOW\020\004\",\n" + + "\023InvocationReference\022\025\n\r" + + "invocation_id\030\001 \001(\tB\353\001\n" + + "\"com.google.cloud.securitycenter.v2B\021AgentAnomalyProtoP\001ZJcloud.goog" + + "le.com/go/securitycenter/apiv2/securityc" + + "enterpb;securitycenterpb\252\002\036Google.Cloud." + + "SecurityCenter.V2\312\002\036Google\\Cloud\\Securit" + + "yCenter\\V2\352\002!Google::Cloud::SecurityCenter::V2b\006proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_google_cloud_securitycenter_v2_AgentAnomaly_descriptor = + getDescriptor().getMessageType(0); + internal_static_google_cloud_securitycenter_v2_AgentAnomaly_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v2_AgentAnomaly_descriptor, + new java.lang.String[] { + "ConfidenceScore", "DetectorReferences", "InvocationReferences", + }); + internal_static_google_cloud_securitycenter_v2_DetectorReference_descriptor = + getDescriptor().getMessageType(1); + internal_static_google_cloud_securitycenter_v2_DetectorReference_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v2_DetectorReference_descriptor, + new java.lang.String[] { + "Severity", "DetectorId", "DisplayName", "Explanation", "Recommendation", + }); + internal_static_google_cloud_securitycenter_v2_InvocationReference_descriptor = + getDescriptor().getMessageType(2); + internal_static_google_cloud_securitycenter_v2_InvocationReference_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v2_InvocationReference_descriptor, + new java.lang.String[] { + "InvocationId", + }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentOrBuilder.java new file mode 100644 index 000000000000..bd6ec1b77ac8 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentOrBuilder.java @@ -0,0 +1,82 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public interface AgentOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v2.Agent) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * string id = 1; + * + * @return The id. + */ + java.lang.String getId(); + + /** + * + * + *
+   * Identifier of the agent.
+   * 
+ * + * string id = 1; + * + * @return The bytes for id. + */ + com.google.protobuf.ByteString getIdBytes(); + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The displayName. + */ + java.lang.String getDisplayName(); + + /** + * + * + *
+   * The user friendly name of the specific agent instance where the finding was
+   * detected, for example, "Banking Agent".
+   * 
+ * + * string display_name = 2; + * + * @return The bytes for displayName. + */ + com.google.protobuf.ByteString getDisplayNameBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentProto.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentProto.java new file mode 100644 index 000000000000..3f65e1769e99 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentProto.java @@ -0,0 +1,81 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public final class AgentProto extends com.google.protobuf.GeneratedFile { + private AgentProto() {} + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentProto"); + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v2_Agent_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v2_Agent_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + + static { + java.lang.String[] descriptorData = { + "\n*google/cloud/securitycenter/v2/agent.p" + + "roto\022\036google.cloud.securitycenter.v2\")\n\005" + + "Agent\022\n\n\002id\030\001 \001(\t\022\024\n\014display_name\030\002 \001(\tB" + + "\344\001\n\"com.google.cloud.securitycenter.v2B\n" + + "AgentProtoP\001ZJcloud.google.com/go/securi" + + "tycenter/apiv2/securitycenterpb;security" + + "centerpb\252\002\036Google.Cloud.SecurityCenter.V" + + "2\312\002\036Google\\Cloud\\SecurityCenter\\V2\352\002!Goo" + + "gle::Cloud::SecurityCenter::V2b\006proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_google_cloud_securitycenter_v2_Agent_descriptor = + getDescriptor().getMessageType(0); + internal_static_google_cloud_securitycenter_v2_Agent_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v2_Agent_descriptor, + new java.lang.String[] { + "Id", "DisplayName", + }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSession.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSession.java new file mode 100644 index 000000000000..73f1cca214f8 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSession.java @@ -0,0 +1,596 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_session.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +/** + * + * + *
+ * Represents a conversational session where the finding occurred.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.AgentSession} + */ +@com.google.protobuf.Generated +public final class AgentSession extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v2.AgentSession) + AgentSessionOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentSession"); + } + + // Use AgentSession.newBuilder() to construct. + private AgentSession(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private AgentSession() { + sessionId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentSessionProto + .internal_static_google_cloud_securitycenter_v2_AgentSession_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentSessionProto + .internal_static_google_cloud_securitycenter_v2_AgentSession_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.AgentSession.class, + com.google.cloud.securitycenter.v2.AgentSession.Builder.class); + } + + public static final int SESSION_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object sessionId_ = ""; + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The sessionId. + */ + @java.lang.Override + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + 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(); + sessionId_ = s; + return s; + } + } + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The bytes for sessionId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + sessionId_ = 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.GeneratedMessage.isStringEmpty(sessionId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_); + } + 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.cloud.securitycenter.v2.AgentSession)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v2.AgentSession other = + (com.google.cloud.securitycenter.v2.AgentSession) obj; + + if (!getSessionId().equals(other.getSessionId())) 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) + SESSION_ID_FIELD_NUMBER; + hash = (53 * hash) + getSessionId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.AgentSession parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v2.AgentSession 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a conversational session where the finding occurred.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.AgentSession} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v2.AgentSession) + com.google.cloud.securitycenter.v2.AgentSessionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentSessionProto + .internal_static_google_cloud_securitycenter_v2_AgentSession_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentSessionProto + .internal_static_google_cloud_securitycenter_v2_AgentSession_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.AgentSession.class, + com.google.cloud.securitycenter.v2.AgentSession.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v2.AgentSession.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sessionId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v2.AgentSessionProto + .internal_static_google_cloud_securitycenter_v2_AgentSession_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentSession getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v2.AgentSession.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentSession build() { + com.google.cloud.securitycenter.v2.AgentSession result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentSession buildPartial() { + com.google.cloud.securitycenter.v2.AgentSession result = + new com.google.cloud.securitycenter.v2.AgentSession(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v2.AgentSession result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sessionId_ = sessionId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v2.AgentSession) { + return mergeFrom((com.google.cloud.securitycenter.v2.AgentSession) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v2.AgentSession other) { + if (other == com.google.cloud.securitycenter.v2.AgentSession.getDefaultInstance()) + return this; + if (!other.getSessionId().isEmpty()) { + sessionId_ = other.sessionId_; + bitField0_ |= 0x00000001; + 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: + { + sessionId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + 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 sessionId_ = ""; + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @return The sessionId. + */ + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @return The bytes for sessionId. + */ + public com.google.protobuf.ByteString getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @param value The sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearSessionId() { + sessionId_ = getDefaultInstance().getSessionId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * The session ID of a conversation.
+     * 
+ * + * string session_id = 1; + * + * @param value The bytes for sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v2.AgentSession) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v2.AgentSession) + private static final com.google.cloud.securitycenter.v2.AgentSession DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v2.AgentSession(); + } + + public static com.google.cloud.securitycenter.v2.AgentSession getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AgentSession 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.cloud.securitycenter.v2.AgentSession getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSessionOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSessionOrBuilder.java new file mode 100644 index 000000000000..f4e33c5049d2 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSessionOrBuilder.java @@ -0,0 +1,54 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_session.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public interface AgentSessionOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v2.AgentSession) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The sessionId. + */ + java.lang.String getSessionId(); + + /** + * + * + *
+   * The session ID of a conversation.
+   * 
+ * + * string session_id = 1; + * + * @return The bytes for sessionId. + */ + com.google.protobuf.ByteString getSessionIdBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSessionProto.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSessionProto.java new file mode 100644 index 000000000000..cd33d5b3577d --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/AgentSessionProto.java @@ -0,0 +1,82 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_session.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public final class AgentSessionProto extends com.google.protobuf.GeneratedFile { + private AgentSessionProto() {} + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AgentSessionProto"); + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_securitycenter_v2_AgentSession_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_cloud_securitycenter_v2_AgentSession_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + + static { + java.lang.String[] descriptorData = { + "\n2google/cloud/securitycenter/v2/agent_s" + + "ession.proto\022\036google.cloud.securitycente" + + "r.v2\"\"\n\014AgentSession\022\022\n\nsession_id\030\001 \001(\t" + + "B\353\001\n\"com.google.cloud.securitycenter.v2B" + + "\021AgentSessionProtoP\001ZJcloud.google.com/g" + + "o/securitycenter/apiv2/securitycenterpb;" + + "securitycenterpb\252\002\036Google.Cloud.Security" + + "Center.V2\312\002\036Google\\Cloud\\SecurityCenter\\" + + "V2\352\002!Google::Cloud::SecurityCenter::V2b\006" + + "proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_google_cloud_securitycenter_v2_AgentSession_descriptor = + getDescriptor().getMessageType(0); + internal_static_google_cloud_securitycenter_v2_AgentSession_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_cloud_securitycenter_v2_AgentSession_descriptor, + new java.lang.String[] { + "SessionId", + }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/DetectorReference.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/DetectorReference.java new file mode 100644 index 000000000000..5e3dbe7a2afe --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/DetectorReference.java @@ -0,0 +1,1579 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +/** + * + * + *
+ * Represents a reference to a specific anomaly detector.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.DetectorReference} + */ +@com.google.protobuf.Generated +public final class DetectorReference extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v2.DetectorReference) + DetectorReferenceOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "DetectorReference"); + } + + // Use DetectorReference.newBuilder() to construct. + private DetectorReference(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private DetectorReference() { + severity_ = 0; + detectorId_ = ""; + displayName_ = ""; + explanation_ = ""; + recommendation_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_DetectorReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_DetectorReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.DetectorReference.class, + com.google.cloud.securitycenter.v2.DetectorReference.Builder.class); + } + + /** + * + * + *
+   * Severity levels for detectors.
+   * 
+ * + * Protobuf enum {@code google.cloud.securitycenter.v2.DetectorReference.Severity} + */ + public enum Severity implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Unspecified severity.
+     * 
+ * + * SEVERITY_UNSPECIFIED = 0; + */ + SEVERITY_UNSPECIFIED(0), + /** + * + * + *
+     * Critical severity.
+     * 
+ * + * CRITICAL = 1; + */ + CRITICAL(1), + /** + * + * + *
+     * High severity.
+     * 
+ * + * HIGH = 2; + */ + HIGH(2), + /** + * + * + *
+     * Medium severity.
+     * 
+ * + * MEDIUM = 3; + */ + MEDIUM(3), + /** + * + * + *
+     * Low severity.
+     * 
+ * + * LOW = 4; + */ + LOW(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Severity"); + } + + /** + * + * + *
+     * Unspecified severity.
+     * 
+ * + * SEVERITY_UNSPECIFIED = 0; + */ + public static final int SEVERITY_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Critical severity.
+     * 
+ * + * CRITICAL = 1; + */ + public static final int CRITICAL_VALUE = 1; + + /** + * + * + *
+     * High severity.
+     * 
+ * + * HIGH = 2; + */ + public static final int HIGH_VALUE = 2; + + /** + * + * + *
+     * Medium severity.
+     * 
+ * + * MEDIUM = 3; + */ + public static final int MEDIUM_VALUE = 3; + + /** + * + * + *
+     * Low severity.
+     * 
+ * + * LOW = 4; + */ + public static final int LOW_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 Severity 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 Severity forNumber(int value) { + switch (value) { + case 0: + return SEVERITY_UNSPECIFIED; + case 1: + return CRITICAL; + case 2: + return HIGH; + case 3: + return MEDIUM; + case 4: + return LOW; + 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 Severity findValueByNumber(int number) { + return Severity.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.DetectorReference.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final Severity[] VALUES = values(); + + public static Severity 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 Severity(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.cloud.securitycenter.v2.DetectorReference.Severity) + } + + public static final int SEVERITY_FIELD_NUMBER = 1; + private int severity_ = 0; + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @return The enum numeric value on the wire for severity. + */ + @java.lang.Override + public int getSeverityValue() { + return severity_; + } + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @return The severity. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.DetectorReference.Severity getSeverity() { + com.google.cloud.securitycenter.v2.DetectorReference.Severity result = + com.google.cloud.securitycenter.v2.DetectorReference.Severity.forNumber(severity_); + return result == null + ? com.google.cloud.securitycenter.v2.DetectorReference.Severity.UNRECOGNIZED + : result; + } + + public static final int DETECTOR_ID_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object detectorId_ = ""; + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The detectorId. + */ + @java.lang.Override + public java.lang.String getDetectorId() { + java.lang.Object ref = detectorId_; + 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(); + detectorId_ = s; + return s; + } + } + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The bytes for detectorId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDetectorIdBytes() { + java.lang.Object ref = detectorId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + detectorId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAY_NAME_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object displayName_ = ""; + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The displayName. + */ + @java.lang.Override + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + 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(); + displayName_ = s; + return s; + } + } + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The bytes for displayName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EXPLANATION_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object explanation_ = ""; + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The explanation. + */ + @java.lang.Override + public java.lang.String getExplanation() { + java.lang.Object ref = explanation_; + 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(); + explanation_ = s; + return s; + } + } + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The bytes for explanation. + */ + @java.lang.Override + public com.google.protobuf.ByteString getExplanationBytes() { + java.lang.Object ref = explanation_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + explanation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RECOMMENDATION_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object recommendation_ = ""; + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The recommendation. + */ + @java.lang.Override + public java.lang.String getRecommendation() { + java.lang.Object ref = recommendation_; + 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(); + recommendation_ = s; + return s; + } + } + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The bytes for recommendation. + */ + @java.lang.Override + public com.google.protobuf.ByteString getRecommendationBytes() { + java.lang.Object ref = recommendation_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + recommendation_ = 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 (severity_ + != com.google.cloud.securitycenter.v2.DetectorReference.Severity.SEVERITY_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, severity_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(detectorId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, detectorId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, displayName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(explanation_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, explanation_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(recommendation_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, recommendation_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (severity_ + != com.google.cloud.securitycenter.v2.DetectorReference.Severity.SEVERITY_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, severity_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(detectorId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, detectorId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, displayName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(explanation_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, explanation_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(recommendation_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, recommendation_); + } + 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.cloud.securitycenter.v2.DetectorReference)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v2.DetectorReference other = + (com.google.cloud.securitycenter.v2.DetectorReference) obj; + + if (severity_ != other.severity_) return false; + if (!getDetectorId().equals(other.getDetectorId())) return false; + if (!getDisplayName().equals(other.getDisplayName())) return false; + if (!getExplanation().equals(other.getExplanation())) return false; + if (!getRecommendation().equals(other.getRecommendation())) 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) + SEVERITY_FIELD_NUMBER; + hash = (53 * hash) + severity_; + hash = (37 * hash) + DETECTOR_ID_FIELD_NUMBER; + hash = (53 * hash) + getDetectorId().hashCode(); + hash = (37 * hash) + DISPLAY_NAME_FIELD_NUMBER; + hash = (53 * hash) + getDisplayName().hashCode(); + hash = (37 * hash) + EXPLANATION_FIELD_NUMBER; + hash = (53 * hash) + getExplanation().hashCode(); + hash = (37 * hash) + RECOMMENDATION_FIELD_NUMBER; + hash = (53 * hash) + getRecommendation().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.securitycenter.v2.DetectorReference 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a reference to a specific anomaly detector.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.DetectorReference} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v2.DetectorReference) + com.google.cloud.securitycenter.v2.DetectorReferenceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_DetectorReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_DetectorReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.DetectorReference.class, + com.google.cloud.securitycenter.v2.DetectorReference.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v2.DetectorReference.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + severity_ = 0; + detectorId_ = ""; + displayName_ = ""; + explanation_ = ""; + recommendation_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_DetectorReference_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.DetectorReference getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v2.DetectorReference.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.DetectorReference build() { + com.google.cloud.securitycenter.v2.DetectorReference result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.DetectorReference buildPartial() { + com.google.cloud.securitycenter.v2.DetectorReference result = + new com.google.cloud.securitycenter.v2.DetectorReference(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v2.DetectorReference result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.severity_ = severity_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.detectorId_ = detectorId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.displayName_ = displayName_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.explanation_ = explanation_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.recommendation_ = recommendation_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v2.DetectorReference) { + return mergeFrom((com.google.cloud.securitycenter.v2.DetectorReference) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v2.DetectorReference other) { + if (other == com.google.cloud.securitycenter.v2.DetectorReference.getDefaultInstance()) + return this; + if (other.severity_ != 0) { + setSeverityValue(other.getSeverityValue()); + } + if (!other.getDetectorId().isEmpty()) { + detectorId_ = other.detectorId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getDisplayName().isEmpty()) { + displayName_ = other.displayName_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getExplanation().isEmpty()) { + explanation_ = other.explanation_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getRecommendation().isEmpty()) { + recommendation_ = other.recommendation_; + bitField0_ |= 0x00000010; + 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: + { + severity_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + detectorId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + displayName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + explanation_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + recommendation_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + 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 severity_ = 0; + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @return The enum numeric value on the wire for severity. + */ + @java.lang.Override + public int getSeverityValue() { + return severity_; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @param value The enum numeric value on the wire for severity to set. + * @return This builder for chaining. + */ + public Builder setSeverityValue(int value) { + severity_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @return The severity. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.DetectorReference.Severity getSeverity() { + com.google.cloud.securitycenter.v2.DetectorReference.Severity result = + com.google.cloud.securitycenter.v2.DetectorReference.Severity.forNumber(severity_); + return result == null + ? com.google.cloud.securitycenter.v2.DetectorReference.Severity.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @param value The severity to set. + * @return This builder for chaining. + */ + public Builder setSeverity( + com.google.cloud.securitycenter.v2.DetectorReference.Severity value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + severity_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * The severity of the detector.
+     * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @return This builder for chaining. + */ + public Builder clearSeverity() { + bitField0_ = (bitField0_ & ~0x00000001); + severity_ = 0; + onChanged(); + return this; + } + + private java.lang.Object detectorId_ = ""; + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @return The detectorId. + */ + public java.lang.String getDetectorId() { + java.lang.Object ref = detectorId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + detectorId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @return The bytes for detectorId. + */ + public com.google.protobuf.ByteString getDetectorIdBytes() { + java.lang.Object ref = detectorId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + detectorId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @param value The detectorId to set. + * @return This builder for chaining. + */ + public Builder setDetectorId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + detectorId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @return This builder for chaining. + */ + public Builder clearDetectorId() { + detectorId_ = getDefaultInstance().getDetectorId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the detector.
+     * 
+ * + * string detector_id = 2; + * + * @param value The bytes for detectorId to set. + * @return This builder for chaining. + */ + public Builder setDetectorIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + detectorId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object displayName_ = ""; + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @return The displayName. + */ + public java.lang.String getDisplayName() { + java.lang.Object ref = displayName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @return The bytes for displayName. + */ + public com.google.protobuf.ByteString getDisplayNameBytes() { + java.lang.Object ref = displayName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @param value The displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + displayName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @return This builder for chaining. + */ + public Builder clearDisplayName() { + displayName_ = getDefaultInstance().getDisplayName(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * A human readable name for the detector, providing context on its purpose.
+     * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+     * 
+ * + * string display_name = 3; + * + * @param value The bytes for displayName to set. + * @return This builder for chaining. + */ + public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + displayName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object explanation_ = ""; + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @return The explanation. + */ + public java.lang.String getExplanation() { + java.lang.Object ref = explanation_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + explanation_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @return The bytes for explanation. + */ + public com.google.protobuf.ByteString getExplanationBytes() { + java.lang.Object ref = explanation_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + explanation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @param value The explanation to set. + * @return This builder for chaining. + */ + public Builder setExplanation(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + explanation_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @return This builder for chaining. + */ + public Builder clearExplanation() { + explanation_ = getDefaultInstance().getExplanation(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * A detailed explanation generated by an LLM or the detector itself,
+     * describing why this specific anomaly was flagged. This provides rationale
+     * and context for the detection.
+     * 
+ * + * string explanation = 4; + * + * @param value The bytes for explanation to set. + * @return This builder for chaining. + */ + public Builder setExplanationBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + explanation_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object recommendation_ = ""; + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @return The recommendation. + */ + public java.lang.String getRecommendation() { + java.lang.Object ref = recommendation_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + recommendation_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @return The bytes for recommendation. + */ + public com.google.protobuf.ByteString getRecommendationBytes() { + java.lang.Object ref = recommendation_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + recommendation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @param value The recommendation to set. + * @return This builder for chaining. + */ + public Builder setRecommendation(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + recommendation_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @return This builder for chaining. + */ + public Builder clearRecommendation() { + recommendation_ = getDefaultInstance().getRecommendation(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * Recommended steps or actions to remediate or investigate the anomaly
+     * flagged by this detector. These could include configuration changes, code
+     * adjustments, or further diagnostic procedures.
+     * 
+ * + * string recommendation = 5; + * + * @param value The bytes for recommendation to set. + * @return This builder for chaining. + */ + public Builder setRecommendationBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + recommendation_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v2.DetectorReference) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v2.DetectorReference) + private static final com.google.cloud.securitycenter.v2.DetectorReference DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v2.DetectorReference(); + } + + public static com.google.cloud.securitycenter.v2.DetectorReference getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DetectorReference 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.cloud.securitycenter.v2.DetectorReference getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/DetectorReferenceOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/DetectorReferenceOrBuilder.java new file mode 100644 index 000000000000..d945a8208c04 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/DetectorReferenceOrBuilder.java @@ -0,0 +1,168 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public interface DetectorReferenceOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v2.DetectorReference) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @return The enum numeric value on the wire for severity. + */ + int getSeverityValue(); + + /** + * + * + *
+   * The severity of the detector.
+   * 
+ * + * .google.cloud.securitycenter.v2.DetectorReference.Severity severity = 1; + * + * @return The severity. + */ + com.google.cloud.securitycenter.v2.DetectorReference.Severity getSeverity(); + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The detectorId. + */ + java.lang.String getDetectorId(); + + /** + * + * + *
+   * The unique identifier of the detector.
+   * 
+ * + * string detector_id = 2; + * + * @return The bytes for detectorId. + */ + com.google.protobuf.ByteString getDetectorIdBytes(); + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The displayName. + */ + java.lang.String getDisplayName(); + + /** + * + * + *
+   * A human readable name for the detector, providing context on its purpose.
+   * For example, "ASI02: Tool Misuse", or "Excessive API Calls".
+   * 
+ * + * string display_name = 3; + * + * @return The bytes for displayName. + */ + com.google.protobuf.ByteString getDisplayNameBytes(); + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The explanation. + */ + java.lang.String getExplanation(); + + /** + * + * + *
+   * A detailed explanation generated by an LLM or the detector itself,
+   * describing why this specific anomaly was flagged. This provides rationale
+   * and context for the detection.
+   * 
+ * + * string explanation = 4; + * + * @return The bytes for explanation. + */ + com.google.protobuf.ByteString getExplanationBytes(); + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The recommendation. + */ + java.lang.String getRecommendation(); + + /** + * + * + *
+   * Recommended steps or actions to remediate or investigate the anomaly
+   * flagged by this detector. These could include configuration changes, code
+   * adjustments, or further diagnostic procedures.
+   * 
+ * + * string recommendation = 5; + * + * @return The bytes for recommendation. + */ + com.google.protobuf.ByteString getRecommendationBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/Finding.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/Finding.java index 231e57e4cb43..a63cd5ff87a2 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/Finding.java +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/Finding.java @@ -87,6 +87,7 @@ private Finding() { dataFlowEvents_ = java.util.Collections.emptyList(); networks_ = java.util.Collections.emptyList(); dataRetentionDeletionEvents_ = java.util.Collections.emptyList(); + agentSessions_ = java.util.Collections.emptyList(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @@ -8493,6 +8494,185 @@ public com.google.cloud.securitycenter.v2.VertexAiOrBuilder getVertexAiOrBuilder : vertexAi_; } + public static final int AGENT_FIELD_NUMBER = 81; + private com.google.cloud.securitycenter.v2.Agent agent_; + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + * + * @return Whether the agent field is set. + */ + @java.lang.Override + public boolean hasAgent() { + return ((bitField0_ & 0x20000000) != 0); + } + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + * + * @return The agent. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.Agent getAgent() { + return agent_ == null ? com.google.cloud.securitycenter.v2.Agent.getDefaultInstance() : agent_; + } + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentOrBuilder getAgentOrBuilder() { + return agent_ == null ? com.google.cloud.securitycenter.v2.Agent.getDefaultInstance() : agent_; + } + + public static final int AGENT_SESSIONS_FIELD_NUMBER = 82; + + @SuppressWarnings("serial") + private java.util.List agentSessions_; + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + @java.lang.Override + public java.util.List getAgentSessionsList() { + return agentSessions_; + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + @java.lang.Override + public java.util.List + getAgentSessionsOrBuilderList() { + return agentSessions_; + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + @java.lang.Override + public int getAgentSessionsCount() { + return agentSessions_.size(); + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentSession getAgentSessions(int index) { + return agentSessions_.get(index); + } + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentSessionOrBuilder getAgentSessionsOrBuilder( + int index) { + return agentSessions_.get(index); + } + + public static final int AGENT_ANOMALY_FIELD_NUMBER = 83; + private com.google.cloud.securitycenter.v2.AgentAnomaly agentAnomaly_; + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + * + * @return Whether the agentAnomaly field is set. + */ + @java.lang.Override + public boolean hasAgentAnomaly() { + return ((bitField0_ & 0x40000000) != 0); + } + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + * + * @return The agentAnomaly. + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentAnomaly getAgentAnomaly() { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v2.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + @java.lang.Override + public com.google.cloud.securitycenter.v2.AgentAnomalyOrBuilder getAgentAnomalyOrBuilder() { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v2.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -8690,6 +8870,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (((bitField0_ & 0x10000000) != 0)) { output.writeMessage(72, getVertexAi()); } + if (((bitField0_ & 0x20000000) != 0)) { + output.writeMessage(81, getAgent()); + } + for (int i = 0; i < agentSessions_.size(); i++) { + output.writeMessage(82, agentSessions_.get(i)); + } + if (((bitField0_ & 0x40000000) != 0)) { + output.writeMessage(83, getAgentAnomaly()); + } getUnknownFields().writeTo(output); } @@ -8916,6 +9105,15 @@ public int getSerializedSize() { if (((bitField0_ & 0x10000000) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(72, getVertexAi()); } + if (((bitField0_ & 0x20000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(81, getAgent()); + } + for (int i = 0; i < agentSessions_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(82, agentSessions_.get(i)); + } + if (((bitField0_ & 0x40000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(83, getAgentAnomaly()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -9081,6 +9279,15 @@ public boolean equals(final java.lang.Object obj) { if (hasVertexAi()) { if (!getVertexAi().equals(other.getVertexAi())) return false; } + if (hasAgent() != other.hasAgent()) return false; + if (hasAgent()) { + if (!getAgent().equals(other.getAgent())) return false; + } + if (!getAgentSessionsList().equals(other.getAgentSessionsList())) return false; + if (hasAgentAnomaly() != other.hasAgentAnomaly()) return false; + if (hasAgentAnomaly()) { + if (!getAgentAnomaly().equals(other.getAgentAnomaly())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -9306,6 +9513,18 @@ public int hashCode() { hash = (37 * hash) + VERTEX_AI_FIELD_NUMBER; hash = (53 * hash) + getVertexAi().hashCode(); } + if (hasAgent()) { + hash = (37 * hash) + AGENT_FIELD_NUMBER; + hash = (53 * hash) + getAgent().hashCode(); + } + if (getAgentSessionsCount() > 0) { + hash = (37 * hash) + AGENT_SESSIONS_FIELD_NUMBER; + hash = (53 * hash) + getAgentSessionsList().hashCode(); + } + if (hasAgentAnomaly()) { + hash = (37 * hash) + AGENT_ANOMALY_FIELD_NUMBER; + hash = (53 * hash) + getAgentAnomaly().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -9526,6 +9745,9 @@ private void maybeForceBuilderInitialization() { internalGetAiModelFieldBuilder(); internalGetChokepointFieldBuilder(); internalGetVertexAiFieldBuilder(); + internalGetAgentFieldBuilder(); + internalGetAgentSessionsFieldBuilder(); + internalGetAgentAnomalyFieldBuilder(); } } @@ -9795,6 +10017,23 @@ public Builder clear() { vertexAiBuilder_.dispose(); vertexAiBuilder_ = null; } + agent_ = null; + if (agentBuilder_ != null) { + agentBuilder_.dispose(); + agentBuilder_ = null; + } + if (agentSessionsBuilder_ == null) { + agentSessions_ = java.util.Collections.emptyList(); + } else { + agentSessions_ = null; + agentSessionsBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x40000000); + agentAnomaly_ = null; + if (agentAnomalyBuilder_ != null) { + agentAnomalyBuilder_.dispose(); + agentAnomalyBuilder_ = null; + } return this; } @@ -9961,6 +10200,15 @@ private void buildPartialRepeatedFields(com.google.cloud.securitycenter.v2.Findi } else { result.dataRetentionDeletionEvents_ = dataRetentionDeletionEventsBuilder_.build(); } + if (agentSessionsBuilder_ == null) { + if (((bitField1_ & 0x40000000) != 0)) { + agentSessions_ = java.util.Collections.unmodifiableList(agentSessions_); + bitField1_ = (bitField1_ & ~0x40000000); + } + result.agentSessions_ = agentSessions_; + } else { + result.agentSessions_ = agentSessionsBuilder_.build(); + } } private void buildPartial0(com.google.cloud.securitycenter.v2.Finding result) { @@ -10166,6 +10414,15 @@ private void buildPartial1(com.google.cloud.securitycenter.v2.Finding result) { result.vertexAi_ = vertexAiBuilder_ == null ? vertexAi_ : vertexAiBuilder_.build(); to_bitField0_ |= 0x10000000; } + if (((from_bitField1_ & 0x20000000) != 0)) { + result.agent_ = agentBuilder_ == null ? agent_ : agentBuilder_.build(); + to_bitField0_ |= 0x20000000; + } + if (((from_bitField1_ & 0x80000000) != 0)) { + result.agentAnomaly_ = + agentAnomalyBuilder_ == null ? agentAnomaly_ : agentAnomalyBuilder_.build(); + to_bitField0_ |= 0x40000000; + } result.bitField0_ |= to_bitField0_; } @@ -10719,6 +10976,39 @@ public Builder mergeFrom(com.google.cloud.securitycenter.v2.Finding other) { if (other.hasVertexAi()) { mergeVertexAi(other.getVertexAi()); } + if (other.hasAgent()) { + mergeAgent(other.getAgent()); + } + if (agentSessionsBuilder_ == null) { + if (!other.agentSessions_.isEmpty()) { + if (agentSessions_.isEmpty()) { + agentSessions_ = other.agentSessions_; + bitField1_ = (bitField1_ & ~0x40000000); + } else { + ensureAgentSessionsIsMutable(); + agentSessions_.addAll(other.agentSessions_); + } + onChanged(); + } + } else { + if (!other.agentSessions_.isEmpty()) { + if (agentSessionsBuilder_.isEmpty()) { + agentSessionsBuilder_.dispose(); + agentSessionsBuilder_ = null; + agentSessions_ = other.agentSessions_; + bitField1_ = (bitField1_ & ~0x40000000); + agentSessionsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetAgentSessionsFieldBuilder() + : null; + } else { + agentSessionsBuilder_.addAllMessages(other.agentSessions_); + } + } + } + if (other.hasAgentAnomaly()) { + mergeAgentAnomaly(other.getAgentAnomaly()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -11262,6 +11552,33 @@ public Builder mergeFrom( bitField1_ |= 0x10000000; break; } // case 578 + case 650: + { + input.readMessage(internalGetAgentFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x20000000; + break; + } // case 650 + case 658: + { + com.google.cloud.securitycenter.v2.AgentSession m = + input.readMessage( + com.google.cloud.securitycenter.v2.AgentSession.parser(), + extensionRegistry); + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.add(m); + } else { + agentSessionsBuilder_.addMessage(m); + } + break; + } // case 658 + case 666: + { + input.readMessage( + internalGetAgentAnomalyFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x80000000; + break; + } // case 666 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -25419,6 +25736,773 @@ public com.google.cloud.securitycenter.v2.VertexAiOrBuilder getVertexAiOrBuilder return vertexAiBuilder_; } + private com.google.cloud.securitycenter.v2.Agent agent_; + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v2.Agent, + com.google.cloud.securitycenter.v2.Agent.Builder, + com.google.cloud.securitycenter.v2.AgentOrBuilder> + agentBuilder_; + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + * + * @return Whether the agent field is set. + */ + public boolean hasAgent() { + return ((bitField1_ & 0x20000000) != 0); + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + * + * @return The agent. + */ + public com.google.cloud.securitycenter.v2.Agent getAgent() { + if (agentBuilder_ == null) { + return agent_ == null + ? com.google.cloud.securitycenter.v2.Agent.getDefaultInstance() + : agent_; + } else { + return agentBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + public Builder setAgent(com.google.cloud.securitycenter.v2.Agent value) { + if (agentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + agent_ = value; + } else { + agentBuilder_.setMessage(value); + } + bitField1_ |= 0x20000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + public Builder setAgent(com.google.cloud.securitycenter.v2.Agent.Builder builderForValue) { + if (agentBuilder_ == null) { + agent_ = builderForValue.build(); + } else { + agentBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x20000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + public Builder mergeAgent(com.google.cloud.securitycenter.v2.Agent value) { + if (agentBuilder_ == null) { + if (((bitField1_ & 0x20000000) != 0) + && agent_ != null + && agent_ != com.google.cloud.securitycenter.v2.Agent.getDefaultInstance()) { + getAgentBuilder().mergeFrom(value); + } else { + agent_ = value; + } + } else { + agentBuilder_.mergeFrom(value); + } + if (agent_ != null) { + bitField1_ |= 0x20000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + public Builder clearAgent() { + bitField1_ = (bitField1_ & ~0x20000000); + agent_ = null; + if (agentBuilder_ != null) { + agentBuilder_.dispose(); + agentBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + public com.google.cloud.securitycenter.v2.Agent.Builder getAgentBuilder() { + bitField1_ |= 0x20000000; + onChanged(); + return internalGetAgentFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + public com.google.cloud.securitycenter.v2.AgentOrBuilder getAgentOrBuilder() { + if (agentBuilder_ != null) { + return agentBuilder_.getMessageOrBuilder(); + } else { + return agent_ == null + ? com.google.cloud.securitycenter.v2.Agent.getDefaultInstance() + : agent_; + } + } + + /** + * + * + *
+     * Primary Agent that the specified finding was flagged for
+     * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v2.Agent, + com.google.cloud.securitycenter.v2.Agent.Builder, + com.google.cloud.securitycenter.v2.AgentOrBuilder> + internalGetAgentFieldBuilder() { + if (agentBuilder_ == null) { + agentBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v2.Agent, + com.google.cloud.securitycenter.v2.Agent.Builder, + com.google.cloud.securitycenter.v2.AgentOrBuilder>( + getAgent(), getParentForChildren(), isClean()); + agent_ = null; + } + return agentBuilder_; + } + + private java.util.List agentSessions_ = + java.util.Collections.emptyList(); + + private void ensureAgentSessionsIsMutable() { + if (!((bitField1_ & 0x40000000) != 0)) { + agentSessions_ = + new java.util.ArrayList( + agentSessions_); + bitField1_ |= 0x40000000; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.AgentSession, + com.google.cloud.securitycenter.v2.AgentSession.Builder, + com.google.cloud.securitycenter.v2.AgentSessionOrBuilder> + agentSessionsBuilder_; + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public java.util.List getAgentSessionsList() { + if (agentSessionsBuilder_ == null) { + return java.util.Collections.unmodifiableList(agentSessions_); + } else { + return agentSessionsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public int getAgentSessionsCount() { + if (agentSessionsBuilder_ == null) { + return agentSessions_.size(); + } else { + return agentSessionsBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public com.google.cloud.securitycenter.v2.AgentSession getAgentSessions(int index) { + if (agentSessionsBuilder_ == null) { + return agentSessions_.get(index); + } else { + return agentSessionsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder setAgentSessions( + int index, com.google.cloud.securitycenter.v2.AgentSession value) { + if (agentSessionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAgentSessionsIsMutable(); + agentSessions_.set(index, value); + onChanged(); + } else { + agentSessionsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder setAgentSessions( + int index, com.google.cloud.securitycenter.v2.AgentSession.Builder builderForValue) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.set(index, builderForValue.build()); + onChanged(); + } else { + agentSessionsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder addAgentSessions(com.google.cloud.securitycenter.v2.AgentSession value) { + if (agentSessionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAgentSessionsIsMutable(); + agentSessions_.add(value); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder addAgentSessions( + int index, com.google.cloud.securitycenter.v2.AgentSession value) { + if (agentSessionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAgentSessionsIsMutable(); + agentSessions_.add(index, value); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder addAgentSessions( + com.google.cloud.securitycenter.v2.AgentSession.Builder builderForValue) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.add(builderForValue.build()); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder addAgentSessions( + int index, com.google.cloud.securitycenter.v2.AgentSession.Builder builderForValue) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.add(index, builderForValue.build()); + onChanged(); + } else { + agentSessionsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder addAllAgentSessions( + java.lang.Iterable values) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, agentSessions_); + onChanged(); + } else { + agentSessionsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder clearAgentSessions() { + if (agentSessionsBuilder_ == null) { + agentSessions_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x40000000); + onChanged(); + } else { + agentSessionsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public Builder removeAgentSessions(int index) { + if (agentSessionsBuilder_ == null) { + ensureAgentSessionsIsMutable(); + agentSessions_.remove(index); + onChanged(); + } else { + agentSessionsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public com.google.cloud.securitycenter.v2.AgentSession.Builder getAgentSessionsBuilder( + int index) { + return internalGetAgentSessionsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public com.google.cloud.securitycenter.v2.AgentSessionOrBuilder getAgentSessionsOrBuilder( + int index) { + if (agentSessionsBuilder_ == null) { + return agentSessions_.get(index); + } else { + return agentSessionsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public java.util.List + getAgentSessionsOrBuilderList() { + if (agentSessionsBuilder_ != null) { + return agentSessionsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(agentSessions_); + } + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public com.google.cloud.securitycenter.v2.AgentSession.Builder addAgentSessionsBuilder() { + return internalGetAgentSessionsFieldBuilder() + .addBuilder(com.google.cloud.securitycenter.v2.AgentSession.getDefaultInstance()); + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public com.google.cloud.securitycenter.v2.AgentSession.Builder addAgentSessionsBuilder( + int index) { + return internalGetAgentSessionsFieldBuilder() + .addBuilder(index, com.google.cloud.securitycenter.v2.AgentSession.getDefaultInstance()); + } + + /** + * + * + *
+     * Conversational session(s) where the finding occurred.
+     * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + public java.util.List + getAgentSessionsBuilderList() { + return internalGetAgentSessionsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.AgentSession, + com.google.cloud.securitycenter.v2.AgentSession.Builder, + com.google.cloud.securitycenter.v2.AgentSessionOrBuilder> + internalGetAgentSessionsFieldBuilder() { + if (agentSessionsBuilder_ == null) { + agentSessionsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.cloud.securitycenter.v2.AgentSession, + com.google.cloud.securitycenter.v2.AgentSession.Builder, + com.google.cloud.securitycenter.v2.AgentSessionOrBuilder>( + agentSessions_, + ((bitField1_ & 0x40000000) != 0), + getParentForChildren(), + isClean()); + agentSessions_ = null; + } + return agentSessionsBuilder_; + } + + private com.google.cloud.securitycenter.v2.AgentAnomaly agentAnomaly_; + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v2.AgentAnomaly, + com.google.cloud.securitycenter.v2.AgentAnomaly.Builder, + com.google.cloud.securitycenter.v2.AgentAnomalyOrBuilder> + agentAnomalyBuilder_; + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + * + * @return Whether the agentAnomaly field is set. + */ + public boolean hasAgentAnomaly() { + return ((bitField1_ & 0x80000000) != 0); + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + * + * @return The agentAnomaly. + */ + public com.google.cloud.securitycenter.v2.AgentAnomaly getAgentAnomaly() { + if (agentAnomalyBuilder_ == null) { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v2.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } else { + return agentAnomalyBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + public Builder setAgentAnomaly(com.google.cloud.securitycenter.v2.AgentAnomaly value) { + if (agentAnomalyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + agentAnomaly_ = value; + } else { + agentAnomalyBuilder_.setMessage(value); + } + bitField1_ |= 0x80000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + public Builder setAgentAnomaly( + com.google.cloud.securitycenter.v2.AgentAnomaly.Builder builderForValue) { + if (agentAnomalyBuilder_ == null) { + agentAnomaly_ = builderForValue.build(); + } else { + agentAnomalyBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x80000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + public Builder mergeAgentAnomaly(com.google.cloud.securitycenter.v2.AgentAnomaly value) { + if (agentAnomalyBuilder_ == null) { + if (((bitField1_ & 0x80000000) != 0) + && agentAnomaly_ != null + && agentAnomaly_ + != com.google.cloud.securitycenter.v2.AgentAnomaly.getDefaultInstance()) { + getAgentAnomalyBuilder().mergeFrom(value); + } else { + agentAnomaly_ = value; + } + } else { + agentAnomalyBuilder_.mergeFrom(value); + } + if (agentAnomaly_ != null) { + bitField1_ |= 0x80000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + public Builder clearAgentAnomaly() { + bitField1_ = (bitField1_ & ~0x80000000); + agentAnomaly_ = null; + if (agentAnomalyBuilder_ != null) { + agentAnomalyBuilder_.dispose(); + agentAnomalyBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + public com.google.cloud.securitycenter.v2.AgentAnomaly.Builder getAgentAnomalyBuilder() { + bitField1_ |= 0x80000000; + onChanged(); + return internalGetAgentAnomalyFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + public com.google.cloud.securitycenter.v2.AgentAnomalyOrBuilder getAgentAnomalyOrBuilder() { + if (agentAnomalyBuilder_ != null) { + return agentAnomalyBuilder_.getMessageOrBuilder(); + } else { + return agentAnomaly_ == null + ? com.google.cloud.securitycenter.v2.AgentAnomaly.getDefaultInstance() + : agentAnomaly_; + } + } + + /** + * + * + *
+     * Details about behavior anomalies detected in AI agents.
+     * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v2.AgentAnomaly, + com.google.cloud.securitycenter.v2.AgentAnomaly.Builder, + com.google.cloud.securitycenter.v2.AgentAnomalyOrBuilder> + internalGetAgentAnomalyFieldBuilder() { + if (agentAnomalyBuilder_ == null) { + agentAnomalyBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.cloud.securitycenter.v2.AgentAnomaly, + com.google.cloud.securitycenter.v2.AgentAnomaly.Builder, + com.google.cloud.securitycenter.v2.AgentAnomalyOrBuilder>( + getAgentAnomaly(), getParentForChildren(), isClean()); + agentAnomaly_ = null; + } + return agentAnomalyBuilder_; + } + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v2.Finding) } diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingOrBuilder.java index 587774491516..fae6f349b23a 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingOrBuilder.java +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingOrBuilder.java @@ -2835,4 +2835,134 @@ com.google.cloud.securitycenter.v2.DataRetentionDeletionEvent getDataRetentionDe * .google.cloud.securitycenter.v2.VertexAi vertex_ai = 72; */ com.google.cloud.securitycenter.v2.VertexAiOrBuilder getVertexAiOrBuilder(); + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + * + * @return Whether the agent field is set. + */ + boolean hasAgent(); + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + * + * @return The agent. + */ + com.google.cloud.securitycenter.v2.Agent getAgent(); + + /** + * + * + *
+   * Primary Agent that the specified finding was flagged for
+   * 
+ * + * .google.cloud.securitycenter.v2.Agent agent = 81; + */ + com.google.cloud.securitycenter.v2.AgentOrBuilder getAgentOrBuilder(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + java.util.List getAgentSessionsList(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + com.google.cloud.securitycenter.v2.AgentSession getAgentSessions(int index); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + int getAgentSessionsCount(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + java.util.List + getAgentSessionsOrBuilderList(); + + /** + * + * + *
+   * Conversational session(s) where the finding occurred.
+   * 
+ * + * repeated .google.cloud.securitycenter.v2.AgentSession agent_sessions = 82; + */ + com.google.cloud.securitycenter.v2.AgentSessionOrBuilder getAgentSessionsOrBuilder(int index); + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + * + * @return Whether the agentAnomaly field is set. + */ + boolean hasAgentAnomaly(); + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + * + * @return The agentAnomaly. + */ + com.google.cloud.securitycenter.v2.AgentAnomaly getAgentAnomaly(); + + /** + * + * + *
+   * Details about behavior anomalies detected in AI agents.
+   * 
+ * + * .google.cloud.securitycenter.v2.AgentAnomaly agent_anomaly = 83; + */ + com.google.cloud.securitycenter.v2.AgentAnomalyOrBuilder getAgentAnomalyOrBuilder(); } diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingProto.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingProto.java index d511c99966f5..b72a0dc64142 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingProto.java +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/FindingProto.java @@ -82,33 +82,35 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + ".proto\022\036google.cloud.securitycenter.v2\032\037" + "google/api/field_behavior.proto\032\031google/" + "api/resource.proto\032+google/cloud/securitycenter/v2/access.proto\0327google/cloud/se" - + "curitycenter/v2/affected_resources.proto\032-google/cloud/securitycenter/v2/ai_mode" - + "l.proto\0320google/cloud/securitycenter/v2/application.proto\0324google/cloud/security" - + "center/v2/attack_exposure.proto\032=google/cloud/securitycenter/v2/backup_disaster_" - + "recovery.proto\032/google/cloud/securitycenter/v2/chokepoint.proto\0320google/cloud/se" - + "curitycenter/v2/cloud_armor.proto\032;google/cloud/securitycenter/v2/cloud_dlp_data" - + "_profile.proto\0329google/cloud/securitycenter/v2/cloud_dlp_inspection.proto\032/googl" - + "e/cloud/securitycenter/v2/compliance.proto\032/google/cloud/securitycenter/v2/conne" - + "ction.proto\0324google/cloud/securitycenter/v2/contact_details.proto\032.google/cloud/" - + "securitycenter/v2/container.proto\0326google/cloud/securitycenter/v2/data_access_ev" - + "ent.proto\0324google/cloud/securitycenter/v2/data_flow_event.proto\032Bgoogle/cloud/se" - + "curitycenter/v2/data_retention_deletion_event.proto\032-google/cloud/securitycenter" - + "/v2/database.proto\032)google/cloud/securitycenter/v2/disk.proto\0321google/cloud/secu" - + "ritycenter/v2/exfiltration.proto\0324google/cloud/securitycenter/v2/external_system" - + ".proto\032)google/cloud/securitycenter/v2/file.proto\0325google/cloud/securitycenter/v" - + "2/group_membership.proto\0320google/cloud/securitycenter/v2/iam_binding.proto\032.goog" - + "le/cloud/securitycenter/v2/indicator.proto\032-google/cloud/securitycenter/v2/ip_ru" - + "les.proto\032(google/cloud/securitycenter/v2/job.proto\0323google/cloud/securitycenter" - + "/v2/kernel_rootkit.proto\032/google/cloud/securitycenter/v2/kubernetes.proto\0322googl" - + "e/cloud/securitycenter/v2/load_balancer.proto\032.google/cloud/securitycenter/v2/lo" - + "g_entry.proto\0321google/cloud/securitycenter/v2/mitre_attack.proto\032,google/cloud/s" - + "ecuritycenter/v2/network.proto\032-google/cloud/securitycenter/v2/notebook.proto\032/g" - + "oogle/cloud/securitycenter/v2/org_policy.proto\032,google/cloud/securitycenter/v2/p" - + "rocess.proto\0323google/cloud/securitycenter/v2/security_marks.proto\0325google/cloud/" - + "securitycenter/v2/security_posture.proto\0326google/cloud/securitycenter/v2/toxic_c" - + "ombination.proto\032.google/cloud/securitycenter/v2/vertex_ai.proto\0322google/cloud/s" - + "ecuritycenter/v2/vulnerability.proto\032\034go" - + "ogle/protobuf/struct.proto\032\037google/protobuf/timestamp.proto\"\236)\n" + + "curitycenter/v2/affected_resources.proto\032*google/cloud/securitycenter/v2/agent.p" + + "roto\0322google/cloud/securitycenter/v2/agent_anomaly.proto\0322google/cloud/securityc" + + "enter/v2/agent_session.proto\032-google/cloud/securitycenter/v2/ai_model.proto\0320goo" + + "gle/cloud/securitycenter/v2/application.proto\0324google/cloud/securitycenter/v2/at" + + "tack_exposure.proto\032=google/cloud/securitycenter/v2/backup_disaster_recovery.pro" + + "to\032/google/cloud/securitycenter/v2/chokepoint.proto\0320google/cloud/securitycenter" + + "/v2/cloud_armor.proto\032;google/cloud/securitycenter/v2/cloud_dlp_data_profile.pro" + + "to\0329google/cloud/securitycenter/v2/cloud_dlp_inspection.proto\032/google/cloud/secu" + + "ritycenter/v2/compliance.proto\032/google/cloud/securitycenter/v2/connection.proto\032" + + "4google/cloud/securitycenter/v2/contact_details.proto\032.google/cloud/securitycent" + + "er/v2/container.proto\0326google/cloud/securitycenter/v2/data_access_event.proto\0324g" + + "oogle/cloud/securitycenter/v2/data_flow_event.proto\032Bgoogle/cloud/securitycenter" + + "/v2/data_retention_deletion_event.proto\032-google/cloud/securitycenter/v2/database" + + ".proto\032)google/cloud/securitycenter/v2/disk.proto\0321google/cloud/securitycenter/v" + + "2/exfiltration.proto\0324google/cloud/securitycenter/v2/external_system.proto\032)goog" + + "le/cloud/securitycenter/v2/file.proto\0325google/cloud/securitycenter/v2/group_memb" + + "ership.proto\0320google/cloud/securitycenter/v2/iam_binding.proto\032.google/cloud/sec" + + "uritycenter/v2/indicator.proto\032-google/cloud/securitycenter/v2/ip_rules.proto\032(g" + + "oogle/cloud/securitycenter/v2/job.proto\0323google/cloud/securitycenter/v2/kernel_r" + + "ootkit.proto\032/google/cloud/securitycenter/v2/kubernetes.proto\0322google/cloud/secu" + + "ritycenter/v2/load_balancer.proto\032.google/cloud/securitycenter/v2/log_entry.prot" + + "o\0321google/cloud/securitycenter/v2/mitre_attack.proto\032,google/cloud/securitycente" + + "r/v2/network.proto\032-google/cloud/securitycenter/v2/notebook.proto\032/google/cloud/" + + "securitycenter/v2/org_policy.proto\032,google/cloud/securitycenter/v2/process.proto" + + "\0323google/cloud/securitycenter/v2/security_marks.proto\0325google/cloud/securitycent" + + "er/v2/security_posture.proto\0326google/cloud/securitycenter/v2/toxic_combination.p" + + "roto\032.google/cloud/securitycenter/v2/vertex_ai.proto\0322google/cloud/securitycente" + + "r/v2/vulnerability.proto\032\034google/protobu" + + "f/struct.proto\032\037google/protobuf/timestamp.proto\"\337*\n" + "\007Finding\022\021\n" + "\004name\030\001 \001(\tB\003\340A\010\022\033\n" + "\016canonical_name\030\002 \001(\tB\003\340A\003\022\016\n" @@ -118,38 +120,38 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + " \001(\0162-.google.cloud.securitycenter.v2.Finding.StateB\003\340A\003\022\025\n" + "\010category\030\007 \001(\tB\003\340A\005\022\024\n" + "\014external_uri\030\010 \001(\t\022X\n" - + "\021source_properties\030\t \003(\0132=.google.cloud.se" - + "curitycenter.v2.Finding.SourcePropertiesEntry\022J\n" + + "\021source_properties\030\t" + + " \003(\0132=.google.cloud.securitycenter.v2.Finding.SourcePropertiesEntry\022J\n" + "\016security_marks\030\n" + " \001(\0132-.google.cloud.securitycenter.v2.SecurityMarksB\003\340A\003\022.\n\n" + "event_time\030\013 \001(\0132\032.google.protobuf.Timestamp\0224\n" + "\013create_time\030\014 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022B\n" - + "\010severity\030\016 \001(" - + "\01620.google.cloud.securitycenter.v2.Finding.Severity\022:\n" + + "\010severity\030\016 \001(\01620.google.c" + + "loud.securitycenter.v2.Finding.Severity\022:\n" + "\004mute\030\017 \001(\0162,.google.cloud.securitycenter.v2.Finding.Mute\022H\n" - + "\tmute_info\0305" - + " \001(\01320.google.cloud.securitycenter.v2.Finding.MuteInfoB\003\340A\003\022K\n\r" - + "finding_class\030\020" - + " \001(\01624.google.cloud.securitycenter.v2.Finding.FindingClass\022<\n" + + "\tmute_info\0305 \001(\01320" + + ".google.cloud.securitycenter.v2.Finding.MuteInfoB\003\340A\003\022K\n\r" + + "finding_class\030\020 \001(\01624.g" + + "oogle.cloud.securitycenter.v2.Finding.FindingClass\022<\n" + "\tindicator\030\021 \001(\0132).google.cloud.securitycenter.v2.Indicator\022D\n\r" + "vulnerability\030\022 \001(\0132-.google.cloud.securitycenter.v2.Vulnerability\0229\n" + "\020mute_update_time\030\023" + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022[\n" - + "\020external_systems\030\024 \003(\0132" - + "<.google.cloud.securitycenter.v2.Finding.ExternalSystemsEntryB\003\340A\003\022A\n" + + "\020external_systems\030\024 \003(\0132<.google.clo" + + "ud.securitycenter.v2.Finding.ExternalSystemsEntryB\003\340A\003\022A\n" + "\014mitre_attack\030\025 \001(\0132+.google.cloud.securitycenter.v2.MitreAttack\0226\n" + "\006access\030\026 \001(\0132&.google.cloud.securitycenter.v2.Access\022?\n" - + "\013connections\030\027" - + " \003(\0132*.google.cloud.securitycenter.v2.Connection\022\026\n" + + "\013connections\030\027 \003(\0132*" + + ".google.cloud.securitycenter.v2.Connection\022\026\n" + "\016mute_initiator\030\030 \001(\t\022:\n" + "\tprocesses\030\031 \003(\0132\'.google.cloud.securitycenter.v2.Process\022L\n" - + "\010contacts\030\032 \003(\01325.g" - + "oogle.cloud.securitycenter.v2.Finding.ContactsEntryB\003\340A\003\022?\n" + + "\010contacts\030\032 \003(\01325.google.cloud." + + "securitycenter.v2.Finding.ContactsEntryB\003\340A\003\022?\n" + "\013compliances\030\033 \003(\0132*.google.cloud.securitycenter.v2.Compliance\022 \n" + "\023parent_display_name\030\035 \001(\tB\003\340A\003\022\023\n" + "\013description\030\036 \001(\t\022B\n" - + "\014exfiltration\030\037 \001(\0132," - + ".google.cloud.securitycenter.v2.Exfiltration\022@\n" + + "\014exfiltration\030\037" + + " \001(\0132,.google.cloud.securitycenter.v2.Exfiltration\022@\n" + "\014iam_bindings\030 " + " \003(\0132*.google.cloud.securitycenter.v2.IamBinding\022\022\n\n" + "next_steps\030! \001(\t\022\023\n" @@ -157,15 +159,15 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "containers\030# \003(\0132).google.cloud.securitycenter.v2.Container\022>\n\n" + "kubernetes\030$ \001(\0132*.google.cloud.securitycenter.v2.Kubernetes\022:\n" + "\010database\030% \001(\0132(.google.cloud.securitycenter.v2.Database\022G\n" - + "\017attack_exposure\030& " - + "\001(\0132..google.cloud.securitycenter.v2.AttackExposure\0223\n" + + "\017attack_exposure\030& \001(\0132..google" + + ".cloud.securitycenter.v2.AttackExposure\0223\n" + "\005files\030\' \003(\0132$.google.cloud.securitycenter.v2.File\022P\n" - + "\024cloud_dlp_inspection\030(" - + " \001(\01322.google.cloud.securitycenter.v2.CloudDlpInspection\022S\n" + + "\024cloud_dlp_inspection\030( \001" + + "(\01322.google.cloud.securitycenter.v2.CloudDlpInspection\022S\n" + "\026cloud_dlp_data_profile\030)" + " \001(\01323.google.cloud.securitycenter.v2.CloudDlpDataProfile\022E\n" - + "\016kernel_rootkit\030*" - + " \001(\0132-.google.cloud.securitycenter.v2.KernelRootkit\022?\n" + + "\016kernel_rootkit\030* " + + "\001(\0132-.google.cloud.securitycenter.v2.KernelRootkit\022?\n" + "\014org_policies\030+ \003(\0132).google.cloud.securitycenter.v2.OrgPolicy\0220\n" + "\003job\030, \001(\0132#.google.cloud.securitycenter.v2.Job\022@\n" + "\013application\030- \001(\0132+.google.cloud.securitycenter.v2.Application\0229\n" @@ -178,28 +180,33 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\016load_balancers\0302 \003(\0132,.google.cloud.securitycenter.v2.LoadBalancer\022?\n" + "\013cloud_armor\0303 \001(\0132*.google.cloud.securitycenter.v2.CloudArmor\022:\n" + "\010notebook\0307 \001(\0132(.google.cloud.securitycenter.v2.Notebook\022K\n" - + "\021toxic_combination\0308 \001(\01320.googl" - + "e.cloud.securitycenter.v2.ToxicCombination\022J\n" - + "\021group_memberships\0309 \003(\0132/.google.c" - + "loud.securitycenter.v2.GroupMembership\0222\n" + + "\021toxic_combination\0308" + + " \001(\01320.google.cloud.securitycenter.v2.ToxicCombination\022J\n" + + "\021group_memberships\0309" + + " \003(\0132/.google.cloud.securitycenter.v2.GroupMembership\0222\n" + "\004disk\030: \001(\0132$.google.cloud.securitycenter.v2.Disk\022K\n" - + "\022data_access_events\030= \003(\0132/" - + ".google.cloud.securitycenter.v2.DataAccessEvent\022G\n" - + "\020data_flow_events\030> \003(\0132-.goog" - + "le.cloud.securitycenter.v2.DataFlowEvent\0229\n" + + "\022data_access_events\030=" + + " \003(\0132/.google.cloud.securitycenter.v2.DataAccessEvent\022G\n" + + "\020data_flow_events\030>" + + " \003(\0132-.google.cloud.securitycenter.v2.DataFlowEvent\0229\n" + "\010networks\030? \003(\0132\'.google.cloud.securitycenter.v2.Network\022b\n" - + "\036data_retention_deletion_events\030@ \003(\0132:.google.cloud.secur" - + "itycenter.v2.DataRetentionDeletionEvent\022M\n" - + "\022affected_resources\030A \001(\01321.google.clo" - + "ud.securitycenter.v2.AffectedResources\0229\n" + + "\036data_retention_deletion_events\030@" + + " \003(\0132:.google.cloud.securitycenter.v2.DataRetentionDeletionEvent\022M\n" + + "\022affected_resources\030A" + + " \001(\01321.google.cloud.securitycenter.v2.AffectedResources\0229\n" + "\010ai_model\030B \001(\0132\'.google.cloud.securitycenter.v2.AiModel\022>\n\n" + "chokepoint\030E \001(\0132*.google.cloud.securitycenter.v2.Chokepoint\022;\n" - + "\tvertex_ai\030H \001(\0132(.google.cloud.securitycenter.v2.VertexAi\032\223\003\n" + + "\tvertex_ai\030H \001(\0132(.google.cloud.securitycenter.v2.VertexAi\0224\n" + + "\005agent\030Q \001(\0132%.google.cloud.securitycenter.v2.Agent\022D\n" + + "\016agent_sessions\030R" + + " \003(\0132,.google.cloud.securitycenter.v2.AgentSession\022C\n\r" + + "agent_anomaly\030S \001(\0132,." + + "google.cloud.securitycenter.v2.AgentAnomaly\032\223\003\n" + "\010MuteInfo\022P\n" - + "\013static_mute\030\001" - + " \001(\0132;.google.cloud.securitycenter.v2.Finding.MuteInfo.StaticMute\022`\n" - + "\024dynamic_mute_records\030\002 \003(\0132B.google.clo" - + "ud.securitycenter.v2.Finding.MuteInfo.DynamicMuteRecord\032y\n\n" + + "\013static_mute\030\001 \001(\0132;." + + "google.cloud.securitycenter.v2.Finding.MuteInfo.StaticMute\022`\n" + + "\024dynamic_mute_records\030\002" + + " \003(\0132B.google.cloud.securitycenter.v2.Finding.MuteInfo.DynamicMuteRecord\032y\n\n" + "StaticMute\022;\n" + "\005state\030\001 \001(\0162,.google.cloud.securitycenter.v2.Finding.Mute\022.\n\n" + "apply_time\030\002 \001(\0132\032.google.protobuf.Timestamp\032X\n" @@ -211,12 +218,12 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\005value\030\002 \001(\0132\026.google.protobuf.Value:\0028\001\032f\n" + "\024ExternalSystemsEntry\022\013\n" + "\003key\030\001 \001(\t\022=\n" - + "\005value\030\002 \001(" - + "\0132..google.cloud.securitycenter.v2.ExternalSystem:\0028\001\032_\n\r" + + "\005value\030\002" + + " \001(\0132..google.cloud.securitycenter.v2.ExternalSystem:\0028\001\032_\n\r" + "ContactsEntry\022\013\n" + "\003key\030\001 \001(\t\022=\n" - + "\005value\030\002" - + " \001(\0132..google.cloud.securitycenter.v2.ContactDetails:\0028\001\"8\n" + + "\005value\030\002 \001(\0132" + + "..google.cloud.securitycenter.v2.ContactDetails:\0028\001\"8\n" + "\005State\022\025\n" + "\021STATE_UNSPECIFIED\020\000\022\n\n" + "\006ACTIVE\020\001\022\014\n" @@ -237,25 +244,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\006THREAT\020\001\022\021\n\r" + "VULNERABILITY\020\002\022\024\n" + "\020MISCONFIGURATION\020\003\022\017\n" - + "\013OBSERVATION\020\004\022\r" - + "\n" + + "\013OBSERVATION\020\004\022\r\n" + "\tSCC_ERROR\020\005\022\025\n" + "\021POSTURE_VIOLATION\020\006\022\025\n" + "\021TOXIC_COMBINATION\020\007\022\027\n" + "\023SENSITIVE_DATA_RISK\020\010\022\016\n\n" + "CHOKEPOINT\020\t:\335\003\352A\331\003\n" - + "%securitycenter.googleapis.com/Finding\022@organization" - + "s/{organization}/sources/{source}/findings/{finding}\022Uorganizations/{organizatio" - + "n}/sources/{source}/locations/{location}/findings/{finding}\0224folders/{folder}/so" - + "urces/{source}/findings/{finding}\022Ifolders/{folder}/sources/{source}/locations/{" - + "location}/findings/{finding}\0226projects/{project}/sources/{source}/findings/{find" - + "ing}\022Kprojects/{project}/sources/{source" - + "}/locations/{location}/findings/{finding}*\010findings2\007findingB\346\001\n" - + "\"com.google.cloud.securitycenter.v2B\014FindingProtoP\001ZJclo" - + "ud.google.com/go/securitycenter/apiv2/se" - + "curitycenterpb;securitycenterpb\252\002\036Google" - + ".Cloud.SecurityCenter.V2\312\002\036Google\\Cloud\\" - + "SecurityCenter\\V2\352\002!Google::Cloud::SecurityCenter::V2b\006proto3" + + "%securitycenter.googleapis.com/Finding\022@organizations/{organization}/so" + + "urces/{source}/findings/{finding}\022Uorganizations/{organization}/sources/{source}" + + "/locations/{location}/findings/{finding}\0224folders/{folder}/sources/{source}/find" + + "ings/{finding}\022Ifolders/{folder}/sources/{source}/locations/{location}/findings/" + + "{finding}\0226projects/{project}/sources/{source}/findings/{finding}\022Kprojects/{pro" + + "ject}/sources/{source}/locations/{locati" + + "on}/findings/{finding}*\010findings2\007findingB\346\001\n" + + "\"com.google.cloud.securitycenter.v2B\014FindingProtoP\001ZJcloud.google.com/go/se" + + "curitycenter/apiv2/securitycenterpb;secu" + + "ritycenterpb\252\002\036Google.Cloud.SecurityCent" + + "er.V2\312\002\036Google\\Cloud\\SecurityCenter\\V2\352\002" + + "!Google::Cloud::SecurityCenter::V2b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -265,6 +271,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { com.google.api.ResourceProto.getDescriptor(), com.google.cloud.securitycenter.v2.AccessProto.getDescriptor(), com.google.cloud.securitycenter.v2.AffectedResourcesProto.getDescriptor(), + com.google.cloud.securitycenter.v2.AgentProto.getDescriptor(), + com.google.cloud.securitycenter.v2.AgentAnomalyProto.getDescriptor(), + com.google.cloud.securitycenter.v2.AgentSessionProto.getDescriptor(), com.google.cloud.securitycenter.v2.AiModelProto.getDescriptor(), com.google.cloud.securitycenter.v2.ApplicationProto.getDescriptor(), com.google.cloud.securitycenter.v2.AttackExposureProto.getDescriptor(), @@ -374,6 +383,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "AiModel", "Chokepoint", "VertexAi", + "Agent", + "AgentSessions", + "AgentAnomaly", }); internal_static_google_cloud_securitycenter_v2_Finding_MuteInfo_descriptor = internal_static_google_cloud_securitycenter_v2_Finding_descriptor.getNestedType(0); @@ -428,6 +440,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { com.google.api.ResourceProto.getDescriptor(); com.google.cloud.securitycenter.v2.AccessProto.getDescriptor(); com.google.cloud.securitycenter.v2.AffectedResourcesProto.getDescriptor(); + com.google.cloud.securitycenter.v2.AgentProto.getDescriptor(); + com.google.cloud.securitycenter.v2.AgentAnomalyProto.getDescriptor(); + com.google.cloud.securitycenter.v2.AgentSessionProto.getDescriptor(); com.google.cloud.securitycenter.v2.AiModelProto.getDescriptor(); com.google.cloud.securitycenter.v2.ApplicationProto.getDescriptor(); com.google.cloud.securitycenter.v2.AttackExposureProto.getDescriptor(); diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/InvocationReference.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/InvocationReference.java new file mode 100644 index 000000000000..2eaaef55ffbc --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/InvocationReference.java @@ -0,0 +1,597 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +/** + * + * + *
+ * Represents a reference to a specific OpenTelemetry invocation.
+ * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.InvocationReference} + */ +@com.google.protobuf.Generated +public final class InvocationReference extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.cloud.securitycenter.v2.InvocationReference) + InvocationReferenceOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "InvocationReference"); + } + + // Use InvocationReference.newBuilder() to construct. + private InvocationReference(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private InvocationReference() { + invocationId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_InvocationReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_InvocationReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.InvocationReference.class, + com.google.cloud.securitycenter.v2.InvocationReference.Builder.class); + } + + public static final int INVOCATION_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object invocationId_ = ""; + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The invocationId. + */ + @java.lang.Override + public java.lang.String getInvocationId() { + java.lang.Object ref = invocationId_; + 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(); + invocationId_ = s; + return s; + } + } + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The bytes for invocationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInvocationIdBytes() { + java.lang.Object ref = invocationId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + invocationId_ = 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.GeneratedMessage.isStringEmpty(invocationId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, invocationId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(invocationId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, invocationId_); + } + 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.cloud.securitycenter.v2.InvocationReference)) { + return super.equals(obj); + } + com.google.cloud.securitycenter.v2.InvocationReference other = + (com.google.cloud.securitycenter.v2.InvocationReference) obj; + + if (!getInvocationId().equals(other.getInvocationId())) 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) + INVOCATION_ID_FIELD_NUMBER; + hash = (53 * hash) + getInvocationId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + com.google.cloud.securitycenter.v2.InvocationReference 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Represents a reference to a specific OpenTelemetry invocation.
+   * 
+ * + * Protobuf type {@code google.cloud.securitycenter.v2.InvocationReference} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.securitycenter.v2.InvocationReference) + com.google.cloud.securitycenter.v2.InvocationReferenceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_InvocationReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_InvocationReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.securitycenter.v2.InvocationReference.class, + com.google.cloud.securitycenter.v2.InvocationReference.Builder.class); + } + + // Construct using com.google.cloud.securitycenter.v2.InvocationReference.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + invocationId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.securitycenter.v2.AgentAnomalyProto + .internal_static_google_cloud_securitycenter_v2_InvocationReference_descriptor; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.InvocationReference getDefaultInstanceForType() { + return com.google.cloud.securitycenter.v2.InvocationReference.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.InvocationReference build() { + com.google.cloud.securitycenter.v2.InvocationReference result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.securitycenter.v2.InvocationReference buildPartial() { + com.google.cloud.securitycenter.v2.InvocationReference result = + new com.google.cloud.securitycenter.v2.InvocationReference(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.securitycenter.v2.InvocationReference result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.invocationId_ = invocationId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.securitycenter.v2.InvocationReference) { + return mergeFrom((com.google.cloud.securitycenter.v2.InvocationReference) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.securitycenter.v2.InvocationReference other) { + if (other == com.google.cloud.securitycenter.v2.InvocationReference.getDefaultInstance()) + return this; + if (!other.getInvocationId().isEmpty()) { + invocationId_ = other.invocationId_; + bitField0_ |= 0x00000001; + 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: + { + invocationId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + 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 invocationId_ = ""; + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @return The invocationId. + */ + public java.lang.String getInvocationId() { + java.lang.Object ref = invocationId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + invocationId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @return The bytes for invocationId. + */ + public com.google.protobuf.ByteString getInvocationIdBytes() { + java.lang.Object ref = invocationId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + invocationId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @param value The invocationId to set. + * @return This builder for chaining. + */ + public Builder setInvocationId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + invocationId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @return This builder for chaining. + */ + public Builder clearInvocationId() { + invocationId_ = getDefaultInstance().getInvocationId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * The unique identifier of the invocation.
+     * 
+ * + * string invocation_id = 1; + * + * @param value The bytes for invocationId to set. + * @return This builder for chaining. + */ + public Builder setInvocationIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + invocationId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.cloud.securitycenter.v2.InvocationReference) + } + + // @@protoc_insertion_point(class_scope:google.cloud.securitycenter.v2.InvocationReference) + private static final com.google.cloud.securitycenter.v2.InvocationReference DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.securitycenter.v2.InvocationReference(); + } + + public static com.google.cloud.securitycenter.v2.InvocationReference getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public InvocationReference 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.cloud.securitycenter.v2.InvocationReference getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/InvocationReferenceOrBuilder.java b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/InvocationReferenceOrBuilder.java new file mode 100644 index 000000000000..e2ed2ed05f2d --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/java/com/google/cloud/securitycenter/v2/InvocationReferenceOrBuilder.java @@ -0,0 +1,54 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/cloud/securitycenter/v2/agent_anomaly.proto +// Protobuf Java Version: 4.33.2 + +package com.google.cloud.securitycenter.v2; + +@com.google.protobuf.Generated +public interface InvocationReferenceOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.securitycenter.v2.InvocationReference) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The invocationId. + */ + java.lang.String getInvocationId(); + + /** + * + * + *
+   * The unique identifier of the invocation.
+   * 
+ * + * string invocation_id = 1; + * + * @return The bytes for invocationId. + */ + com.google.protobuf.ByteString getInvocationIdBytes(); +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent.proto b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent.proto new file mode 100644 index 000000000000..f012b35a49ba --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent.proto @@ -0,0 +1,35 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AgentProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents a monitored AI Agent. +message Agent { + // Identifier of the agent. + string id = 1; + + // The user friendly name of the specific agent instance where the finding was + // detected, for example, "Banking Agent". + string display_name = 2; +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent_anomaly.proto b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent_anomaly.proto new file mode 100644 index 000000000000..0bd6e05cacdc --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent_anomaly.proto @@ -0,0 +1,88 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AgentAnomalyProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents details about an anomaly detected in an AI agent's behavior. +message AgentAnomaly { + // The overall confidence score indicating the likelihood that this session + // contains a true anomaly. The score ranges from 0.0 to 1.0, where 1.0 + // signifies 100% confidence in the presence of an anomaly and 0.0 signifies + // 0% confidence. + double confidence_score = 1; + + // The list of references to specific detectors that identified anomalies + // within this session. + repeated DetectorReference detector_references = 2; + + // References to the OpenTelemetry invocations. + repeated InvocationReference invocation_references = 3; +} + +// Represents a reference to a specific anomaly detector. +message DetectorReference { + // Severity levels for detectors. + enum Severity { + // Unspecified severity. + SEVERITY_UNSPECIFIED = 0; + + // Critical severity. + CRITICAL = 1; + + // High severity. + HIGH = 2; + + // Medium severity. + MEDIUM = 3; + + // Low severity. + LOW = 4; + } + + // The severity of the detector. + Severity severity = 1; + + // The unique identifier of the detector. + string detector_id = 2; + + // A human readable name for the detector, providing context on its purpose. + // For example, "ASI02: Tool Misuse", or "Excessive API Calls". + string display_name = 3; + + // A detailed explanation generated by an LLM or the detector itself, + // describing why this specific anomaly was flagged. This provides rationale + // and context for the detection. + string explanation = 4; + + // Recommended steps or actions to remediate or investigate the anomaly + // flagged by this detector. These could include configuration changes, code + // adjustments, or further diagnostic procedures. + string recommendation = 5; +} + +// Represents a reference to a specific OpenTelemetry invocation. +message InvocationReference { + // The unique identifier of the invocation. + string invocation_id = 1; +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent_session.proto b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent_session.proto new file mode 100644 index 000000000000..c4439c3d6853 --- /dev/null +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/agent_session.proto @@ -0,0 +1,31 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.securitycenter.v2; + +option csharp_namespace = "Google.Cloud.SecurityCenter.V2"; +option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb"; +option java_multiple_files = true; +option java_outer_classname = "AgentSessionProto"; +option java_package = "com.google.cloud.securitycenter.v2"; +option php_namespace = "Google\\Cloud\\SecurityCenter\\V2"; +option ruby_package = "Google::Cloud::SecurityCenter::V2"; + +// Represents a conversational session where the finding occurred. +message AgentSession { + // The session ID of a conversation. + string session_id = 1; +} diff --git a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/finding.proto b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/finding.proto index 73be5a018363..1a736a603bf4 100644 --- a/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/finding.proto +++ b/java-securitycenter/proto-google-cloud-securitycenter-v2/src/main/proto/google/cloud/securitycenter/v2/finding.proto @@ -20,6 +20,9 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/securitycenter/v2/access.proto"; import "google/cloud/securitycenter/v2/affected_resources.proto"; +import "google/cloud/securitycenter/v2/agent.proto"; +import "google/cloud/securitycenter/v2/agent_anomaly.proto"; +import "google/cloud/securitycenter/v2/agent_session.proto"; import "google/cloud/securitycenter/v2/ai_model.proto"; import "google/cloud/securitycenter/v2/application.proto"; import "google/cloud/securitycenter/v2/attack_exposure.proto"; @@ -543,4 +546,13 @@ message Finding { // VertexAi associated with the finding. VertexAi vertex_ai = 72; + + // Primary Agent that the specified finding was flagged for + Agent agent = 81; + + // Conversational session(s) where the finding occurred. + repeated AgentSession agent_sessions = 82; + + // Details about behavior anomalies detected in AI agents. + AgentAnomaly agent_anomaly = 83; } diff --git a/java-shopping-merchant-products/google-shopping-merchant-products/src/main/resources/META-INF/native-image/com.google.shopping.merchant.products.v1/reflect-config.json b/java-shopping-merchant-products/google-shopping-merchant-products/src/main/resources/META-INF/native-image/com.google.shopping.merchant.products.v1/reflect-config.json index dcfbcdfc0489..3ba6382ebcf7 100644 --- a/java-shopping-merchant-products/google-shopping-merchant-products/src/main/resources/META-INF/native-image/com.google.shopping.merchant.products.v1/reflect-config.json +++ b/java-shopping-merchant-products/google-shopping-merchant-products/src/main/resources/META-INF/native-image/com.google.shopping.merchant.products.v1/reflect-config.json @@ -1637,6 +1637,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.shopping.merchant.products.v1.PickupCost", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.PickupCost$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.shopping.merchant.products.v1.PickupMethod", "queryAllDeclaredConstructors": true, @@ -1682,6 +1700,15 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$AmenityFeature", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Builder", "queryAllDeclaredConstructors": true, @@ -1718,6 +1745,267 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Co2Emissions", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Co2Emissions$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Co2Emissions$Unit", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$DisplayAddress", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$DisplayAddress$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$EmissionsStandard", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$EnergyConsumption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$EnergyConsumption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$EnergyConsumption$Unit", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$EngineType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$FuelConsumption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$FuelConsumption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$FuelConsumption$Unit", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Mileage", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Mileage$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Mileage$Unit", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$PetPolicy", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$PetPolicy$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$PetPolicy$PetType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$ProductFee", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$ProductFee$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$ProductFee$FeeType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$PropertyType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$QuestionAndAnswer", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$QuestionAndAnswer$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$RelatedProduct", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$RelatedProduct$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$RelatedProduct$IdType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$RelatedProduct$RelationshipType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.shopping.merchant.products.v1.ProductAttributes$ShippingBusinessDaysConfig", "queryAllDeclaredConstructors": true, @@ -1736,6 +2024,105 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$SpecialtyHousingType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$UnitArea", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$UnitArea$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$UnitArea$Unit", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$UtilitiesIncluded", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$VariantOption", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$VariantOption$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$VehicleBodyStyle", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$VehiclePriceType", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Warranty", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductAttributes$Warranty$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.shopping.merchant.products.v1.ProductCertification", "queryAllDeclaredConstructors": true, @@ -1826,6 +2213,33 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.shopping.merchant.products.v1.ProductMinimumOrderValue", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductMinimumOrderValue$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.shopping.merchant.products.v1.ProductMinimumOrderValue$Surface", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.shopping.merchant.products.v1.ProductStatus", "queryAllDeclaredConstructors": true, diff --git a/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientHttpJsonTest.java b/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientHttpJsonTest.java index 322861d210ab..96494204745e 100644 --- a/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientHttpJsonTest.java +++ b/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientHttpJsonTest.java @@ -93,6 +93,7 @@ public void getProductTest() throws Exception { .addAllCustomAttributes(new ArrayList()) .setProductStatus(ProductStatus.newBuilder().build()) .setAutomatedDiscounts(AutomatedDiscounts.newBuilder().build()) + .setArchived(true) .build(); mockService.addResponse(expectedResponse); @@ -148,6 +149,7 @@ public void getProductTest2() throws Exception { .addAllCustomAttributes(new ArrayList()) .setProductStatus(ProductStatus.newBuilder().build()) .setAutomatedDiscounts(AutomatedDiscounts.newBuilder().build()) + .setArchived(true) .build(); mockService.addResponse(expectedResponse); diff --git a/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientTest.java b/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientTest.java index 3fc52b71c29d..268e170257c0 100644 --- a/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientTest.java +++ b/java-shopping-merchant-products/google-shopping-merchant-products/src/test/java/com/google/shopping/merchant/products/v1/ProductsServiceClientTest.java @@ -96,6 +96,7 @@ public void getProductTest() throws Exception { .addAllCustomAttributes(new ArrayList()) .setProductStatus(ProductStatus.newBuilder().build()) .setAutomatedDiscounts(AutomatedDiscounts.newBuilder().build()) + .setArchived(true) .build(); mockProductsService.addResponse(expectedResponse); @@ -145,6 +146,7 @@ public void getProductTest2() throws Exception { .addAllCustomAttributes(new ArrayList()) .setProductStatus(ProductStatus.newBuilder().build()) .setAutomatedDiscounts(AutomatedDiscounts.newBuilder().build()) + .setArchived(true) .build(); mockProductsService.addResponse(expectedResponse); diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/PickupCost.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/PickupCost.java new file mode 100644 index 000000000000..2a9c576c57e9 --- /dev/null +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/PickupCost.java @@ -0,0 +1,1020 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/shopping/merchant/products/v1/products_common.proto +// Protobuf Java Version: 4.33.2 + +package com.google.shopping.merchant.products.v1; + +/** + * + * + *
+ * The pickup cost of the item.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.PickupCost} + */ +@com.google.protobuf.Generated +public final class PickupCost extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.PickupCost) + PickupCostOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "PickupCost"); + } + + // Use PickupCost.newBuilder() to construct. + private PickupCost(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private PickupCost() {} + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_PickupCost_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_PickupCost_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.PickupCost.class, + com.google.shopping.merchant.products.v1.PickupCost.Builder.class); + } + + private int bitField0_; + public static final int FLAT_RATE_FIELD_NUMBER = 1; + private com.google.shopping.type.Price flatRate_; + + /** + * + * + *
+   * Required. The flat rate pickup cost of the item.
+   * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the flatRate field is set. + */ + @java.lang.Override + public boolean hasFlatRate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Required. The flat rate pickup cost of the item.
+   * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The flatRate. + */ + @java.lang.Override + public com.google.shopping.type.Price getFlatRate() { + return flatRate_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatRate_; + } + + /** + * + * + *
+   * Required. The flat rate pickup cost of the item.
+   * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getFlatRateOrBuilder() { + return flatRate_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatRate_; + } + + public static final int FREE_THRESHOLD_FIELD_NUMBER = 2; + private com.google.shopping.type.Price freeThreshold_; + + /** + * + * + *
+   * Optional. The price threshold above which pickup is free of charge.
+   * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the freeThreshold field is set. + */ + @java.lang.Override + public boolean hasFreeThreshold() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Optional. The price threshold above which pickup is free of charge.
+   * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The freeThreshold. + */ + @java.lang.Override + public com.google.shopping.type.Price getFreeThreshold() { + return freeThreshold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : freeThreshold_; + } + + /** + * + * + *
+   * Optional. The price threshold above which pickup is free of charge.
+   * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getFreeThresholdOrBuilder() { + return freeThreshold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : freeThreshold_; + } + + 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, getFlatRate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getFreeThreshold()); + } + 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, getFlatRate()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getFreeThreshold()); + } + 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.products.v1.PickupCost)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.PickupCost other = + (com.google.shopping.merchant.products.v1.PickupCost) obj; + + if (hasFlatRate() != other.hasFlatRate()) return false; + if (hasFlatRate()) { + if (!getFlatRate().equals(other.getFlatRate())) return false; + } + if (hasFreeThreshold() != other.hasFreeThreshold()) return false; + if (hasFreeThreshold()) { + if (!getFreeThreshold().equals(other.getFreeThreshold())) 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 (hasFlatRate()) { + hash = (37 * hash) + FLAT_RATE_FIELD_NUMBER; + hash = (53 * hash) + getFlatRate().hashCode(); + } + if (hasFreeThreshold()) { + hash = (37 * hash) + FREE_THRESHOLD_FIELD_NUMBER; + hash = (53 * hash) + getFreeThreshold().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.PickupCost 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.products.v1.PickupCost parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.PickupCost 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.products.v1.PickupCost parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.PickupCost parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.PickupCost 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * The pickup cost of the item.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.PickupCost} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.PickupCost) + com.google.shopping.merchant.products.v1.PickupCostOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_PickupCost_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_PickupCost_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.PickupCost.class, + com.google.shopping.merchant.products.v1.PickupCost.Builder.class); + } + + // Construct using com.google.shopping.merchant.products.v1.PickupCost.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetFlatRateFieldBuilder(); + internalGetFreeThresholdFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + flatRate_ = null; + if (flatRateBuilder_ != null) { + flatRateBuilder_.dispose(); + flatRateBuilder_ = null; + } + freeThreshold_ = null; + if (freeThresholdBuilder_ != null) { + freeThresholdBuilder_.dispose(); + freeThresholdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_PickupCost_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupCost getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.PickupCost.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupCost build() { + com.google.shopping.merchant.products.v1.PickupCost result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupCost buildPartial() { + com.google.shopping.merchant.products.v1.PickupCost result = + new com.google.shopping.merchant.products.v1.PickupCost(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.shopping.merchant.products.v1.PickupCost result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.flatRate_ = flatRateBuilder_ == null ? flatRate_ : flatRateBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.freeThreshold_ = + freeThresholdBuilder_ == null ? freeThreshold_ : freeThresholdBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.shopping.merchant.products.v1.PickupCost) { + return mergeFrom((com.google.shopping.merchant.products.v1.PickupCost) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.products.v1.PickupCost other) { + if (other == com.google.shopping.merchant.products.v1.PickupCost.getDefaultInstance()) + return this; + if (other.hasFlatRate()) { + mergeFlatRate(other.getFlatRate()); + } + if (other.hasFreeThreshold()) { + mergeFreeThreshold(other.getFreeThreshold()); + } + 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( + internalGetFlatRateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + input.readMessage( + internalGetFreeThresholdFieldBuilder().getBuilder(), extensionRegistry); + 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 com.google.shopping.type.Price flatRate_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + flatRateBuilder_; + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the flatRate field is set. + */ + public boolean hasFlatRate() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The flatRate. + */ + public com.google.shopping.type.Price getFlatRate() { + if (flatRateBuilder_ == null) { + return flatRate_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatRate_; + } else { + return flatRateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setFlatRate(com.google.shopping.type.Price value) { + if (flatRateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + flatRate_ = value; + } else { + flatRateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setFlatRate(com.google.shopping.type.Price.Builder builderForValue) { + if (flatRateBuilder_ == null) { + flatRate_ = builderForValue.build(); + } else { + flatRateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder mergeFlatRate(com.google.shopping.type.Price value) { + if (flatRateBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && flatRate_ != null + && flatRate_ != com.google.shopping.type.Price.getDefaultInstance()) { + getFlatRateBuilder().mergeFrom(value); + } else { + flatRate_ = value; + } + } else { + flatRateBuilder_.mergeFrom(value); + } + if (flatRate_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder clearFlatRate() { + bitField0_ = (bitField0_ & ~0x00000001); + flatRate_ = null; + if (flatRateBuilder_ != null) { + flatRateBuilder_.dispose(); + flatRateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.shopping.type.Price.Builder getFlatRateBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return internalGetFlatRateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.shopping.type.PriceOrBuilder getFlatRateOrBuilder() { + if (flatRateBuilder_ != null) { + return flatRateBuilder_.getMessageOrBuilder(); + } else { + return flatRate_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatRate_; + } + } + + /** + * + * + *
+     * Required. The flat rate pickup cost of the item.
+     * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetFlatRateFieldBuilder() { + if (flatRateBuilder_ == null) { + flatRateBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getFlatRate(), getParentForChildren(), isClean()); + flatRate_ = null; + } + return flatRateBuilder_; + } + + private com.google.shopping.type.Price freeThreshold_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + freeThresholdBuilder_; + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the freeThreshold field is set. + */ + public boolean hasFreeThreshold() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The freeThreshold. + */ + public com.google.shopping.type.Price getFreeThreshold() { + if (freeThresholdBuilder_ == null) { + return freeThreshold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : freeThreshold_; + } else { + return freeThresholdBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setFreeThreshold(com.google.shopping.type.Price value) { + if (freeThresholdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + freeThreshold_ = value; + } else { + freeThresholdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setFreeThreshold(com.google.shopping.type.Price.Builder builderForValue) { + if (freeThresholdBuilder_ == null) { + freeThreshold_ = builderForValue.build(); + } else { + freeThresholdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeFreeThreshold(com.google.shopping.type.Price value) { + if (freeThresholdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && freeThreshold_ != null + && freeThreshold_ != com.google.shopping.type.Price.getDefaultInstance()) { + getFreeThresholdBuilder().mergeFrom(value); + } else { + freeThreshold_ = value; + } + } else { + freeThresholdBuilder_.mergeFrom(value); + } + if (freeThreshold_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearFreeThreshold() { + bitField0_ = (bitField0_ & ~0x00000002); + freeThreshold_ = null; + if (freeThresholdBuilder_ != null) { + freeThresholdBuilder_.dispose(); + freeThresholdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.shopping.type.Price.Builder getFreeThresholdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return internalGetFreeThresholdFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.shopping.type.PriceOrBuilder getFreeThresholdOrBuilder() { + if (freeThresholdBuilder_ != null) { + return freeThresholdBuilder_.getMessageOrBuilder(); + } else { + return freeThreshold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : freeThreshold_; + } + } + + /** + * + * + *
+     * Optional. The price threshold above which pickup is free of charge.
+     * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetFreeThresholdFieldBuilder() { + if (freeThresholdBuilder_ == null) { + freeThresholdBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getFreeThreshold(), getParentForChildren(), isClean()); + freeThreshold_ = null; + } + return freeThresholdBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.PickupCost) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.PickupCost) + private static final com.google.shopping.merchant.products.v1.PickupCost DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.products.v1.PickupCost(); + } + + public static com.google.shopping.merchant.products.v1.PickupCost getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PickupCost 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.products.v1.PickupCost getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/PickupCostOrBuilder.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/PickupCostOrBuilder.java new file mode 100644 index 000000000000..1c296987576e --- /dev/null +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/PickupCostOrBuilder.java @@ -0,0 +1,114 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/shopping/merchant/products/v1/products_common.proto +// Protobuf Java Version: 4.33.2 + +package com.google.shopping.merchant.products.v1; + +@com.google.protobuf.Generated +public interface PickupCostOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.PickupCost) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The flat rate pickup cost of the item.
+   * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the flatRate field is set. + */ + boolean hasFlatRate(); + + /** + * + * + *
+   * Required. The flat rate pickup cost of the item.
+   * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The flatRate. + */ + com.google.shopping.type.Price getFlatRate(); + + /** + * + * + *
+   * Required. The flat rate pickup cost of the item.
+   * 
+ * + * + * optional .google.shopping.type.Price flat_rate = 1 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.shopping.type.PriceOrBuilder getFlatRateOrBuilder(); + + /** + * + * + *
+   * Optional. The price threshold above which pickup is free of charge.
+   * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the freeThreshold field is set. + */ + boolean hasFreeThreshold(); + + /** + * + * + *
+   * Optional. The price threshold above which pickup is free of charge.
+   * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The freeThreshold. + */ + com.google.shopping.type.Price getFreeThreshold(); + + /** + * + * + *
+   * Optional. The price threshold above which pickup is free of charge.
+   * 
+ * + * + * optional .google.shopping.type.Price free_threshold = 2 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.type.PriceOrBuilder getFreeThresholdOrBuilder(); +} diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Product.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Product.java index b62bdc146fe9..465234ff0970 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Product.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Product.java @@ -840,6 +840,30 @@ public com.google.shopping.merchant.products.v1.AutomatedDiscounts getAutomatedD : automatedDiscounts_; } + public static final int ARCHIVED_FIELD_NUMBER = 14; + private boolean archived_ = false; + + /** + * + * + *
+   * Output only. Determines whether the product is
+   * [archived](https://support.google.com/merchants/answer/11909930).
+   *
+   * To archive or restore your product, visit Merchant Center products page.
+   * Learn also more about [offer
+   * visibility](https://support.google.com/merchants/answer/12488713).
+   * 
+ * + * bool archived = 14 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The archived. + */ + @java.lang.Override + public boolean getArchived() { + return archived_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -887,6 +911,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(13, getProductAttributes()); } + if (archived_ != false) { + output.writeBool(14, archived_); + } if (!com.google.protobuf.GeneratedMessage.isStringEmpty(base64EncodedName_)) { com.google.protobuf.GeneratedMessage.writeString(output, 15, base64EncodedName_); } @@ -932,6 +959,9 @@ public int getSerializedSize() { if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getProductAttributes()); } + if (archived_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(14, archived_); + } if (!com.google.protobuf.GeneratedMessage.isStringEmpty(base64EncodedName_)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(15, base64EncodedName_); } @@ -975,6 +1005,7 @@ public boolean equals(final java.lang.Object obj) { if (hasAutomatedDiscounts()) { if (!getAutomatedDiscounts().equals(other.getAutomatedDiscounts())) return false; } + if (getArchived() != other.getArchived()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -1020,6 +1051,8 @@ public int hashCode() { hash = (37 * hash) + AUTOMATED_DISCOUNTS_FIELD_NUMBER; hash = (53 * hash) + getAutomatedDiscounts().hashCode(); } + hash = (37 * hash) + ARCHIVED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getArchived()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -1214,6 +1247,7 @@ public Builder clear() { automatedDiscountsBuilder_.dispose(); automatedDiscountsBuilder_ = null; } + archived_ = false; return this; } @@ -1309,6 +1343,9 @@ private void buildPartial0(com.google.shopping.merchant.products.v1.Product resu : automatedDiscountsBuilder_.build(); to_bitField0_ |= 0x00000008; } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.archived_ = archived_; + } result.bitField0_ |= to_bitField0_; } @@ -1397,6 +1434,9 @@ public Builder mergeFrom(com.google.shopping.merchant.products.v1.Product other) if (other.hasAutomatedDiscounts()) { mergeAutomatedDiscounts(other.getAutomatedDiscounts()); } + if (other.getArchived() != false) { + setArchived(other.getArchived()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1499,6 +1539,12 @@ public Builder mergeFrom( bitField0_ |= 0x00000100; break; } // case 106 + case 112: + { + archived_ = input.readBool(); + bitField0_ |= 0x00001000; + break; + } // case 112 case 122: { base64EncodedName_ = input.readStringRequireUtf8(); @@ -3682,6 +3728,77 @@ public Builder clearAutomatedDiscounts() { return automatedDiscountsBuilder_; } + private boolean archived_; + + /** + * + * + *
+     * Output only. Determines whether the product is
+     * [archived](https://support.google.com/merchants/answer/11909930).
+     *
+     * To archive or restore your product, visit Merchant Center products page.
+     * Learn also more about [offer
+     * visibility](https://support.google.com/merchants/answer/12488713).
+     * 
+ * + * bool archived = 14 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The archived. + */ + @java.lang.Override + public boolean getArchived() { + return archived_; + } + + /** + * + * + *
+     * Output only. Determines whether the product is
+     * [archived](https://support.google.com/merchants/answer/11909930).
+     *
+     * To archive or restore your product, visit Merchant Center products page.
+     * Learn also more about [offer
+     * visibility](https://support.google.com/merchants/answer/12488713).
+     * 
+ * + * bool archived = 14 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @param value The archived to set. + * @return This builder for chaining. + */ + public Builder setArchived(boolean value) { + + archived_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Output only. Determines whether the product is
+     * [archived](https://support.google.com/merchants/answer/11909930).
+     *
+     * To archive or restore your product, visit Merchant Center products page.
+     * Learn also more about [offer
+     * visibility](https://support.google.com/merchants/answer/12488713).
+     * 
+ * + * bool archived = 14 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return This builder for chaining. + */ + public Builder clearArchived() { + bitField0_ = (bitField0_ & ~0x00001000); + archived_ = false; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.Product) } diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributes.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributes.java index b69c78286b2c..d9f0a89dade6 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributes.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributes.java @@ -118,6 +118,28 @@ private ProductAttributes() { certifications_ = java.util.Collections.emptyList(); sustainabilityIncentives_ = java.util.Collections.emptyList(); videoLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + minimumOrderValues_ = java.util.Collections.emptyList(); + vin_ = ""; + model_ = ""; + trim_ = ""; + bodyStyle_ = 0; + dateFirstRegistered_ = ""; + engine_ = 0; + emissionsStandard_ = 0; + vehiclePriceType_ = 0; + neighborhood_ = ""; + propertyName_ = ""; + propertyType_ = 0; + amenityFeature_ = emptyIntList(); + utilitiesIncluded_ = emptyIntList(); + specialtyHousingType_ = 0; + productFee_ = java.util.Collections.emptyList(); + shortTitle_ = ""; + questionsAndAnswers_ = java.util.Collections.emptyList(); + itemGroupTitle_ = ""; + documentLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + variantOptions_ = java.util.Collections.emptyList(); + relatedProducts_ = java.util.Collections.emptyList(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @@ -1666,127 +1688,340 @@ private CarrierPriceOption(int value) { // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption) } - public interface ShippingBusinessDaysConfigOrBuilder - extends - // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) - com.google.protobuf.MessageOrBuilder { - + /** + * + * + *
+   * The vehicle body style. See the [Body
+   * style](https://support.google.com/google-ads/answer/14157085) for more
+   * information.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle} + */ + public enum VehicleBodyStyle implements com.google.protobuf.ProtocolMessageEnum { /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Unspecified vehicle body style.
      * 
* - * optional string country = 1; + * VEHICLE_BODY_STYLE_UNSPECIFIED = 0; + */ + VEHICLE_BODY_STYLE_UNSPECIFIED(0), + /** * - * @return Whether the country field is set. + * + *
+     * ATV Sport.
+     * 
+ * + * ATV_SPORT = 1; */ - boolean hasCountry(); - + ATV_SPORT(1), /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * ATV Touring.
      * 
* - * optional string country = 1; + * ATV_TOURING = 2; + */ + ATV_TOURING(2), + /** * - * @return The country. + * + *
+     * ATV Utility.
+     * 
+ * + * ATV_UTILITY = 3; */ - java.lang.String getCountry(); - + ATV_UTILITY(3), /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * ATV Youth.
      * 
* - * optional string country = 1; + * ATV_YOUTH = 4; + */ + ATV_YOUTH(4), + /** * - * @return The bytes for country. + * + *
+     * City car.
+     * 
+ * + * CITY_CAR = 5; */ - com.google.protobuf.ByteString getCountryBytes(); - + CITY_CAR(5), /** * * *
-     * Effective days of the week considered for the delivery time calculation.
-     * May not be empty. The more business days included the faster the
-     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-     * see [Shipping handling business
-     * days](https://support.google.com/merchants/answer/16072859).
+     * Class A motorhome.
      * 
* - * optional string business_days = 2; + * CLASS_A_MOTORHOME = 6; + */ + CLASS_A_MOTORHOME(6), + /** * - * @return Whether the businessDays field is set. + * + *
+     * Class B motorhome.
+     * 
+ * + * CLASS_B_MOTORHOME = 7; */ - boolean hasBusinessDays(); - + CLASS_B_MOTORHOME(7), /** * * *
-     * Effective days of the week considered for the delivery time calculation.
-     * May not be empty. The more business days included the faster the
-     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-     * see [Shipping handling business
-     * days](https://support.google.com/merchants/answer/16072859).
+     * Class C motorhome.
      * 
* - * optional string business_days = 2; + * CLASS_C_MOTORHOME = 8; + */ + CLASS_C_MOTORHOME(8), + /** * - * @return The businessDays. + * + *
+     * Compact SUV.
+     * 
+ * + * COMPACT_SUV = 9; */ - java.lang.String getBusinessDays(); - + COMPACT_SUV(9), /** * * *
-     * Effective days of the week considered for the delivery time calculation.
-     * May not be empty. The more business days included the faster the
-     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-     * see [Shipping handling business
-     * days](https://support.google.com/merchants/answer/16072859).
+     * Convertible.
      * 
* - * optional string business_days = 2; + * CONVERTIBLE = 10; + */ + CONVERTIBLE(10), + /** * - * @return The bytes for businessDays. + * + *
+     * Coupe.
+     * 
+ * + * COUPE = 11; */ - com.google.protobuf.ByteString getBusinessDaysBytes(); - } - - /** - * - * - *
-   * The business days during which orders are on their path to fulfillment.
-   * If not provided, Monday to Friday business days will be assumed.
-   * 
- * - * Protobuf type {@code - * google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig} - */ - public static final class ShippingBusinessDaysConfig extends com.google.protobuf.GeneratedMessage - implements - // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) - ShippingBusinessDaysConfigOrBuilder { - private static final long serialVersionUID = 0L; + COUPE(11), + /** + * + * + *
+     * Crossover.
+     * 
+ * + * CROSSOVER = 12; + */ + CROSSOVER(12), + /** + * + * + *
+     * Fifth wheel.
+     * 
+ * + * FIFTH_WHEEL = 13; + */ + FIFTH_WHEEL(13), + /** + * + * + *
+     * Full size van.
+     * 
+ * + * FULL_SIZE_VAN = 14; + */ + FULL_SIZE_VAN(14), + /** + * + * + *
+     * Hatchback.
+     * 
+ * + * HATCHBACK = 15; + */ + HATCHBACK(15), + /** + * + * + *
+     * Limousine.
+     * 
+ * + * LIMOUSINE = 16; + */ + LIMOUSINE(16), + /** + * + * + *
+     * Minivan.
+     * 
+ * + * MINIVAN = 17; + */ + MINIVAN(17), + /** + * + * + *
+     * Notchback.
+     * 
+ * + * NOTCHBACK = 18; + */ + NOTCHBACK(18), + /** + * + * + *
+     * Pop up camper.
+     * 
+ * + * POP_UP_CAMPER = 19; + */ + POP_UP_CAMPER(19), + /** + * + * + *
+     * Sedan.
+     * 
+ * + * SEDAN = 20; + */ + SEDAN(20), + /** + * + * + *
+     * Side by side.
+     * 
+ * + * SIDE_BY_SIDE = 21; + */ + SIDE_BY_SIDE(21), + /** + * + * + *
+     * Station wagon.
+     * 
+ * + * STATION_WAGON = 22; + */ + STATION_WAGON(22), + /** + * + * + *
+     * SUV.
+     * 
+ * + * SUV = 23; + */ + SUV(23), + /** + * + * + *
+     * Travel trailer.
+     * 
+ * + * TRAVEL_TRAILER = 24; + */ + TRAVEL_TRAILER(24), + /** + * + * + *
+     * Truck.
+     * 
+ * + * TRUCK = 25; + */ + TRUCK(25), + /** + * + * + *
+     * Truck camper.
+     * 
+ * + * TRUCK_CAMPER = 26; + */ + TRUCK_CAMPER(26), + /** + * + * + *
+     * Ute.
+     * 
+ * + * UTE = 27; + */ + UTE(27), + /** + * + * + *
+     * UTV Recreational utility.
+     * 
+ * + * UTV_RECREATIONAL_UTILITY = 28; + */ + UTV_RECREATIONAL_UTILITY(28), + /** + * + * + *
+     * UTV Sport.
+     * 
+ * + * UTV_SPORT = 29; + */ + UTV_SPORT(29), + /** + * + * + *
+     * UTV Utility.
+     * 
+ * + * UTV_UTILITY = 30; + */ + UTV_UTILITY(30), + /** + * + * + *
+     * UTV Youth.
+     * 
+ * + * UTV_YOUTH = 31; + */ + UTV_YOUTH(31), + UNRECOGNIZED(-1), + ; static { com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( @@ -1795,5018 +2030,4185 @@ public static final class ShippingBusinessDaysConfig extends com.google.protobuf /* minor= */ 33, /* patch= */ 2, /* suffix= */ "", - "ShippingBusinessDaysConfig"); + "VehicleBodyStyle"); } - // Use ShippingBusinessDaysConfig.newBuilder() to construct. - private ShippingBusinessDaysConfig(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - } + /** + * + * + *
+     * Unspecified vehicle body style.
+     * 
+ * + * VEHICLE_BODY_STYLE_UNSPECIFIED = 0; + */ + public static final int VEHICLE_BODY_STYLE_UNSPECIFIED_VALUE = 0; - private ShippingBusinessDaysConfig() { - country_ = ""; - businessDays_ = ""; - } + /** + * + * + *
+     * ATV Sport.
+     * 
+ * + * ATV_SPORT = 1; + */ + public static final int ATV_SPORT_VALUE = 1; - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_descriptor; - } + /** + * + * + *
+     * ATV Touring.
+     * 
+ * + * ATV_TOURING = 2; + */ + public static final int ATV_TOURING_VALUE = 2; - @java.lang.Override - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .class, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder.class); - } + /** + * + * + *
+     * ATV Utility.
+     * 
+ * + * ATV_UTILITY = 3; + */ + public static final int ATV_UTILITY_VALUE = 3; - private int bitField0_; - public static final int COUNTRY_FIELD_NUMBER = 1; + /** + * + * + *
+     * ATV Youth.
+     * 
+ * + * ATV_YOUTH = 4; + */ + public static final int ATV_YOUTH_VALUE = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object country_ = ""; + /** + * + * + *
+     * City car.
+     * 
+ * + * CITY_CAR = 5; + */ + public static final int CITY_CAR_VALUE = 5; /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Class A motorhome.
      * 
* - * optional string country = 1; + * CLASS_A_MOTORHOME = 6; + */ + public static final int CLASS_A_MOTORHOME_VALUE = 6; + + /** * - * @return Whether the country field is set. + * + *
+     * Class B motorhome.
+     * 
+ * + * CLASS_B_MOTORHOME = 7; */ - @java.lang.Override - public boolean hasCountry() { - return ((bitField0_ & 0x00000001) != 0); - } + public static final int CLASS_B_MOTORHOME_VALUE = 7; /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Class C motorhome.
      * 
* - * optional string country = 1; + * CLASS_C_MOTORHOME = 8; + */ + public static final int CLASS_C_MOTORHOME_VALUE = 8; + + /** * - * @return The country. + * + *
+     * Compact SUV.
+     * 
+ * + * COMPACT_SUV = 9; */ - @java.lang.Override - public java.lang.String getCountry() { - java.lang.Object ref = country_; - 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(); - country_ = s; - return s; - } - } + public static final int COMPACT_SUV_VALUE = 9; /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Convertible.
      * 
* - * optional string country = 1; + * CONVERTIBLE = 10; + */ + public static final int CONVERTIBLE_VALUE = 10; + + /** * - * @return The bytes for country. + * + *
+     * Coupe.
+     * 
+ * + * COUPE = 11; */ - @java.lang.Override - public com.google.protobuf.ByteString getCountryBytes() { - java.lang.Object ref = country_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - country_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + public static final int COUPE_VALUE = 11; - public static final int BUSINESS_DAYS_FIELD_NUMBER = 2; + /** + * + * + *
+     * Crossover.
+     * 
+ * + * CROSSOVER = 12; + */ + public static final int CROSSOVER_VALUE = 12; - @SuppressWarnings("serial") - private volatile java.lang.Object businessDays_ = ""; + /** + * + * + *
+     * Fifth wheel.
+     * 
+ * + * FIFTH_WHEEL = 13; + */ + public static final int FIFTH_WHEEL_VALUE = 13; /** * * *
-     * Effective days of the week considered for the delivery time calculation.
-     * May not be empty. The more business days included the faster the
-     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-     * see [Shipping handling business
-     * days](https://support.google.com/merchants/answer/16072859).
+     * Full size van.
      * 
* - * optional string business_days = 2; + * FULL_SIZE_VAN = 14; + */ + public static final int FULL_SIZE_VAN_VALUE = 14; + + /** * - * @return Whether the businessDays field is set. + * + *
+     * Hatchback.
+     * 
+ * + * HATCHBACK = 15; */ - @java.lang.Override - public boolean hasBusinessDays() { - return ((bitField0_ & 0x00000002) != 0); - } + public static final int HATCHBACK_VALUE = 15; /** * * *
-     * Effective days of the week considered for the delivery time calculation.
-     * May not be empty. The more business days included the faster the
-     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-     * see [Shipping handling business
-     * days](https://support.google.com/merchants/answer/16072859).
+     * Limousine.
      * 
* - * optional string business_days = 2; + * LIMOUSINE = 16; + */ + public static final int LIMOUSINE_VALUE = 16; + + /** * - * @return The businessDays. + * + *
+     * Minivan.
+     * 
+ * + * MINIVAN = 17; */ - @java.lang.Override - public java.lang.String getBusinessDays() { - java.lang.Object ref = businessDays_; - 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(); - businessDays_ = s; - return s; - } - } + public static final int MINIVAN_VALUE = 17; /** * * *
-     * Effective days of the week considered for the delivery time calculation.
-     * May not be empty. The more business days included the faster the
-     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-     * see [Shipping handling business
-     * days](https://support.google.com/merchants/answer/16072859).
+     * Notchback.
      * 
* - * optional string business_days = 2; + * NOTCHBACK = 18; + */ + public static final int NOTCHBACK_VALUE = 18; + + /** * - * @return The bytes for businessDays. + * + *
+     * Pop up camper.
+     * 
+ * + * POP_UP_CAMPER = 19; */ - @java.lang.Override - public com.google.protobuf.ByteString getBusinessDaysBytes() { - java.lang.Object ref = businessDays_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - businessDays_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + public static final int POP_UP_CAMPER_VALUE = 19; - private byte memoizedIsInitialized = -1; + /** + * + * + *
+     * Sedan.
+     * 
+ * + * SEDAN = 20; + */ + public static final int SEDAN_VALUE = 20; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + /** + * + * + *
+     * Side by side.
+     * 
+ * + * SIDE_BY_SIDE = 21; + */ + public static final int SIDE_BY_SIDE_VALUE = 21; - memoizedIsInitialized = 1; - return true; - } + /** + * + * + *
+     * Station wagon.
+     * 
+ * + * STATION_WAGON = 22; + */ + public static final int STATION_WAGON_VALUE = 22; - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (((bitField0_ & 0x00000001) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 1, country_); - } - if (((bitField0_ & 0x00000002) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 2, businessDays_); - } - getUnknownFields().writeTo(output); - } + /** + * + * + *
+     * SUV.
+     * 
+ * + * SUV = 23; + */ + public static final int SUV_VALUE = 23; - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + /** + * + * + *
+     * Travel trailer.
+     * 
+ * + * TRAVEL_TRAILER = 24; + */ + public static final int TRAVEL_TRAILER_VALUE = 24; - size = 0; - if (((bitField0_ & 0x00000001) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(1, country_); - } - if (((bitField0_ & 0x00000002) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(2, businessDays_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } + /** + * + * + *
+     * Truck.
+     * 
+ * + * TRUCK = 25; + */ + public static final int TRUCK_VALUE = 25; - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj - instanceof - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig)) { - return super.equals(obj); - } - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig other = - (com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) - obj; + /** + * + * + *
+     * Truck camper.
+     * 
+ * + * TRUCK_CAMPER = 26; + */ + public static final int TRUCK_CAMPER_VALUE = 26; - if (hasCountry() != other.hasCountry()) return false; - if (hasCountry()) { - if (!getCountry().equals(other.getCountry())) return false; - } - if (hasBusinessDays() != other.hasBusinessDays()) return false; - if (hasBusinessDays()) { - if (!getBusinessDays().equals(other.getBusinessDays())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } + /** + * + * + *
+     * Ute.
+     * 
+ * + * UTE = 27; + */ + public static final int UTE_VALUE = 27; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasCountry()) { - hash = (37 * hash) + COUNTRY_FIELD_NUMBER; - hash = (53 * hash) + getCountry().hashCode(); - } - if (hasBusinessDays()) { - hash = (37 * hash) + BUSINESS_DAYS_FIELD_NUMBER; - hash = (53 * hash) + getBusinessDays().hashCode(); + /** + * + * + *
+     * UTV Recreational utility.
+     * 
+ * + * UTV_RECREATIONAL_UTILITY = 28; + */ + public static final int UTV_RECREATIONAL_UTILITY_VALUE = 28; + + /** + * + * + *
+     * UTV Sport.
+     * 
+ * + * UTV_SPORT = 29; + */ + public static final int UTV_SPORT_VALUE = 29; + + /** + * + * + *
+     * UTV Utility.
+     * 
+ * + * UTV_UTILITY = 30; + */ + public static final int UTV_UTILITY_VALUE = 30; + + /** + * + * + *
+     * UTV Youth.
+     * 
+ * + * UTV_YOUTH = 31; + */ + public static final int UTV_YOUTH_VALUE = 31; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; + return value; } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom(java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); + /** + * @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 VehicleBodyStyle valueOf(int value) { + return forNumber(value); } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom( - java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static VehicleBodyStyle forNumber(int value) { + switch (value) { + case 0: + return VEHICLE_BODY_STYLE_UNSPECIFIED; + case 1: + return ATV_SPORT; + case 2: + return ATV_TOURING; + case 3: + return ATV_UTILITY; + case 4: + return ATV_YOUTH; + case 5: + return CITY_CAR; + case 6: + return CLASS_A_MOTORHOME; + case 7: + return CLASS_B_MOTORHOME; + case 8: + return CLASS_C_MOTORHOME; + case 9: + return COMPACT_SUV; + case 10: + return CONVERTIBLE; + case 11: + return COUPE; + case 12: + return CROSSOVER; + case 13: + return FIFTH_WHEEL; + case 14: + return FULL_SIZE_VAN; + case 15: + return HATCHBACK; + case 16: + return LIMOUSINE; + case 17: + return MINIVAN; + case 18: + return NOTCHBACK; + case 19: + return POP_UP_CAMPER; + case 20: + return SEDAN; + case 21: + return SIDE_BY_SIDE; + case 22: + return STATION_WAGON; + case 23: + return SUV; + case 24: + return TRAVEL_TRAILER; + case 25: + return TRUCK; + case 26: + return TRUCK_CAMPER; + case 27: + return UTE; + case 28: + return UTV_RECREATIONAL_UTILITY; + case 29: + return UTV_SPORT; + case 30: + return UTV_UTILITY; + case 31: + return UTV_YOUTH; + default: + return null; + } } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom(com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + private static final com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public VehicleBodyStyle findValueByNumber(int number) { + return VehicleBodyStyle.forNumber(number); + } + }; - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); + 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 static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(1); } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException( - PARSER, input, extensionRegistry); - } + private static final VehicleBodyStyle[] VALUES = values(); - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + public static VehicleBodyStyle 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()]; } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseDelimitedFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( - PARSER, input, extensionRegistry); - } + private final int value; - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + private VehicleBodyStyle(int value) { + this.value = value; } - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException( - PARSER, input, extensionRegistry); - } + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle) + } - @java.lang.Override - public Builder newBuilderForType() { - return newBuilder(); - } + /** + * + * + *
+   * The engine type of the vehicle.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.EngineType} + */ + public enum EngineType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Unspecified engine type.
+     * 
+ * + * ENGINE_TYPE_UNSPECIFIED = 0; + */ + ENGINE_TYPE_UNSPECIFIED(0), + /** + * + * + *
+     * Gasoline.
+     * 
+ * + * GASOLINE = 1; + */ + GASOLINE(1), + /** + * + * + *
+     * Diesel.
+     * 
+ * + * DIESEL = 2; + */ + DIESEL(2), + /** + * + * + *
+     * Electric.
+     * 
+ * + * ELECTRIC = 3; + */ + ELECTRIC(3), + /** + * + * + *
+     * Hybrid.
+     * 
+ * + * HYBRID = 4; + */ + HYBRID(4), + /** + * + * + *
+     * Plug-in hybrid.
+     * 
+ * + * PLUG_IN_HYBRID = 5; + */ + PLUG_IN_HYBRID(5), + /** + * + * + *
+     * Natural gas.
+     * 
+ * + * NATURAL_GAS = 6; + */ + NATURAL_GAS(6), + /** + * + * + *
+     * LPG.
+     * 
+ * + * LPG = 7; + */ + LPG(7), + /** + * + * + *
+     * Methane.
+     * 
+ * + * METHANE = 8; + */ + METHANE(8), + /** + * + * + *
+     * Other.
+     * 
+ * + * OTHER = 9; + */ + OTHER(9), + UNRECOGNIZED(-1), + ; - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "EngineType"); } - public static Builder newBuilder( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } + /** + * + * + *
+     * Unspecified engine type.
+     * 
+ * + * ENGINE_TYPE_UNSPECIFIED = 0; + */ + public static final int ENGINE_TYPE_UNSPECIFIED_VALUE = 0; - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); - } + /** + * + * + *
+     * Gasoline.
+     * 
+ * + * GASOLINE = 1; + */ + public static final int GASOLINE_VALUE = 1; - @java.lang.Override - protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } + /** + * + * + *
+     * Diesel.
+     * 
+ * + * DIESEL = 2; + */ + public static final int DIESEL_VALUE = 2; /** * * *
-     * The business days during which orders are on their path to fulfillment.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Electric.
      * 
* - * Protobuf type {@code - * google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig} + * ELECTRIC = 3; */ - public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder - implements - // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_descriptor; - } + public static final int ELECTRIC_VALUE = 3; - @java.lang.Override - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig.class, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig.Builder.class); - } + /** + * + * + *
+     * Hybrid.
+     * 
+ * + * HYBRID = 4; + */ + public static final int HYBRID_VALUE = 4; - // Construct using - // com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig.newBuilder() - private Builder() {} + /** + * + * + *
+     * Plug-in hybrid.
+     * 
+ * + * PLUG_IN_HYBRID = 5; + */ + public static final int PLUG_IN_HYBRID_VALUE = 5; - private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - } + /** + * + * + *
+     * Natural gas.
+     * 
+ * + * NATURAL_GAS = 6; + */ + public static final int NATURAL_GAS_VALUE = 6; - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - country_ = ""; - businessDays_ = ""; - return this; - } + /** + * + * + *
+     * LPG.
+     * 
+ * + * LPG = 7; + */ + public static final int LPG_VALUE = 7; - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_descriptor; - } + /** + * + * + *
+     * Methane.
+     * 
+ * + * METHANE = 8; + */ + public static final int METHANE_VALUE = 8; - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - getDefaultInstanceForType() { - return com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .getDefaultInstance(); - } + /** + * + * + *
+     * Other.
+     * 
+ * + * OTHER = 9; + */ + public static final int OTHER_VALUE = 9; - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - build() { - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); } + return value; + } - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - buildPartial() { - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - result = - new com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig(this); - if (bitField0_ != 0) { - buildPartial0(result); - } - onBuilt(); - return result; - } + /** + * @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 EngineType valueOf(int value) { + return forNumber(value); + } - private void buildPartial0( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - result) { - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.country_ = country_; - to_bitField0_ |= 0x00000001; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.businessDays_ = businessDays_; - to_bitField0_ |= 0x00000002; - } - result.bitField0_ |= to_bitField0_; + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static EngineType forNumber(int value) { + switch (value) { + case 0: + return ENGINE_TYPE_UNSPECIFIED; + case 1: + return GASOLINE; + case 2: + return DIESEL; + case 3: + return ELECTRIC; + case 4: + return HYBRID; + case 5: + return PLUG_IN_HYBRID; + case 6: + return NATURAL_GAS; + case 7: + return LPG; + case 8: + return METHANE; + case 9: + return OTHER; + default: + return null; } + } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other - instanceof - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) { - return mergeFrom( - (com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig) - other); - } else { - super.mergeFrom(other); - return this; - } - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - public Builder mergeFrom( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - other) { - if (other - == com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .getDefaultInstance()) return this; - if (other.hasCountry()) { - country_ = other.country_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasBusinessDays()) { - businessDays_ = other.businessDays_; - bitField0_ |= 0x00000002; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public EngineType findValueByNumber(int number) { + return EngineType.forNumber(number); + } + }; - @java.lang.Override - public final boolean isInitialized() { - return true; + 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()); + } - @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: - { - country_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: - { - businessDays_ = 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; - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - private int bitField0_; + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(2); + } - private java.lang.Object country_ = ""; + private static final EngineType[] VALUES = values(); - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return Whether the country field is set. - */ - public boolean hasCountry() { - return ((bitField0_ & 0x00000001) != 0); + public static EngineType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); } - - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return The country. - */ - public java.lang.String getCountry() { - java.lang.Object ref = country_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - country_ = s; - return s; - } else { - return (java.lang.String) ref; - } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; } + return VALUES[desc.getIndex()]; + } - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return The bytes for country. - */ - public com.google.protobuf.ByteString getCountryBytes() { - java.lang.Object ref = country_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - country_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private final int value; - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @param value The country to set. - * @return This builder for chaining. - */ - public Builder setCountry(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - country_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } + private EngineType(int value) { + this.value = value; + } - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return This builder for chaining. - */ - public Builder clearCountry() { - country_ = getDefaultInstance().getCountry(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.EngineType) + } - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @param value The bytes for country to set. - * @return This builder for chaining. - */ - public Builder setCountryBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - country_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } + /** + * + * + *
+   * The emission standard of the vehicle.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard} + */ + public enum EmissionsStandard implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Unspecified emission standard.
+     * 
+ * + * EMISSIONS_STANDARD_UNSPECIFIED = 0; + */ + EMISSIONS_STANDARD_UNSPECIFIED(0), + /** + * + * + *
+     * Zero emissions.
+     * 
+ * + * ZERO_EMISSIONS = 1; + */ + ZERO_EMISSIONS(1), + /** + * + * + *
+     * Euro 1.
+     * 
+ * + * EURO1 = 2; + */ + EURO1(2), + /** + * + * + *
+     * Euro 2.
+     * 
+ * + * EURO2 = 3; + */ + EURO2(3), + /** + * + * + *
+     * Euro 3.
+     * 
+ * + * EURO3 = 4; + */ + EURO3(4), + /** + * + * + *
+     * Euro 4.
+     * 
+ * + * EURO4 = 5; + */ + EURO4(5), + /** + * + * + *
+     * Euro 5.
+     * 
+ * + * EURO5 = 6; + */ + EURO5(6), + /** + * + * + *
+     * Euro 5b.
+     * 
+ * + * EURO5B = 7; + */ + EURO5B(7), + /** + * + * + *
+     * Euro 6.
+     * 
+ * + * EURO6 = 8; + */ + EURO6(8), + /** + * + * + *
+     * Euro 6c.
+     * 
+ * + * EURO6C = 9; + */ + EURO6C(9), + /** + * + * + *
+     * Euro 6d.
+     * 
+ * + * EURO6D = 10; + */ + EURO6D(10), + /** + * + * + *
+     * Euro 6d-TEMP.
+     * 
+ * + * EURO6D_TEMP = 11; + */ + EURO6D_TEMP(11), + /** + * + * + *
+     * Euro 6e.
+     * 
+ * + * EURO6E = 12; + */ + EURO6E(12), + UNRECOGNIZED(-1), + ; - private java.lang.Object businessDays_ = ""; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "EmissionsStandard"); + } - /** - * - * - *
-       * Effective days of the week considered for the delivery time calculation.
-       * May not be empty. The more business days included the faster the
-       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-       * see [Shipping handling business
-       * days](https://support.google.com/merchants/answer/16072859).
-       * 
- * - * optional string business_days = 2; - * - * @return Whether the businessDays field is set. - */ - public boolean hasBusinessDays() { - return ((bitField0_ & 0x00000002) != 0); - } + /** + * + * + *
+     * Unspecified emission standard.
+     * 
+ * + * EMISSIONS_STANDARD_UNSPECIFIED = 0; + */ + public static final int EMISSIONS_STANDARD_UNSPECIFIED_VALUE = 0; - /** - * - * - *
-       * Effective days of the week considered for the delivery time calculation.
-       * May not be empty. The more business days included the faster the
-       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-       * see [Shipping handling business
-       * days](https://support.google.com/merchants/answer/16072859).
-       * 
- * - * optional string business_days = 2; - * - * @return The businessDays. - */ - public java.lang.String getBusinessDays() { - java.lang.Object ref = businessDays_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - businessDays_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + /** + * + * + *
+     * Zero emissions.
+     * 
+ * + * ZERO_EMISSIONS = 1; + */ + public static final int ZERO_EMISSIONS_VALUE = 1; - /** - * - * - *
-       * Effective days of the week considered for the delivery time calculation.
-       * May not be empty. The more business days included the faster the
-       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-       * see [Shipping handling business
-       * days](https://support.google.com/merchants/answer/16072859).
-       * 
- * - * optional string business_days = 2; - * - * @return The bytes for businessDays. - */ - public com.google.protobuf.ByteString getBusinessDaysBytes() { - java.lang.Object ref = businessDays_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - businessDays_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - /** - * - * - *
-       * Effective days of the week considered for the delivery time calculation.
-       * May not be empty. The more business days included the faster the
-       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-       * see [Shipping handling business
-       * days](https://support.google.com/merchants/answer/16072859).
-       * 
- * - * optional string business_days = 2; - * - * @param value The businessDays to set. - * @return This builder for chaining. - */ - public Builder setBusinessDays(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - businessDays_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - /** - * - * - *
-       * Effective days of the week considered for the delivery time calculation.
-       * May not be empty. The more business days included the faster the
-       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-       * see [Shipping handling business
-       * days](https://support.google.com/merchants/answer/16072859).
-       * 
- * - * optional string business_days = 2; - * - * @return This builder for chaining. - */ - public Builder clearBusinessDays() { - businessDays_ = getDefaultInstance().getBusinessDays(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - - /** - * - * - *
-       * Effective days of the week considered for the delivery time calculation.
-       * May not be empty. The more business days included the faster the
-       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
-       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
-       * see [Shipping handling business
-       * days](https://support.google.com/merchants/answer/16072859).
-       * 
- * - * optional string business_days = 2; - * - * @param value The bytes for businessDays to set. - * @return This builder for chaining. - */ - public Builder setBusinessDaysBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - businessDays_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) - } - - // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) - private static final com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - DEFAULT_INSTANCE; - - static { - DEFAULT_INSTANCE = - new com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig(); - } - - public static com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ShippingBusinessDaysConfig 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.products.v1.ProductAttributes.ShippingBusinessDaysConfig - getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - } - - public interface CarrierShippingOrBuilder - extends - // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) - com.google.protobuf.MessageOrBuilder { + /** + * + * + *
+     * Euro 1.
+     * 
+ * + * EURO1 = 2; + */ + public static final int EURO1_VALUE = 2; /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Euro 2.
      * 
* - * optional string country = 1; - * - * @return Whether the country field is set. + * EURO2 = 3; */ - boolean hasCountry(); + public static final int EURO2_VALUE = 3; /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Euro 3.
      * 
* - * optional string country = 1; - * - * @return The country. + * EURO3 = 4; */ - java.lang.String getCountry(); + public static final int EURO3_VALUE = 4; /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Euro 4.
      * 
* - * optional string country = 1; - * - * @return The bytes for country. + * EURO4 = 5; */ - com.google.protobuf.ByteString getCountryBytes(); + public static final int EURO4_VALUE = 5; /** * * *
-     * The geographic region to which a shipping rate applies.
-     * See [region](https://support.google.com/merchants/answer/6324484) for
-     * more information.
+     * Euro 5.
      * 
* - * optional string region = 2; - * - * @return Whether the region field is set. + * EURO5 = 6; */ - boolean hasRegion(); + public static final int EURO5_VALUE = 6; /** * * *
-     * The geographic region to which a shipping rate applies.
-     * See [region](https://support.google.com/merchants/answer/6324484) for
-     * more information.
+     * Euro 5b.
      * 
* - * optional string region = 2; - * - * @return The region. + * EURO5B = 7; */ - java.lang.String getRegion(); + public static final int EURO5B_VALUE = 7; /** * * *
-     * The geographic region to which a shipping rate applies.
-     * See [region](https://support.google.com/merchants/answer/6324484) for
-     * more information.
+     * Euro 6.
      * 
* - * optional string region = 2; - * - * @return The bytes for region. + * EURO6 = 8; */ - com.google.protobuf.ByteString getRegionBytes(); + public static final int EURO6_VALUE = 8; /** * * *
-     * The postal code range that the shipping rate applies to, represented by
-     * a postal code (eg. `94043`), a postal code prefix followed by a *
-     * wildcard (eg. `94*`), a range between two postal codes (eg.
-     * `94043-98033`) or two postal code prefixes of equal length (eg.
-     * `94*-98*`).
+     * Euro 6c.
      * 
* - * optional string postal_code = 3; - * - * @return Whether the postalCode field is set. + * EURO6C = 9; */ - boolean hasPostalCode(); + public static final int EURO6C_VALUE = 9; /** * * *
-     * The postal code range that the shipping rate applies to, represented by
-     * a postal code (eg. `94043`), a postal code prefix followed by a *
-     * wildcard (eg. `94*`), a range between two postal codes (eg.
-     * `94043-98033`) or two postal code prefixes of equal length (eg.
-     * `94*-98*`).
+     * Euro 6d.
      * 
* - * optional string postal_code = 3; - * - * @return The postalCode. + * EURO6D = 10; */ - java.lang.String getPostalCode(); + public static final int EURO6D_VALUE = 10; /** * * *
-     * The postal code range that the shipping rate applies to, represented by
-     * a postal code (eg. `94043`), a postal code prefix followed by a *
-     * wildcard (eg. `94*`), a range between two postal codes (eg.
-     * `94043-98033`) or two postal code prefixes of equal length (eg.
-     * `94*-98*`).
+     * Euro 6d-TEMP.
      * 
* - * optional string postal_code = 3; - * - * @return The bytes for postalCode. + * EURO6D_TEMP = 11; */ - com.google.protobuf.ByteString getPostalCodeBytes(); + public static final int EURO6D_TEMP_VALUE = 11; /** * * *
-     * The source location postal code from which this offer ships. Represented
-     * only by a full-length postal code.
+     * Euro 6e.
      * 
* - * optional string origin_postal_code = 4; - * - * @return Whether the originPostalCode field is set. + * EURO6E = 12; */ - boolean hasOriginPostalCode(); + public static final int EURO6E_VALUE = 12; - /** - * - * - *
-     * The source location postal code from which this offer ships. Represented
-     * only by a full-length postal code.
-     * 
- * - * optional string origin_postal_code = 4; - * - * @return The originPostalCode. - */ - java.lang.String getOriginPostalCode(); + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } /** - * - * - *
-     * The source location postal code from which this offer ships. Represented
-     * only by a full-length postal code.
-     * 
- * - * optional string origin_postal_code = 4; - * - * @return The bytes for originPostalCode. + * @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. */ - com.google.protobuf.ByteString getOriginPostalCodeBytes(); + @java.lang.Deprecated + public static EmissionsStandard valueOf(int value) { + return forNumber(value); + } /** - * - * - *
-     * Fixed shipping price, represented as a number with currency. Cannot be
-     * set together with
-     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-     * or its adjustments
-     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-     * 
- * - * optional .google.shopping.type.Price flat_price = 5; - * - * @return Whether the flatPrice field is set. + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. */ - boolean hasFlatPrice(); + public static EmissionsStandard forNumber(int value) { + switch (value) { + case 0: + return EMISSIONS_STANDARD_UNSPECIFIED; + case 1: + return ZERO_EMISSIONS; + case 2: + return EURO1; + case 3: + return EURO2; + case 4: + return EURO3; + case 5: + return EURO4; + case 6: + return EURO5; + case 7: + return EURO5B; + case 8: + return EURO6; + case 9: + return EURO6C; + case 10: + return EURO6D; + case 11: + return EURO6D_TEMP; + case 12: + return EURO6E; + 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 EmissionsStandard findValueByNumber(int number) { + return EmissionsStandard.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(3); + } + + private static final EmissionsStandard[] VALUES = values(); + + public static EmissionsStandard 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 EmissionsStandard(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard) + } + + /** + * + * + *
+   * The vehicle price type.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType} + */ + public enum VehiclePriceType implements com.google.protobuf.ProtocolMessageEnum { /** * * *
-     * Fixed shipping price, represented as a number with currency. Cannot be
-     * set together with
-     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-     * or its adjustments
-     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * Unspecified vehicle price type.
      * 
* - * optional .google.shopping.type.Price flat_price = 5; - * - * @return The flatPrice. + * VEHICLE_PRICE_TYPE_UNSPECIFIED = 0; */ - com.google.shopping.type.Price getFlatPrice(); - + VEHICLE_PRICE_TYPE_UNSPECIFIED(0), /** * * *
-     * Fixed shipping price, represented as a number with currency. Cannot be
-     * set together with
-     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-     * or its adjustments
-     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * All in price.
      * 
* - * optional .google.shopping.type.Price flat_price = 5; + * ALL_IN_PRICE = 1; */ - com.google.shopping.type.PriceOrBuilder getFlatPriceOrBuilder(); - + ALL_IN_PRICE(1), /** * * *
-     * Selected carrier to calculate the shipping price from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate shipping price.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * Drive away price.
      * 
* - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @return Whether the carrierPrice field is set. + * DRIVE_AWAY_PRICE = 2; */ - boolean hasCarrierPrice(); - + DRIVE_AWAY_PRICE(2), /** * * *
-     * Selected carrier to calculate the shipping price from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate shipping price.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * Estimated drive away price.
      * 
* - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @return The enum numeric value on the wire for carrierPrice. + * ESTIMATED_DRIVE_AWAY_PRICE = 3; */ - int getCarrierPriceValue(); - + ESTIMATED_DRIVE_AWAY_PRICE(3), /** * * *
-     * Selected carrier to calculate the shipping price from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate shipping price.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * Excluding government charges price.
      * 
* - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @return The carrierPrice. + * EXCLUDING_GOVERNMENT_CHARGES_PRICE = 4; */ - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption getCarrierPrice(); - + EXCLUDING_GOVERNMENT_CHARGES_PRICE(4), /** * * *
-     * A flat adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * Vehicle base price.
      * 
* - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - * - * @return Whether the carrierPriceFlatAdjustment field is set. + * VEHICLE_BASE_PRICE = 5; */ - boolean hasCarrierPriceFlatAdjustment(); + VEHICLE_BASE_PRICE(5), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "VehiclePriceType"); + } /** * * *
-     * A flat adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * Unspecified vehicle price type.
      * 
* - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - * - * @return The carrierPriceFlatAdjustment. + * VEHICLE_PRICE_TYPE_UNSPECIFIED = 0; */ - com.google.shopping.type.Price getCarrierPriceFlatAdjustment(); + public static final int VEHICLE_PRICE_TYPE_UNSPECIFIED_VALUE = 0; /** * * *
-     * A flat adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * All in price.
      * 
* - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * ALL_IN_PRICE = 1; */ - com.google.shopping.type.PriceOrBuilder getCarrierPriceFlatAdjustmentOrBuilder(); + public static final int ALL_IN_PRICE_VALUE = 1; /** * * *
-     * A percentual adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * Drive away price.
      * 
* - * optional double carrier_price_percentage_adjustment = 8; - * - * @return Whether the carrierPricePercentageAdjustment field is set. + * DRIVE_AWAY_PRICE = 2; */ - boolean hasCarrierPricePercentageAdjustment(); + public static final int DRIVE_AWAY_PRICE_VALUE = 2; /** * * *
-     * A percentual adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * Estimated drive away price.
      * 
* - * optional double carrier_price_percentage_adjustment = 8; - * - * @return The carrierPricePercentageAdjustment. + * ESTIMATED_DRIVE_AWAY_PRICE = 3; */ - double getCarrierPricePercentageAdjustment(); + public static final int ESTIMATED_DRIVE_AWAY_PRICE_VALUE = 3; /** * * *
-     * Minimum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time.
-     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-     * can only be set if
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * is also set.
+     * Excluding government charges price.
      * 
* - * optional int64 min_handling_time = 9; - * - * @return Whether the minHandlingTime field is set. + * EXCLUDING_GOVERNMENT_CHARGES_PRICE = 4; */ - boolean hasMinHandlingTime(); + public static final int EXCLUDING_GOVERNMENT_CHARGES_PRICE_VALUE = 4; /** * * *
-     * Minimum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time.
-     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-     * can only be set if
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * is also set.
+     * Vehicle base price.
      * 
* - * optional int64 min_handling_time = 9; - * - * @return The minHandlingTime. + * VEHICLE_BASE_PRICE = 5; */ - long getMinHandlingTime(); + public static final int VEHICLE_BASE_PRICE_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } /** - * - * - *
-     * Maximum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time. Both
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * and
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * are required if providing shipping speeds.
-     * 
- * - * optional int64 max_handling_time = 10; - * - * @return Whether the maxHandlingTime field is set. + * @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. */ - boolean hasMaxHandlingTime(); + @java.lang.Deprecated + public static VehiclePriceType valueOf(int value) { + return forNumber(value); + } /** - * - * - *
-     * Maximum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time. Both
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * and
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * are required if providing shipping speeds.
-     * 
- * - * optional int64 max_handling_time = 10; - * - * @return The maxHandlingTime. + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. */ - long getMaxHandlingTime(); + public static VehiclePriceType forNumber(int value) { + switch (value) { + case 0: + return VEHICLE_PRICE_TYPE_UNSPECIFIED; + case 1: + return ALL_IN_PRICE; + case 2: + return DRIVE_AWAY_PRICE; + case 3: + return ESTIMATED_DRIVE_AWAY_PRICE; + case 4: + return EXCLUDING_GOVERNMENT_CHARGES_PRICE; + case 5: + return VEHICLE_BASE_PRICE; + 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 VehiclePriceType findValueByNumber(int number) { + return VehiclePriceType.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(4); + } + + private static final VehiclePriceType[] VALUES = values(); + + public static VehiclePriceType 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 VehiclePriceType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType) + } + + /** + * + * + *
+   * The property type.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.PropertyType} + */ + public enum PropertyType implements com.google.protobuf.ProtocolMessageEnum { /** * * *
-     * Minimum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships.
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-     * can only be set if
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * is set. Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Unspecified property type.
      * 
* - * optional int64 fixed_min_transit_time = 11; - * - * @return Whether the fixedMinTransitTime field is set. + * PROPERTY_TYPE_UNSPECIFIED = 0; */ - boolean hasFixedMinTransitTime(); - + PROPERTY_TYPE_UNSPECIFIED(0), /** * * *
-     * Minimum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships.
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-     * can only be set if
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * is set. Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Apartment.
      * 
* - * optional int64 fixed_min_transit_time = 11; - * - * @return The fixedMinTransitTime. + * APARTMENT = 1; */ - long getFixedMinTransitTime(); - + APARTMENT(1), /** * * *
-     * Maximum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships. Needs to be provided together with
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-     * Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Condo.
      * 
* - * optional int64 fixed_max_transit_time = 12; - * - * @return Whether the fixedMaxTransitTime field is set. + * CONDO = 2; */ - boolean hasFixedMaxTransitTime(); - + CONDO(2), /** * * *
-     * Maximum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships. Needs to be provided together with
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-     * Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Loft.
      * 
* - * optional int64 fixed_max_transit_time = 12; - * - * @return The fixedMaxTransitTime. + * LOFT = 3; */ - long getFixedMaxTransitTime(); - + LOFT(3), /** * * *
-     * Selected carrier to calculate the shipping speed from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate delivery speed.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * Multi-family home.
      * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * - * - * @return Whether the carrierTransitTime field is set. + * MULTI_FAMILY_HOME = 4; */ - boolean hasCarrierTransitTime(); - + MULTI_FAMILY_HOME(4), /** * * *
-     * Selected carrier to calculate the shipping speed from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate delivery speed.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * Penthouse.
      * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * - * - * @return The enum numeric value on the wire for carrierTransitTime. + * PENTHOUSE = 5; */ - int getCarrierTransitTimeValue(); - + PENTHOUSE(5), /** * * *
-     * Selected carrier to calculate the shipping speed from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate delivery speed.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * Room.
      * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * - * - * @return The carrierTransitTime. + * ROOM = 6; */ - com.google.shopping.merchant.products.v1.CarrierTransitTimeOption getCarrierTransitTime(); - } - - /** - * - * - *
-   * Carrier-based shipping configuration. Allows for setting shipping speed or
-   * shipping cost based on a carrier's provided info.
-   * 
- * - * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping} - */ - public static final class CarrierShipping extends com.google.protobuf.GeneratedMessage - implements - // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) - CarrierShippingOrBuilder { - private static final long serialVersionUID = 0L; - - static { - com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( - com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, - /* major= */ 4, - /* minor= */ 33, - /* patch= */ 2, - /* suffix= */ "", - "CarrierShipping"); - } - - // Use CarrierShipping.newBuilder() to construct. - private CarrierShipping(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - } - - private CarrierShipping() { - country_ = ""; - region_ = ""; - postalCode_ = ""; - originPostalCode_ = ""; - carrierPrice_ = 0; - carrierTransitTime_ = 0; - } - - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.class, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - .class); - } - - private int bitField0_; - public static final int COUNTRY_FIELD_NUMBER = 1; - - @SuppressWarnings("serial") - private volatile java.lang.Object country_ = ""; - + ROOM(6), /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Single-family home.
      * 
* - * optional string country = 1; - * - * @return Whether the country field is set. + * SINGLE_FAMILY_HOME = 7; */ - @java.lang.Override - public boolean hasCountry() { - return ((bitField0_ & 0x00000001) != 0); - } - + SINGLE_FAMILY_HOME(7), /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Studio.
      * 
* - * optional string country = 1; - * - * @return The country. + * STUDIO = 8; */ - @java.lang.Override - public java.lang.String getCountry() { - java.lang.Object ref = country_; - 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(); - country_ = s; - return s; - } - } - + STUDIO(8), /** * * *
-     * The [CLDR territory
-     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-     * of the country to which an item will ship.
+     * Townhouse.
      * 
* - * optional string country = 1; - * - * @return The bytes for country. + * TOWNHOUSE = 9; */ - @java.lang.Override - public com.google.protobuf.ByteString getCountryBytes() { - java.lang.Object ref = country_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - country_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int REGION_FIELD_NUMBER = 2; + TOWNHOUSE(9), + UNRECOGNIZED(-1), + ; - @SuppressWarnings("serial") - private volatile java.lang.Object region_ = ""; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "PropertyType"); + } /** * * *
-     * The geographic region to which a shipping rate applies.
-     * See [region](https://support.google.com/merchants/answer/6324484) for
-     * more information.
+     * Unspecified property type.
      * 
* - * optional string region = 2; - * - * @return Whether the region field is set. + * PROPERTY_TYPE_UNSPECIFIED = 0; */ - @java.lang.Override - public boolean hasRegion() { - return ((bitField0_ & 0x00000002) != 0); - } + public static final int PROPERTY_TYPE_UNSPECIFIED_VALUE = 0; /** * * *
-     * The geographic region to which a shipping rate applies.
-     * See [region](https://support.google.com/merchants/answer/6324484) for
-     * more information.
+     * Apartment.
      * 
* - * optional string region = 2; - * - * @return The region. + * APARTMENT = 1; */ - @java.lang.Override - public java.lang.String getRegion() { - java.lang.Object ref = region_; - 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(); - region_ = s; - return s; - } - } + public static final int APARTMENT_VALUE = 1; /** * * *
-     * The geographic region to which a shipping rate applies.
-     * See [region](https://support.google.com/merchants/answer/6324484) for
-     * more information.
+     * Condo.
      * 
* - * optional string region = 2; - * - * @return The bytes for region. + * CONDO = 2; */ - @java.lang.Override - public com.google.protobuf.ByteString getRegionBytes() { - java.lang.Object ref = region_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - region_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int POSTAL_CODE_FIELD_NUMBER = 3; - - @SuppressWarnings("serial") - private volatile java.lang.Object postalCode_ = ""; + public static final int CONDO_VALUE = 2; /** * * *
-     * The postal code range that the shipping rate applies to, represented by
-     * a postal code (eg. `94043`), a postal code prefix followed by a *
-     * wildcard (eg. `94*`), a range between two postal codes (eg.
-     * `94043-98033`) or two postal code prefixes of equal length (eg.
-     * `94*-98*`).
+     * Loft.
      * 
* - * optional string postal_code = 3; - * - * @return Whether the postalCode field is set. + * LOFT = 3; */ - @java.lang.Override - public boolean hasPostalCode() { - return ((bitField0_ & 0x00000004) != 0); - } + public static final int LOFT_VALUE = 3; /** * * *
-     * The postal code range that the shipping rate applies to, represented by
-     * a postal code (eg. `94043`), a postal code prefix followed by a *
-     * wildcard (eg. `94*`), a range between two postal codes (eg.
-     * `94043-98033`) or two postal code prefixes of equal length (eg.
-     * `94*-98*`).
+     * Multi-family home.
      * 
* - * optional string postal_code = 3; - * - * @return The postalCode. + * MULTI_FAMILY_HOME = 4; */ - @java.lang.Override - public java.lang.String getPostalCode() { - java.lang.Object ref = postalCode_; - 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(); - postalCode_ = s; - return s; - } - } + public static final int MULTI_FAMILY_HOME_VALUE = 4; /** * * *
-     * The postal code range that the shipping rate applies to, represented by
-     * a postal code (eg. `94043`), a postal code prefix followed by a *
-     * wildcard (eg. `94*`), a range between two postal codes (eg.
-     * `94043-98033`) or two postal code prefixes of equal length (eg.
-     * `94*-98*`).
+     * Penthouse.
      * 
* - * optional string postal_code = 3; - * - * @return The bytes for postalCode. + * PENTHOUSE = 5; */ - @java.lang.Override - public com.google.protobuf.ByteString getPostalCodeBytes() { - java.lang.Object ref = postalCode_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - postalCode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ORIGIN_POSTAL_CODE_FIELD_NUMBER = 4; - - @SuppressWarnings("serial") - private volatile java.lang.Object originPostalCode_ = ""; + public static final int PENTHOUSE_VALUE = 5; /** * * *
-     * The source location postal code from which this offer ships. Represented
-     * only by a full-length postal code.
+     * Room.
      * 
* - * optional string origin_postal_code = 4; - * - * @return Whether the originPostalCode field is set. + * ROOM = 6; */ - @java.lang.Override - public boolean hasOriginPostalCode() { - return ((bitField0_ & 0x00000008) != 0); - } + public static final int ROOM_VALUE = 6; /** * * *
-     * The source location postal code from which this offer ships. Represented
-     * only by a full-length postal code.
+     * Single-family home.
      * 
* - * optional string origin_postal_code = 4; - * - * @return The originPostalCode. + * SINGLE_FAMILY_HOME = 7; */ - @java.lang.Override - public java.lang.String getOriginPostalCode() { - java.lang.Object ref = originPostalCode_; - 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(); - originPostalCode_ = s; - return s; - } - } + public static final int SINGLE_FAMILY_HOME_VALUE = 7; /** * * *
-     * The source location postal code from which this offer ships. Represented
-     * only by a full-length postal code.
+     * Studio.
      * 
* - * optional string origin_postal_code = 4; - * - * @return The bytes for originPostalCode. + * STUDIO = 8; */ - @java.lang.Override - public com.google.protobuf.ByteString getOriginPostalCodeBytes() { - java.lang.Object ref = originPostalCode_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - originPostalCode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FLAT_PRICE_FIELD_NUMBER = 5; - private com.google.shopping.type.Price flatPrice_; + public static final int STUDIO_VALUE = 8; /** * * *
-     * Fixed shipping price, represented as a number with currency. Cannot be
-     * set together with
-     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-     * or its adjustments
-     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * Townhouse.
      * 
* - * optional .google.shopping.type.Price flat_price = 5; - * - * @return Whether the flatPrice field is set. + * TOWNHOUSE = 9; */ - @java.lang.Override - public boolean hasFlatPrice() { - return ((bitField0_ & 0x00000010) != 0); + public static final int TOWNHOUSE_VALUE = 9; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; } /** - * - * - *
-     * Fixed shipping price, represented as a number with currency. Cannot be
-     * set together with
-     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-     * or its adjustments
-     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-     * 
- * - * optional .google.shopping.type.Price flat_price = 5; - * - * @return The flatPrice. + * @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.Override - public com.google.shopping.type.Price getFlatPrice() { - return flatPrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatPrice_; + @java.lang.Deprecated + public static PropertyType valueOf(int value) { + return forNumber(value); } /** - * - * - *
-     * Fixed shipping price, represented as a number with currency. Cannot be
-     * set together with
-     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-     * or its adjustments
-     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-     * 
- * - * optional .google.shopping.type.Price flat_price = 5; + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. */ - @java.lang.Override - public com.google.shopping.type.PriceOrBuilder getFlatPriceOrBuilder() { - return flatPrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatPrice_; + public static PropertyType forNumber(int value) { + switch (value) { + case 0: + return PROPERTY_TYPE_UNSPECIFIED; + case 1: + return APARTMENT; + case 2: + return CONDO; + case 3: + return LOFT; + case 4: + return MULTI_FAMILY_HOME; + case 5: + return PENTHOUSE; + case 6: + return ROOM; + case 7: + return SINGLE_FAMILY_HOME; + case 8: + return STUDIO; + case 9: + return TOWNHOUSE; + default: + return null; + } } - public static final int CARRIER_PRICE_FIELD_NUMBER = 6; - private int carrierPrice_ = 0; + 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 PropertyType findValueByNumber(int number) { + return PropertyType.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(5); + } + + private static final PropertyType[] VALUES = values(); + + public static PropertyType 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 PropertyType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.PropertyType) + } + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature} + */ + public enum AmenityFeature implements com.google.protobuf.ProtocolMessageEnum { /** * * *
-     * Selected carrier to calculate the shipping price from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate shipping price.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * Unspecified amenity feature.
      * 
* - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * + * AMENITY_FEATURE_UNSPECIFIED = 0; + */ + AMENITY_FEATURE_UNSPECIFIED(0), + /** * - * @return Whether the carrierPrice field is set. + * + *
+     * Balcony.
+     * 
+ * + * BALCONY = 1; */ - @java.lang.Override - public boolean hasCarrierPrice() { - return ((bitField0_ & 0x00000020) != 0); - } - + BALCONY(1), /** * * *
-     * Selected carrier to calculate the shipping price from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate shipping price.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * Basement.
      * 
* - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * + * BASEMENT = 2; + */ + BASEMENT(2), + /** * - * @return The enum numeric value on the wire for carrierPrice. + * + *
+     * Basketball court.
+     * 
+ * + * BASKETBALL_COURT = 3; */ - @java.lang.Override - public int getCarrierPriceValue() { - return carrierPrice_; - } - + BASKETBALL_COURT(3), /** * * *
-     * Selected carrier to calculate the shipping price from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate shipping price.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * Bike storage.
      * 
* - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * + * BIKE_STORAGE = 4; + */ + BIKE_STORAGE(4), + /** * - * @return The carrierPrice. + * + *
+     * Central air conditioning.
+     * 
+ * + * CENTRAL_AC = 5; */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption - getCarrierPrice() { - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption result = - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption.forNumber( - carrierPrice_); - return result == null - ? com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption - .UNRECOGNIZED - : result; - } - - public static final int CARRIER_PRICE_FLAT_ADJUSTMENT_FIELD_NUMBER = 7; - private com.google.shopping.type.Price carrierPriceFlatAdjustment_; - + CENTRAL_AC(5), /** * * *
-     * A flat adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * Dishwasher.
      * 
* - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * DISHWASHER = 6; + */ + DISHWASHER(6), + /** * - * @return Whether the carrierPriceFlatAdjustment field is set. + * + *
+     * Dog park.
+     * 
+ * + * DOG_PARK = 7; */ - @java.lang.Override - public boolean hasCarrierPriceFlatAdjustment() { - return ((bitField0_ & 0x00000040) != 0); - } - + DOG_PARK(7), /** * * *
-     * A flat adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * Elevator.
      * 
* - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * ELEVATOR = 8; + */ + ELEVATOR(8), + /** * - * @return The carrierPriceFlatAdjustment. + * + *
+     * EV charging.
+     * 
+ * + * EV_CHARGING = 9; */ - @java.lang.Override - public com.google.shopping.type.Price getCarrierPriceFlatAdjustment() { - return carrierPriceFlatAdjustment_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : carrierPriceFlatAdjustment_; - } - + EV_CHARGING(9), /** * * *
-     * A flat adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * Fenced lot.
      * 
* - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * FENCED_LOT = 10; */ - @java.lang.Override - public com.google.shopping.type.PriceOrBuilder getCarrierPriceFlatAdjustmentOrBuilder() { - return carrierPriceFlatAdjustment_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : carrierPriceFlatAdjustment_; - } - - public static final int CARRIER_PRICE_PERCENTAGE_ADJUSTMENT_FIELD_NUMBER = 8; - private double carrierPricePercentageAdjustment_ = 0D; - + FENCED_LOT(10), /** * * *
-     * A percentual adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * Fireplace.
      * 
* - * optional double carrier_price_percentage_adjustment = 8; + * FIREPLACE = 11; + */ + FIREPLACE(11), + /** * - * @return Whether the carrierPricePercentageAdjustment field is set. + * + *
+     * Fitness center.
+     * 
+ * + * FITNESS_CENTER = 12; */ - @java.lang.Override - public boolean hasCarrierPricePercentageAdjustment() { - return ((bitField0_ & 0x00000080) != 0); - } - + FITNESS_CENTER(12), /** * * *
-     * A percentual adjustment on the carrier price. Can be either positive or
-     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-     * be set together with
-     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-     * and
-     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * Forced air heating.
      * 
* - * optional double carrier_price_percentage_adjustment = 8; + * FORCED_AIR_HEATING = 13; + */ + FORCED_AIR_HEATING(13), + /** * - * @return The carrierPricePercentageAdjustment. + * + *
+     * Fully furnished.
+     * 
+ * + * FULLY_FURNISHED = 14; */ - @java.lang.Override - public double getCarrierPricePercentageAdjustment() { - return carrierPricePercentageAdjustment_; - } - - public static final int MIN_HANDLING_TIME_FIELD_NUMBER = 9; - private long minHandlingTime_ = 0L; - + FULLY_FURNISHED(14), /** * * *
-     * Minimum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time.
-     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-     * can only be set if
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * is also set.
+     * Garage.
      * 
* - * optional int64 min_handling_time = 9; + * GARAGE = 15; + */ + GARAGE(15), + /** * - * @return Whether the minHandlingTime field is set. + * + *
+     * Gated community.
+     * 
+ * + * GATED_COMMUNITY = 16; */ - @java.lang.Override - public boolean hasMinHandlingTime() { - return ((bitField0_ & 0x00000100) != 0); - } - + GATED_COMMUNITY(16), /** * * *
-     * Minimum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time.
-     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-     * can only be set if
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * is also set.
+     * Hardwood floors.
      * 
* - * optional int64 min_handling_time = 9; + * HARDWOOD_FLOORS = 17; + */ + HARDWOOD_FLOORS(17), + /** * - * @return The minHandlingTime. + * + *
+     * High speed internet.
+     * 
+ * + * HIGH_SPEED_INTERNET = 18; */ - @java.lang.Override - public long getMinHandlingTime() { - return minHandlingTime_; - } - - public static final int MAX_HANDLING_TIME_FIELD_NUMBER = 10; - private long maxHandlingTime_ = 0L; - + HIGH_SPEED_INTERNET(18), /** * * *
-     * Maximum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time. Both
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * and
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * are required if providing shipping speeds.
+     * Intercom.
      * 
* - * optional int64 max_handling_time = 10; + * INTERCOM = 19; + */ + INTERCOM(19), + /** * - * @return Whether the maxHandlingTime field is set. + * + *
+     * In-unit washer and dryer.
+     * 
+ * + * IN_UNIT_WASHER_DRYER = 20; */ - @java.lang.Override - public boolean hasMaxHandlingTime() { - return ((bitField0_ & 0x00000200) != 0); - } - + IN_UNIT_WASHER_DRYER(20), /** * * *
-     * Maximum handling time (inclusive) between when the order is received and
-     * shipped in business days. 0 means that the order is shipped on the same
-     * day as it is received if it happens before the cut-off time. Both
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-     * and
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * are required if providing shipping speeds.
+     * Kitchen.
      * 
* - * optional int64 max_handling_time = 10; + * KITCHEN = 21; + */ + KITCHEN(21), + /** * - * @return The maxHandlingTime. + * + *
+     * Large closets.
+     * 
+ * + * LARGE_CLOSETS = 22; */ - @java.lang.Override - public long getMaxHandlingTime() { - return maxHandlingTime_; - } - - public static final int FIXED_MIN_TRANSIT_TIME_FIELD_NUMBER = 11; - private long fixedMinTransitTime_ = 0L; - + LARGE_CLOSETS(22), /** * * *
-     * Minimum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships.
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-     * can only be set if
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * is set. Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Multisport court.
      * 
* - * optional int64 fixed_min_transit_time = 11; + * MULTISPORT_COURT = 23; + */ + MULTISPORT_COURT(23), + /** * - * @return Whether the fixedMinTransitTime field is set. + * + *
+     * Onsite laundry.
+     * 
+ * + * ONSITE_LAUNDRY = 24; */ - @java.lang.Override - public boolean hasFixedMinTransitTime() { - return ((bitField0_ & 0x00000400) != 0); - } - + ONSITE_LAUNDRY(24), /** * * *
-     * Minimum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships.
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-     * can only be set if
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * is set. Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Outdoor lounge.
      * 
* - * optional int64 fixed_min_transit_time = 11; + * OUTDOOR_LOUNGE = 25; + */ + OUTDOOR_LOUNGE(25), + /** * - * @return The fixedMinTransitTime. + * + *
+     * Parking.
+     * 
+ * + * PARKING = 26; */ - @java.lang.Override - public long getFixedMinTransitTime() { - return fixedMinTransitTime_; - } - - public static final int FIXED_MAX_TRANSIT_TIME_FIELD_NUMBER = 12; - private long fixedMaxTransitTime_ = 0L; - + PARKING(26), /** * * *
-     * Maximum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships. Needs to be provided together with
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-     * Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Patio.
      * 
* - * optional int64 fixed_max_transit_time = 12; + * PATIO = 27; + */ + PATIO(27), + /** * - * @return Whether the fixedMaxTransitTime field is set. + * + *
+     * Pickleball court.
+     * 
+ * + * PICKLEBALL_COURT = 28; */ - @java.lang.Override - public boolean hasFixedMaxTransitTime() { - return ((bitField0_ & 0x00000800) != 0); - } - + PICKLEBALL_COURT(28), /** * * *
-     * Maximum transit time (inclusive) between when the order has shipped and
-     * when it is delivered in business days. 0 means that the order is
-     * delivered on the same day as it ships. Needs to be provided together with
-     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-     * Cannot be set if
-     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-     * is present.
+     * Pool.
      * 
* - * optional int64 fixed_max_transit_time = 12; + * POOL = 29; + */ + POOL(29), + /** * - * @return The fixedMaxTransitTime. + * + *
+     * Refrigerator.
+     * 
+ * + * REFRIGERATOR = 30; */ - @java.lang.Override - public long getFixedMaxTransitTime() { - return fixedMaxTransitTime_; - } - - public static final int CARRIER_TRANSIT_TIME_FIELD_NUMBER = 13; - private int carrierTransitTime_ = 0; - + REFRIGERATOR(30), /** * * *
-     * Selected carrier to calculate the shipping speed from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate delivery speed.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * Soccer field.
      * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * + * SOCCER_FIELD = 31; + */ + SOCCER_FIELD(31), + /** * - * @return Whether the carrierTransitTime field is set. + * + *
+     * Tennis court.
+     * 
+ * + * TENNIS_COURT = 32; */ - @java.lang.Override - public boolean hasCarrierTransitTime() { - return ((bitField0_ & 0x00001000) != 0); - } - + TENNIS_COURT(32), /** * * *
-     * Selected carrier to calculate the shipping speed from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate delivery speed.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * Walk-in closets.
      * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * + * WALK_IN_CLOSETS = 33; + */ + WALK_IN_CLOSETS(33), + /** * - * @return The enum numeric value on the wire for carrierTransitTime. + * + *
+     * Wheelchair accessibility.
+     * 
+ * + * WHEELCHAIR_ACCESS = 34; */ - @java.lang.Override - public int getCarrierTransitTimeValue() { - return carrierTransitTime_; + WHEELCHAIR_ACCESS(34), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "AmenityFeature"); } /** * * *
-     * Selected carrier to calculate the shipping speed from. Select a carrier
-     * from the [available carriers
-     * list](https://support.google.com/merchants/answer/15449142#Supported),
-     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-     * selected carrier, the location expressed in
-     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-     * along with the user location to determine the accurate delivery speed.
-     * Carrier is represented by a carrier service name or a carrier service ID.
-     * Cannot be set together with
-     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-     * or
-     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * Unspecified amenity feature.
      * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * - * - * @return The carrierTransitTime. + * AMENITY_FEATURE_UNSPECIFIED = 0; */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.CarrierTransitTimeOption - getCarrierTransitTime() { - com.google.shopping.merchant.products.v1.CarrierTransitTimeOption result = - com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.forNumber( - carrierTransitTime_); - return result == null - ? com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.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; + public static final int AMENITY_FEATURE_UNSPECIFIED_VALUE = 0; - memoizedIsInitialized = 1; - return true; - } + /** + * + * + *
+     * Balcony.
+     * 
+ * + * BALCONY = 1; + */ + public static final int BALCONY_VALUE = 1; - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (((bitField0_ & 0x00000001) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 1, country_); - } - if (((bitField0_ & 0x00000002) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 2, region_); - } - if (((bitField0_ & 0x00000004) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 3, postalCode_); - } - if (((bitField0_ & 0x00000008) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 4, originPostalCode_); - } - if (((bitField0_ & 0x00000010) != 0)) { - output.writeMessage(5, getFlatPrice()); - } - if (((bitField0_ & 0x00000020) != 0)) { - output.writeEnum(6, carrierPrice_); - } - if (((bitField0_ & 0x00000040) != 0)) { - output.writeMessage(7, getCarrierPriceFlatAdjustment()); - } - if (((bitField0_ & 0x00000080) != 0)) { - output.writeDouble(8, carrierPricePercentageAdjustment_); - } - if (((bitField0_ & 0x00000100) != 0)) { - output.writeInt64(9, minHandlingTime_); - } - if (((bitField0_ & 0x00000200) != 0)) { - output.writeInt64(10, maxHandlingTime_); - } - if (((bitField0_ & 0x00000400) != 0)) { - output.writeInt64(11, fixedMinTransitTime_); - } - if (((bitField0_ & 0x00000800) != 0)) { - output.writeInt64(12, fixedMaxTransitTime_); - } - if (((bitField0_ & 0x00001000) != 0)) { - output.writeEnum(13, carrierTransitTime_); - } - getUnknownFields().writeTo(output); - } + /** + * + * + *
+     * Basement.
+     * 
+ * + * BASEMENT = 2; + */ + public static final int BASEMENT_VALUE = 2; - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + /** + * + * + *
+     * Basketball court.
+     * 
+ * + * BASKETBALL_COURT = 3; + */ + public static final int BASKETBALL_COURT_VALUE = 3; - size = 0; - if (((bitField0_ & 0x00000001) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(1, country_); - } - if (((bitField0_ & 0x00000002) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(2, region_); - } - if (((bitField0_ & 0x00000004) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(3, postalCode_); - } - if (((bitField0_ & 0x00000008) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(4, originPostalCode_); - } - if (((bitField0_ & 0x00000010) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getFlatPrice()); - } - if (((bitField0_ & 0x00000020) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(6, carrierPrice_); - } - if (((bitField0_ & 0x00000040) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 7, getCarrierPriceFlatAdjustment()); - } - if (((bitField0_ & 0x00000080) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeDoubleSize( - 8, carrierPricePercentageAdjustment_); - } - if (((bitField0_ & 0x00000100) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(9, minHandlingTime_); - } - if (((bitField0_ & 0x00000200) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, maxHandlingTime_); - } - if (((bitField0_ & 0x00000400) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(11, fixedMinTransitTime_); - } - if (((bitField0_ & 0x00000800) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(12, fixedMaxTransitTime_); - } - if (((bitField0_ & 0x00001000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(13, carrierTransitTime_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } + /** + * + * + *
+     * Bike storage.
+     * 
+ * + * BIKE_STORAGE = 4; + */ + public static final int BIKE_STORAGE_VALUE = 4; - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj - instanceof com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping)) { - return super.equals(obj); - } - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping other = - (com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) obj; + /** + * + * + *
+     * Central air conditioning.
+     * 
+ * + * CENTRAL_AC = 5; + */ + public static final int CENTRAL_AC_VALUE = 5; - if (hasCountry() != other.hasCountry()) return false; - if (hasCountry()) { - if (!getCountry().equals(other.getCountry())) return false; - } - if (hasRegion() != other.hasRegion()) return false; - if (hasRegion()) { - if (!getRegion().equals(other.getRegion())) return false; - } - if (hasPostalCode() != other.hasPostalCode()) return false; - if (hasPostalCode()) { - if (!getPostalCode().equals(other.getPostalCode())) return false; - } - if (hasOriginPostalCode() != other.hasOriginPostalCode()) return false; - if (hasOriginPostalCode()) { - if (!getOriginPostalCode().equals(other.getOriginPostalCode())) return false; - } - if (hasFlatPrice() != other.hasFlatPrice()) return false; - if (hasFlatPrice()) { - if (!getFlatPrice().equals(other.getFlatPrice())) return false; - } - if (hasCarrierPrice() != other.hasCarrierPrice()) return false; - if (hasCarrierPrice()) { - if (carrierPrice_ != other.carrierPrice_) return false; - } - if (hasCarrierPriceFlatAdjustment() != other.hasCarrierPriceFlatAdjustment()) return false; - if (hasCarrierPriceFlatAdjustment()) { - if (!getCarrierPriceFlatAdjustment().equals(other.getCarrierPriceFlatAdjustment())) - return false; - } - if (hasCarrierPricePercentageAdjustment() != other.hasCarrierPricePercentageAdjustment()) - return false; - if (hasCarrierPricePercentageAdjustment()) { - if (java.lang.Double.doubleToLongBits(getCarrierPricePercentageAdjustment()) - != java.lang.Double.doubleToLongBits(other.getCarrierPricePercentageAdjustment())) - return false; - } - if (hasMinHandlingTime() != other.hasMinHandlingTime()) return false; - if (hasMinHandlingTime()) { - if (getMinHandlingTime() != other.getMinHandlingTime()) return false; - } - if (hasMaxHandlingTime() != other.hasMaxHandlingTime()) return false; - if (hasMaxHandlingTime()) { - if (getMaxHandlingTime() != other.getMaxHandlingTime()) return false; - } - if (hasFixedMinTransitTime() != other.hasFixedMinTransitTime()) return false; - if (hasFixedMinTransitTime()) { - if (getFixedMinTransitTime() != other.getFixedMinTransitTime()) return false; - } - if (hasFixedMaxTransitTime() != other.hasFixedMaxTransitTime()) return false; - if (hasFixedMaxTransitTime()) { - if (getFixedMaxTransitTime() != other.getFixedMaxTransitTime()) return false; - } - if (hasCarrierTransitTime() != other.hasCarrierTransitTime()) return false; - if (hasCarrierTransitTime()) { - if (carrierTransitTime_ != other.carrierTransitTime_) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } + /** + * + * + *
+     * Dishwasher.
+     * 
+ * + * DISHWASHER = 6; + */ + public static final int DISHWASHER_VALUE = 6; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasCountry()) { - hash = (37 * hash) + COUNTRY_FIELD_NUMBER; - hash = (53 * hash) + getCountry().hashCode(); - } - if (hasRegion()) { - hash = (37 * hash) + REGION_FIELD_NUMBER; - hash = (53 * hash) + getRegion().hashCode(); - } - if (hasPostalCode()) { - hash = (37 * hash) + POSTAL_CODE_FIELD_NUMBER; - hash = (53 * hash) + getPostalCode().hashCode(); - } - if (hasOriginPostalCode()) { - hash = (37 * hash) + ORIGIN_POSTAL_CODE_FIELD_NUMBER; - hash = (53 * hash) + getOriginPostalCode().hashCode(); - } - if (hasFlatPrice()) { - hash = (37 * hash) + FLAT_PRICE_FIELD_NUMBER; - hash = (53 * hash) + getFlatPrice().hashCode(); - } - if (hasCarrierPrice()) { - hash = (37 * hash) + CARRIER_PRICE_FIELD_NUMBER; - hash = (53 * hash) + carrierPrice_; - } - if (hasCarrierPriceFlatAdjustment()) { - hash = (37 * hash) + CARRIER_PRICE_FLAT_ADJUSTMENT_FIELD_NUMBER; - hash = (53 * hash) + getCarrierPriceFlatAdjustment().hashCode(); - } - if (hasCarrierPricePercentageAdjustment()) { - hash = (37 * hash) + CARRIER_PRICE_PERCENTAGE_ADJUSTMENT_FIELD_NUMBER; - hash = - (53 * hash) - + com.google.protobuf.Internal.hashLong( - java.lang.Double.doubleToLongBits(getCarrierPricePercentageAdjustment())); - } - if (hasMinHandlingTime()) { - hash = (37 * hash) + MIN_HANDLING_TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMinHandlingTime()); - } - if (hasMaxHandlingTime()) { - hash = (37 * hash) + MAX_HANDLING_TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxHandlingTime()); - } - if (hasFixedMinTransitTime()) { - hash = (37 * hash) + FIXED_MIN_TRANSIT_TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getFixedMinTransitTime()); - } - if (hasFixedMaxTransitTime()) { - hash = (37 * hash) + FIXED_MAX_TRANSIT_TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getFixedMaxTransitTime()); - } - if (hasCarrierTransitTime()) { - hash = (37 * hash) + CARRIER_TRANSIT_TIME_FIELD_NUMBER; - hash = (53 * hash) + carrierTransitTime_; - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } + /** + * + * + *
+     * Dog park.
+     * 
+ * + * DOG_PARK = 7; + */ + public static final int DOG_PARK_VALUE = 7; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom(java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + /** + * + * + *
+     * Elevator.
+     * 
+ * + * ELEVATOR = 8; + */ + public static final int ELEVATOR_VALUE = 8; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom( - java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + /** + * + * + *
+     * EV charging.
+     * 
+ * + * EV_CHARGING = 9; + */ + public static final int EV_CHARGING_VALUE = 9; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom(com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + /** + * + * + *
+     * Fenced lot.
+     * 
+ * + * FENCED_LOT = 10; + */ + public static final int FENCED_LOT_VALUE = 10; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + /** + * + * + *
+     * Fireplace.
+     * 
+ * + * FIREPLACE = 11; + */ + public static final int FIREPLACE_VALUE = 11; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + /** + * + * + *
+     * Fitness center.
+     * 
+ * + * FITNESS_CENTER = 12; + */ + public static final int FITNESS_CENTER_VALUE = 12; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + /** + * + * + *
+     * Forced air heating.
+     * 
+ * + * FORCED_AIR_HEATING = 13; + */ + public static final int FORCED_AIR_HEATING_VALUE = 13; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); - } + /** + * + * + *
+     * Fully furnished.
+     * 
+ * + * FULLY_FURNISHED = 14; + */ + public static final int FULLY_FURNISHED_VALUE = 14; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException( - PARSER, input, extensionRegistry); - } + /** + * + * + *
+     * Garage.
+     * 
+ * + * GARAGE = 15; + */ + public static final int GARAGE_VALUE = 15; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); - } + /** + * + * + *
+     * Gated community.
+     * 
+ * + * GATED_COMMUNITY = 16; + */ + public static final int GATED_COMMUNITY_VALUE = 16; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseDelimitedFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( - PARSER, input, extensionRegistry); - } + /** + * + * + *
+     * Hardwood floors.
+     * 
+ * + * HARDWOOD_FLOORS = 17; + */ + public static final int HARDWOOD_FLOORS_VALUE = 17; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); - } + /** + * + * + *
+     * High speed internet.
+     * 
+ * + * HIGH_SPEED_INTERNET = 18; + */ + public static final int HIGH_SPEED_INTERNET_VALUE = 18; - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException( - PARSER, input, extensionRegistry); - } + /** + * + * + *
+     * Intercom.
+     * 
+ * + * INTERCOM = 19; + */ + public static final int INTERCOM_VALUE = 19; - @java.lang.Override - public Builder newBuilderForType() { - return newBuilder(); - } + /** + * + * + *
+     * In-unit washer and dryer.
+     * 
+ * + * IN_UNIT_WASHER_DRYER = 20; + */ + public static final int IN_UNIT_WASHER_DRYER_VALUE = 20; - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } + /** + * + * + *
+     * Kitchen.
+     * 
+ * + * KITCHEN = 21; + */ + public static final int KITCHEN_VALUE = 21; - public static Builder newBuilder( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } + /** + * + * + *
+     * Large closets.
+     * 
+ * + * LARGE_CLOSETS = 22; + */ + public static final int LARGE_CLOSETS_VALUE = 22; - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); - } + /** + * + * + *
+     * Multisport court.
+     * 
+ * + * MULTISPORT_COURT = 23; + */ + public static final int MULTISPORT_COURT_VALUE = 23; - @java.lang.Override - protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } + /** + * + * + *
+     * Onsite laundry.
+     * 
+ * + * ONSITE_LAUNDRY = 24; + */ + public static final int ONSITE_LAUNDRY_VALUE = 24; /** * * *
-     * Carrier-based shipping configuration. Allows for setting shipping speed or
-     * shipping cost based on a carrier's provided info.
+     * Outdoor lounge.
      * 
* - * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping} + * OUTDOOR_LOUNGE = 25; */ - public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder - implements - // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_descriptor; - } + public static final int OUTDOOR_LOUNGE_VALUE = 25; - @java.lang.Override - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.class, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - .class); - } + /** + * + * + *
+     * Parking.
+     * 
+ * + * PARKING = 26; + */ + public static final int PARKING_VALUE = 26; - // Construct using - // com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } + /** + * + * + *
+     * Patio.
+     * 
+ * + * PATIO = 27; + */ + public static final int PATIO_VALUE = 27; - private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } + /** + * + * + *
+     * Pickleball court.
+     * 
+ * + * PICKLEBALL_COURT = 28; + */ + public static final int PICKLEBALL_COURT_VALUE = 28; - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - internalGetFlatPriceFieldBuilder(); - internalGetCarrierPriceFlatAdjustmentFieldBuilder(); - } - } + /** + * + * + *
+     * Pool.
+     * 
+ * + * POOL = 29; + */ + public static final int POOL_VALUE = 29; - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - country_ = ""; - region_ = ""; - postalCode_ = ""; - originPostalCode_ = ""; - flatPrice_ = null; - if (flatPriceBuilder_ != null) { - flatPriceBuilder_.dispose(); - flatPriceBuilder_ = null; - } - carrierPrice_ = 0; - carrierPriceFlatAdjustment_ = null; - if (carrierPriceFlatAdjustmentBuilder_ != null) { - carrierPriceFlatAdjustmentBuilder_.dispose(); - carrierPriceFlatAdjustmentBuilder_ = null; - } - carrierPricePercentageAdjustment_ = 0D; - minHandlingTime_ = 0L; - maxHandlingTime_ = 0L; - fixedMinTransitTime_ = 0L; - fixedMaxTransitTime_ = 0L; - carrierTransitTime_ = 0; - return this; - } + /** + * + * + *
+     * Refrigerator.
+     * 
+ * + * REFRIGERATOR = 30; + */ + public static final int REFRIGERATOR_VALUE = 30; - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_descriptor; - } + /** + * + * + *
+     * Soccer field.
+     * 
+ * + * SOCCER_FIELD = 31; + */ + public static final int SOCCER_FIELD_VALUE = 31; - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - getDefaultInstanceForType() { - return com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - .getDefaultInstance(); - } + /** + * + * + *
+     * Tennis court.
+     * 
+ * + * TENNIS_COURT = 32; + */ + public static final int TENNIS_COURT_VALUE = 32; - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping build() { - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping result = - buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } + /** + * + * + *
+     * Walk-in closets.
+     * 
+ * + * WALK_IN_CLOSETS = 33; + */ + public static final int WALK_IN_CLOSETS_VALUE = 33; - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - buildPartial() { - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping result = - new com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping(this); - if (bitField0_ != 0) { - buildPartial0(result); - } - onBuilt(); - return result; - } + /** + * + * + *
+     * Wheelchair accessibility.
+     * 
+ * + * WHEELCHAIR_ACCESS = 34; + */ + public static final int WHEELCHAIR_ACCESS_VALUE = 34; - private void buildPartial0( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping result) { - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.country_ = country_; - to_bitField0_ |= 0x00000001; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.region_ = region_; - to_bitField0_ |= 0x00000002; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.postalCode_ = postalCode_; - to_bitField0_ |= 0x00000004; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.originPostalCode_ = originPostalCode_; - to_bitField0_ |= 0x00000008; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.flatPrice_ = flatPriceBuilder_ == null ? flatPrice_ : flatPriceBuilder_.build(); - to_bitField0_ |= 0x00000010; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.carrierPrice_ = carrierPrice_; - to_bitField0_ |= 0x00000020; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.carrierPriceFlatAdjustment_ = - carrierPriceFlatAdjustmentBuilder_ == null - ? carrierPriceFlatAdjustment_ - : carrierPriceFlatAdjustmentBuilder_.build(); - to_bitField0_ |= 0x00000040; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.carrierPricePercentageAdjustment_ = carrierPricePercentageAdjustment_; - to_bitField0_ |= 0x00000080; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.minHandlingTime_ = minHandlingTime_; - to_bitField0_ |= 0x00000100; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.maxHandlingTime_ = maxHandlingTime_; - to_bitField0_ |= 0x00000200; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.fixedMinTransitTime_ = fixedMinTransitTime_; - to_bitField0_ |= 0x00000400; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.fixedMaxTransitTime_ = fixedMaxTransitTime_; - to_bitField0_ |= 0x00000800; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.carrierTransitTime_ = carrierTransitTime_; - to_bitField0_ |= 0x00001000; - } - result.bitField0_ |= to_bitField0_; + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); } + return value; + } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other - instanceof com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) { - return mergeFrom( - (com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) other); - } else { - super.mergeFrom(other); - return this; - } - } + /** + * @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 AmenityFeature valueOf(int value) { + return forNumber(value); + } - public Builder mergeFrom( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping other) { - if (other - == com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - .getDefaultInstance()) return this; - if (other.hasCountry()) { - country_ = other.country_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasRegion()) { - region_ = other.region_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.hasPostalCode()) { - postalCode_ = other.postalCode_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (other.hasOriginPostalCode()) { - originPostalCode_ = other.originPostalCode_; - bitField0_ |= 0x00000008; - onChanged(); - } - if (other.hasFlatPrice()) { - mergeFlatPrice(other.getFlatPrice()); - } - if (other.hasCarrierPrice()) { - setCarrierPriceValue(other.getCarrierPriceValue()); - } - if (other.hasCarrierPriceFlatAdjustment()) { - mergeCarrierPriceFlatAdjustment(other.getCarrierPriceFlatAdjustment()); - } - if (other.hasCarrierPricePercentageAdjustment()) { - setCarrierPricePercentageAdjustment(other.getCarrierPricePercentageAdjustment()); - } - if (other.hasMinHandlingTime()) { - setMinHandlingTime(other.getMinHandlingTime()); - } - if (other.hasMaxHandlingTime()) { - setMaxHandlingTime(other.getMaxHandlingTime()); - } - if (other.hasFixedMinTransitTime()) { - setFixedMinTransitTime(other.getFixedMinTransitTime()); - } - if (other.hasFixedMaxTransitTime()) { - setFixedMaxTransitTime(other.getFixedMaxTransitTime()); - } - if (other.hasCarrierTransitTime()) { - setCarrierTransitTimeValue(other.getCarrierTransitTimeValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AmenityFeature forNumber(int value) { + switch (value) { + case 0: + return AMENITY_FEATURE_UNSPECIFIED; + case 1: + return BALCONY; + case 2: + return BASEMENT; + case 3: + return BASKETBALL_COURT; + case 4: + return BIKE_STORAGE; + case 5: + return CENTRAL_AC; + case 6: + return DISHWASHER; + case 7: + return DOG_PARK; + case 8: + return ELEVATOR; + case 9: + return EV_CHARGING; + case 10: + return FENCED_LOT; + case 11: + return FIREPLACE; + case 12: + return FITNESS_CENTER; + case 13: + return FORCED_AIR_HEATING; + case 14: + return FULLY_FURNISHED; + case 15: + return GARAGE; + case 16: + return GATED_COMMUNITY; + case 17: + return HARDWOOD_FLOORS; + case 18: + return HIGH_SPEED_INTERNET; + case 19: + return INTERCOM; + case 20: + return IN_UNIT_WASHER_DRYER; + case 21: + return KITCHEN; + case 22: + return LARGE_CLOSETS; + case 23: + return MULTISPORT_COURT; + case 24: + return ONSITE_LAUNDRY; + case 25: + return OUTDOOR_LOUNGE; + case 26: + return PARKING; + case 27: + return PATIO; + case 28: + return PICKLEBALL_COURT; + case 29: + return POOL; + case 30: + return REFRIGERATOR; + case 31: + return SOCCER_FIELD; + case 32: + return TENNIS_COURT; + case 33: + return WALK_IN_CLOSETS; + case 34: + return WHEELCHAIR_ACCESS; + default: + return null; } + } - @java.lang.Override - public final boolean isInitialized() { - return true; - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - @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: - { - country_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: - { - region_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: - { - postalCode_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: - { - originPostalCode_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 42: - { - input.readMessage( - internalGetFlatPriceFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 48: - { - carrierPrice_ = input.readEnum(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: - { - input.readMessage( - internalGetCarrierPriceFlatAdjustmentFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 65: - { - carrierPricePercentageAdjustment_ = input.readDouble(); - bitField0_ |= 0x00000080; - break; - } // case 65 - case 72: - { - minHandlingTime_ = input.readInt64(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 80: - { - maxHandlingTime_ = input.readInt64(); - bitField0_ |= 0x00000200; - break; - } // case 80 - case 88: - { - fixedMinTransitTime_ = input.readInt64(); - bitField0_ |= 0x00000400; - break; - } // case 88 - case 96: - { - fixedMaxTransitTime_ = input.readInt64(); - bitField0_ |= 0x00000800; - break; - } // case 96 - case 104: - { - carrierTransitTime_ = input.readEnum(); - bitField0_ |= 0x00001000; - break; - } // case 104 - 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 static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public AmenityFeature findValueByNumber(int number) { + return AmenityFeature.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()); + } - private int bitField0_; + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - private java.lang.Object country_ = ""; + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(6); + } - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return Whether the country field is set. - */ - public boolean hasCountry() { - return ((bitField0_ & 0x00000001) != 0); + private static final AmenityFeature[] VALUES = values(); + + public static AmenityFeature 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()]; + } - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return The country. - */ - public java.lang.String getCountry() { - java.lang.Object ref = country_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - country_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + private final int value; - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return The bytes for country. - */ - public com.google.protobuf.ByteString getCountryBytes() { - java.lang.Object ref = country_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - country_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private AmenityFeature(int value) { + this.value = value; + } - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @param value The country to set. - * @return This builder for chaining. - */ - public Builder setCountry(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - country_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature) + } - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @return This builder for chaining. - */ - public Builder clearCountry() { - country_ = getDefaultInstance().getCountry(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded} + */ + public enum UtilitiesIncluded implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Unspecified utilities included.
+     * 
+ * + * UTILITIES_INCLUDED_UNSPECIFIED = 0; + */ + UTILITIES_INCLUDED_UNSPECIFIED(0), + /** + * + * + *
+     * Electricity.
+     * 
+ * + * ELECTRICITY = 1; + */ + ELECTRICITY(1), + /** + * + * + *
+     * Gas.
+     * 
+ * + * GAS = 2; + */ + GAS(2), + /** + * + * + *
+     * Internet.
+     * 
+ * + * INTERNET = 3; + */ + INTERNET(3), + /** + * + * + *
+     * Trash.
+     * 
+ * + * TRASH = 4; + */ + TRASH(4), + /** + * + * + *
+     * Water.
+     * 
+ * + * WATER = 5; + */ + WATER(5), + UNRECOGNIZED(-1), + ; - /** - * - * - *
-       * The [CLDR territory
-       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
-       * of the country to which an item will ship.
-       * 
- * - * optional string country = 1; - * - * @param value The bytes for country to set. - * @return This builder for chaining. - */ - public Builder setCountryBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - country_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "UtilitiesIncluded"); + } - private java.lang.Object region_ = ""; + /** + * + * + *
+     * Unspecified utilities included.
+     * 
+ * + * UTILITIES_INCLUDED_UNSPECIFIED = 0; + */ + public static final int UTILITIES_INCLUDED_UNSPECIFIED_VALUE = 0; - /** - * - * - *
-       * The geographic region to which a shipping rate applies.
-       * See [region](https://support.google.com/merchants/answer/6324484) for
-       * more information.
-       * 
- * - * optional string region = 2; - * - * @return Whether the region field is set. - */ - public boolean hasRegion() { - return ((bitField0_ & 0x00000002) != 0); - } + /** + * + * + *
+     * Electricity.
+     * 
+ * + * ELECTRICITY = 1; + */ + public static final int ELECTRICITY_VALUE = 1; - /** - * - * - *
-       * The geographic region to which a shipping rate applies.
-       * See [region](https://support.google.com/merchants/answer/6324484) for
-       * more information.
-       * 
- * - * optional string region = 2; - * - * @return The region. - */ - public java.lang.String getRegion() { - java.lang.Object ref = region_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - region_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + /** + * + * + *
+     * Gas.
+     * 
+ * + * GAS = 2; + */ + public static final int GAS_VALUE = 2; - /** - * - * - *
-       * The geographic region to which a shipping rate applies.
-       * See [region](https://support.google.com/merchants/answer/6324484) for
-       * more information.
-       * 
- * - * optional string region = 2; - * - * @return The bytes for region. - */ - public com.google.protobuf.ByteString getRegionBytes() { - java.lang.Object ref = region_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - region_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * + * + *
+     * Internet.
+     * 
+ * + * INTERNET = 3; + */ + public static final int INTERNET_VALUE = 3; - /** - * - * - *
-       * The geographic region to which a shipping rate applies.
-       * See [region](https://support.google.com/merchants/answer/6324484) for
-       * more information.
-       * 
- * - * optional string region = 2; - * - * @param value The region to set. - * @return This builder for chaining. - */ - public Builder setRegion(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - region_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } + /** + * + * + *
+     * Trash.
+     * 
+ * + * TRASH = 4; + */ + public static final int TRASH_VALUE = 4; - /** - * - * - *
-       * The geographic region to which a shipping rate applies.
-       * See [region](https://support.google.com/merchants/answer/6324484) for
-       * more information.
-       * 
- * - * optional string region = 2; - * - * @return This builder for chaining. - */ - public Builder clearRegion() { - region_ = getDefaultInstance().getRegion(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } + /** + * + * + *
+     * Water.
+     * 
+ * + * WATER = 5; + */ + public static final int WATER_VALUE = 5; - /** - * - * - *
-       * The geographic region to which a shipping rate applies.
-       * See [region](https://support.google.com/merchants/answer/6324484) for
-       * more information.
-       * 
- * - * optional string region = 2; - * - * @param value The bytes for region to set. - * @return This builder for chaining. - */ - public Builder setRegionBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - region_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); } + return value; + } - private java.lang.Object postalCode_ = ""; + /** + * @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 UtilitiesIncluded valueOf(int value) { + return forNumber(value); + } - /** - * - * - *
-       * The postal code range that the shipping rate applies to, represented by
-       * a postal code (eg. `94043`), a postal code prefix followed by a *
-       * wildcard (eg. `94*`), a range between two postal codes (eg.
-       * `94043-98033`) or two postal code prefixes of equal length (eg.
-       * `94*-98*`).
-       * 
- * - * optional string postal_code = 3; - * - * @return Whether the postalCode field is set. - */ - public boolean hasPostalCode() { - return ((bitField0_ & 0x00000004) != 0); + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static UtilitiesIncluded forNumber(int value) { + switch (value) { + case 0: + return UTILITIES_INCLUDED_UNSPECIFIED; + case 1: + return ELECTRICITY; + case 2: + return GAS; + case 3: + return INTERNET; + case 4: + return TRASH; + case 5: + return WATER; + default: + return null; } + } - /** - * - * - *
-       * The postal code range that the shipping rate applies to, represented by
-       * a postal code (eg. `94043`), a postal code prefix followed by a *
-       * wildcard (eg. `94*`), a range between two postal codes (eg.
-       * `94043-98033`) or two postal code prefixes of equal length (eg.
-       * `94*-98*`).
-       * 
- * - * optional string postal_code = 3; - * - * @return The postalCode. - */ - public java.lang.String getPostalCode() { - java.lang.Object ref = postalCode_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - postalCode_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } - /** - * - * - *
-       * The postal code range that the shipping rate applies to, represented by
-       * a postal code (eg. `94043`), a postal code prefix followed by a *
-       * wildcard (eg. `94*`), a range between two postal codes (eg.
-       * `94043-98033`) or two postal code prefixes of equal length (eg.
-       * `94*-98*`).
-       * 
- * - * optional string postal_code = 3; - * - * @return The bytes for postalCode. - */ - public com.google.protobuf.ByteString getPostalCodeBytes() { - java.lang.Object ref = postalCode_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - postalCode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private static final com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public UtilitiesIncluded findValueByNumber(int number) { + return UtilitiesIncluded.forNumber(number); + } + }; - /** - * - * - *
-       * The postal code range that the shipping rate applies to, represented by
-       * a postal code (eg. `94043`), a postal code prefix followed by a *
-       * wildcard (eg. `94*`), a range between two postal codes (eg.
-       * `94043-98033`) or two postal code prefixes of equal length (eg.
-       * `94*-98*`).
-       * 
- * - * optional string postal_code = 3; - * - * @param value The postalCode to set. - * @return This builder for chaining. - */ - public Builder setPostalCode(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - postalCode_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; + 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()); + } - /** - * - * - *
-       * The postal code range that the shipping rate applies to, represented by
-       * a postal code (eg. `94043`), a postal code prefix followed by a *
-       * wildcard (eg. `94*`), a range between two postal codes (eg.
-       * `94043-98033`) or two postal code prefixes of equal length (eg.
-       * `94*-98*`).
-       * 
- * - * optional string postal_code = 3; - * - * @return This builder for chaining. - */ - public Builder clearPostalCode() { - postalCode_ = getDefaultInstance().getPostalCode(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(7); + } + + private static final UtilitiesIncluded[] VALUES = values(); + + public static UtilitiesIncluded 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()]; + } - /** - * - * - *
-       * The postal code range that the shipping rate applies to, represented by
-       * a postal code (eg. `94043`), a postal code prefix followed by a *
-       * wildcard (eg. `94*`), a range between two postal codes (eg.
-       * `94043-98033`) or two postal code prefixes of equal length (eg.
-       * `94*-98*`).
-       * 
- * - * optional string postal_code = 3; - * - * @param value The bytes for postalCode to set. - * @return This builder for chaining. - */ - public Builder setPostalCodeBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - postalCode_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } + private final int value; - private java.lang.Object originPostalCode_ = ""; + private UtilitiesIncluded(int value) { + this.value = value; + } - /** - * - * - *
-       * The source location postal code from which this offer ships. Represented
-       * only by a full-length postal code.
-       * 
- * - * optional string origin_postal_code = 4; - * - * @return Whether the originPostalCode field is set. - */ - public boolean hasOriginPostalCode() { - return ((bitField0_ & 0x00000008) != 0); - } + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded) + } - /** - * - * - *
-       * The source location postal code from which this offer ships. Represented
-       * only by a full-length postal code.
-       * 
- * - * optional string origin_postal_code = 4; - * - * @return The originPostalCode. - */ - public java.lang.String getOriginPostalCode() { - java.lang.Object ref = originPostalCode_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - originPostalCode_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + /** + * + * + *
+   * The specialty housing type for the property.
+   * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType} + */ + public enum SpecialtyHousingType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Unspecified specialty housing type.
+     * 
+ * + * SPECIALTY_HOUSING_TYPE_UNSPECIFIED = 0; + */ + SPECIALTY_HOUSING_TYPE_UNSPECIFIED(0), + /** + * + * + *
+     * Corporate housing.
+     * 
+ * + * CORPORATE = 1; + */ + CORPORATE(1), + /** + * + * + *
+     * Low income housing.
+     * 
+ * + * LOW_INCOME = 2; + */ + LOW_INCOME(2), + /** + * + * + *
+     * Military housing.
+     * 
+ * + * MILITARY = 3; + */ + MILITARY(3), + /** + * + * + *
+     * Senior housing.
+     * 
+ * + * SENIOR = 4; + */ + SENIOR(4), + /** + * + * + *
+     * Short term housing.
+     * 
+ * + * SHORT_TERM = 5; + */ + SHORT_TERM(5), + /** + * + * + *
+     * Student housing.
+     * 
+ * + * STUDENT = 6; + */ + STUDENT(6), + UNRECOGNIZED(-1), + ; - /** - * - * - *
-       * The source location postal code from which this offer ships. Represented
-       * only by a full-length postal code.
-       * 
- * - * optional string origin_postal_code = 4; - * - * @return The bytes for originPostalCode. - */ - public com.google.protobuf.ByteString getOriginPostalCodeBytes() { - java.lang.Object ref = originPostalCode_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - originPostalCode_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "SpecialtyHousingType"); + } - /** - * - * - *
-       * The source location postal code from which this offer ships. Represented
-       * only by a full-length postal code.
-       * 
- * - * optional string origin_postal_code = 4; - * - * @param value The originPostalCode to set. - * @return This builder for chaining. - */ - public Builder setOriginPostalCode(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - originPostalCode_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } + /** + * + * + *
+     * Unspecified specialty housing type.
+     * 
+ * + * SPECIALTY_HOUSING_TYPE_UNSPECIFIED = 0; + */ + public static final int SPECIALTY_HOUSING_TYPE_UNSPECIFIED_VALUE = 0; - /** - * - * - *
-       * The source location postal code from which this offer ships. Represented
-       * only by a full-length postal code.
-       * 
- * - * optional string origin_postal_code = 4; - * - * @return This builder for chaining. - */ - public Builder clearOriginPostalCode() { - originPostalCode_ = getDefaultInstance().getOriginPostalCode(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } + /** + * + * + *
+     * Corporate housing.
+     * 
+ * + * CORPORATE = 1; + */ + public static final int CORPORATE_VALUE = 1; - /** - * - * - *
-       * The source location postal code from which this offer ships. Represented
-       * only by a full-length postal code.
-       * 
- * - * optional string origin_postal_code = 4; - * - * @param value The bytes for originPostalCode to set. - * @return This builder for chaining. - */ - public Builder setOriginPostalCodeBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - originPostalCode_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } + /** + * + * + *
+     * Low income housing.
+     * 
+ * + * LOW_INCOME = 2; + */ + public static final int LOW_INCOME_VALUE = 2; - private com.google.shopping.type.Price flatPrice_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - flatPriceBuilder_; + /** + * + * + *
+     * Military housing.
+     * 
+ * + * MILITARY = 3; + */ + public static final int MILITARY_VALUE = 3; - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - * - * @return Whether the flatPrice field is set. - */ - public boolean hasFlatPrice() { - return ((bitField0_ & 0x00000010) != 0); - } + /** + * + * + *
+     * Senior housing.
+     * 
+ * + * SENIOR = 4; + */ + public static final int SENIOR_VALUE = 4; - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - * - * @return The flatPrice. - */ - public com.google.shopping.type.Price getFlatPrice() { - if (flatPriceBuilder_ == null) { - return flatPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : flatPrice_; - } else { - return flatPriceBuilder_.getMessage(); - } - } + /** + * + * + *
+     * Short term housing.
+     * 
+ * + * SHORT_TERM = 5; + */ + public static final int SHORT_TERM_VALUE = 5; - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - */ - public Builder setFlatPrice(com.google.shopping.type.Price value) { - if (flatPriceBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - flatPrice_ = value; - } else { - flatPriceBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } + /** + * + * + *
+     * Student housing.
+     * 
+ * + * STUDENT = 6; + */ + public static final int STUDENT_VALUE = 6; - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - */ - public Builder setFlatPrice(com.google.shopping.type.Price.Builder builderForValue) { - if (flatPriceBuilder_ == null) { - flatPrice_ = builderForValue.build(); - } else { - flatPriceBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); } + return value; + } - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - */ - public Builder mergeFlatPrice(com.google.shopping.type.Price value) { - if (flatPriceBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0) - && flatPrice_ != null - && flatPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { - getFlatPriceBuilder().mergeFrom(value); - } else { - flatPrice_ = value; - } - } else { - flatPriceBuilder_.mergeFrom(value); - } - if (flatPrice_ != null) { - bitField0_ |= 0x00000010; - onChanged(); - } - return this; - } + /** + * @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 SpecialtyHousingType valueOf(int value) { + return forNumber(value); + } - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - */ - public Builder clearFlatPrice() { - bitField0_ = (bitField0_ & ~0x00000010); - flatPrice_ = null; - if (flatPriceBuilder_ != null) { - flatPriceBuilder_.dispose(); - flatPriceBuilder_ = null; - } - onChanged(); - return this; + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static SpecialtyHousingType forNumber(int value) { + switch (value) { + case 0: + return SPECIALTY_HOUSING_TYPE_UNSPECIFIED; + case 1: + return CORPORATE; + case 2: + return LOW_INCOME; + case 3: + return MILITARY; + case 4: + return SENIOR; + case 5: + return SHORT_TERM; + case 6: + return STUDENT; + default: + return null; } + } - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - */ - public com.google.shopping.type.Price.Builder getFlatPriceBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return internalGetFlatPriceFieldBuilder().getBuilder(); - } + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - */ - public com.google.shopping.type.PriceOrBuilder getFlatPriceOrBuilder() { - if (flatPriceBuilder_ != null) { - return flatPriceBuilder_.getMessageOrBuilder(); - } else { - return flatPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : flatPrice_; - } + private static final com.google.protobuf.Internal.EnumLiteMap + internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public SpecialtyHousingType findValueByNumber(int number) { + return SpecialtyHousingType.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()); + } - /** - * - * - *
-       * Fixed shipping price, represented as a number with currency. Cannot be
-       * set together with
-       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
-       * or its adjustments
-       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
-       * 
- * - * optional .google.shopping.type.Price flat_price = 5; - */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - internalGetFlatPriceFieldBuilder() { - if (flatPriceBuilder_ == null) { - flatPriceBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder>( - getFlatPrice(), getParentForChildren(), isClean()); - flatPrice_ = null; - } - return flatPriceBuilder_; - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - private int carrierPrice_ = 0; + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDescriptor() + .getEnumTypes() + .get(8); + } - /** - * - * - *
-       * Selected carrier to calculate the shipping price from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate shipping price.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
-       * 
- * - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @return Whether the carrierPrice field is set. - */ - @java.lang.Override - public boolean hasCarrierPrice() { - return ((bitField0_ & 0x00000020) != 0); - } + private static final SpecialtyHousingType[] VALUES = values(); - /** - * - * - *
-       * Selected carrier to calculate the shipping price from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate shipping price.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
-       * 
- * - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @return The enum numeric value on the wire for carrierPrice. - */ - @java.lang.Override - public int getCarrierPriceValue() { - return carrierPrice_; + public static SpecialtyHousingType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); } - - /** - * - * - *
-       * Selected carrier to calculate the shipping price from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate shipping price.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
-       * 
- * - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @param value The enum numeric value on the wire for carrierPrice to set. - * @return This builder for chaining. - */ - public Builder setCarrierPriceValue(int value) { - carrierPrice_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; + if (desc.getIndex() == -1) { + return UNRECOGNIZED; } + return VALUES[desc.getIndex()]; + } - /** - * - * - *
-       * Selected carrier to calculate the shipping price from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate shipping price.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
-       * 
- * - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @return The carrierPrice. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption - getCarrierPrice() { - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption result = - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption.forNumber( - carrierPrice_); - return result == null - ? com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption - .UNRECOGNIZED - : result; - } + private final int value; - /** - * - * - *
-       * Selected carrier to calculate the shipping price from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate shipping price.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
-       * 
- * - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @param value The carrierPrice to set. - * @return This builder for chaining. - */ - public Builder setCarrierPrice( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - carrierPrice_ = value.getNumber(); - onChanged(); - return this; - } + private SpecialtyHousingType(int value) { + this.value = value; + } - /** - * - * - *
-       * Selected carrier to calculate the shipping price from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate shipping price.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
-       * 
- * - * - * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; - * - * - * @return This builder for chaining. - */ - public Builder clearCarrierPrice() { - bitField0_ = (bitField0_ & ~0x00000020); - carrierPrice_ = 0; - onChanged(); - return this; - } + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType) + } - private com.google.shopping.type.Price carrierPriceFlatAdjustment_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - carrierPriceFlatAdjustmentBuilder_; + public interface ShippingBusinessDaysConfigOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) + com.google.protobuf.MessageOrBuilder { - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - * - * @return Whether the carrierPriceFlatAdjustment field is set. - */ - public boolean hasCarrierPriceFlatAdjustment() { - return ((bitField0_ & 0x00000040) != 0); - } + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return Whether the country field is set. + */ + boolean hasCountry(); - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - * - * @return The carrierPriceFlatAdjustment. - */ - public com.google.shopping.type.Price getCarrierPriceFlatAdjustment() { - if (carrierPriceFlatAdjustmentBuilder_ == null) { - return carrierPriceFlatAdjustment_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : carrierPriceFlatAdjustment_; - } else { - return carrierPriceFlatAdjustmentBuilder_.getMessage(); - } - } + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The country. + */ + java.lang.String getCountry(); - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - */ - public Builder setCarrierPriceFlatAdjustment(com.google.shopping.type.Price value) { - if (carrierPriceFlatAdjustmentBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - carrierPriceFlatAdjustment_ = value; - } else { - carrierPriceFlatAdjustmentBuilder_.setMessage(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The bytes for country. + */ + com.google.protobuf.ByteString getCountryBytes(); - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - */ - public Builder setCarrierPriceFlatAdjustment( - com.google.shopping.type.Price.Builder builderForValue) { - if (carrierPriceFlatAdjustmentBuilder_ == null) { - carrierPriceFlatAdjustment_ = builderForValue.build(); - } else { - carrierPriceFlatAdjustmentBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } + /** + * + * + *
+     * Effective days of the week considered for the delivery time calculation.
+     * May not be empty. The more business days included the faster the
+     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+     * see [Shipping handling business
+     * days](https://support.google.com/merchants/answer/16072859).
+     * 
+ * + * optional string business_days = 2; + * + * @return Whether the businessDays field is set. + */ + boolean hasBusinessDays(); - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - */ - public Builder mergeCarrierPriceFlatAdjustment(com.google.shopping.type.Price value) { - if (carrierPriceFlatAdjustmentBuilder_ == null) { - if (((bitField0_ & 0x00000040) != 0) - && carrierPriceFlatAdjustment_ != null - && carrierPriceFlatAdjustment_ - != com.google.shopping.type.Price.getDefaultInstance()) { - getCarrierPriceFlatAdjustmentBuilder().mergeFrom(value); - } else { - carrierPriceFlatAdjustment_ = value; - } - } else { - carrierPriceFlatAdjustmentBuilder_.mergeFrom(value); - } - if (carrierPriceFlatAdjustment_ != null) { - bitField0_ |= 0x00000040; - onChanged(); - } - return this; - } + /** + * + * + *
+     * Effective days of the week considered for the delivery time calculation.
+     * May not be empty. The more business days included the faster the
+     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+     * see [Shipping handling business
+     * days](https://support.google.com/merchants/answer/16072859).
+     * 
+ * + * optional string business_days = 2; + * + * @return The businessDays. + */ + java.lang.String getBusinessDays(); - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - */ - public Builder clearCarrierPriceFlatAdjustment() { - bitField0_ = (bitField0_ & ~0x00000040); - carrierPriceFlatAdjustment_ = null; - if (carrierPriceFlatAdjustmentBuilder_ != null) { - carrierPriceFlatAdjustmentBuilder_.dispose(); - carrierPriceFlatAdjustmentBuilder_ = null; - } - onChanged(); - return this; - } + /** + * + * + *
+     * Effective days of the week considered for the delivery time calculation.
+     * May not be empty. The more business days included the faster the
+     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+     * see [Shipping handling business
+     * days](https://support.google.com/merchants/answer/16072859).
+     * 
+ * + * optional string business_days = 2; + * + * @return The bytes for businessDays. + */ + com.google.protobuf.ByteString getBusinessDaysBytes(); + } - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - */ - public com.google.shopping.type.Price.Builder getCarrierPriceFlatAdjustmentBuilder() { - bitField0_ |= 0x00000040; - onChanged(); - return internalGetCarrierPriceFlatAdjustmentFieldBuilder().getBuilder(); - } + /** + * + * + *
+   * The business days during which orders are on their path to fulfillment.
+   * If not provided, Monday to Friday business days will be assumed.
+   * 
+ * + * Protobuf type {@code + * google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig} + */ + public static final class ShippingBusinessDaysConfig extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) + ShippingBusinessDaysConfigOrBuilder { + private static final long serialVersionUID = 0L; - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - */ - public com.google.shopping.type.PriceOrBuilder getCarrierPriceFlatAdjustmentOrBuilder() { - if (carrierPriceFlatAdjustmentBuilder_ != null) { - return carrierPriceFlatAdjustmentBuilder_.getMessageOrBuilder(); - } else { - return carrierPriceFlatAdjustment_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : carrierPriceFlatAdjustment_; - } - } - - /** - * - * - *
-       * A flat adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
-       * 
- * - * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; - */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - internalGetCarrierPriceFlatAdjustmentFieldBuilder() { - if (carrierPriceFlatAdjustmentBuilder_ == null) { - carrierPriceFlatAdjustmentBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder>( - getCarrierPriceFlatAdjustment(), getParentForChildren(), isClean()); - carrierPriceFlatAdjustment_ = null; - } - return carrierPriceFlatAdjustmentBuilder_; - } + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "ShippingBusinessDaysConfig"); + } - private double carrierPricePercentageAdjustment_; + // Use ShippingBusinessDaysConfig.newBuilder() to construct. + private ShippingBusinessDaysConfig(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } - /** - * - * - *
-       * A percentual adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
-       * 
- * - * optional double carrier_price_percentage_adjustment = 8; - * - * @return Whether the carrierPricePercentageAdjustment field is set. - */ - @java.lang.Override - public boolean hasCarrierPricePercentageAdjustment() { - return ((bitField0_ & 0x00000080) != 0); - } + private ShippingBusinessDaysConfig() { + country_ = ""; + businessDays_ = ""; + } - /** - * - * - *
-       * A percentual adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
-       * 
- * - * optional double carrier_price_percentage_adjustment = 8; - * - * @return The carrierPricePercentageAdjustment. - */ - @java.lang.Override - public double getCarrierPricePercentageAdjustment() { - return carrierPricePercentageAdjustment_; - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_descriptor; + } - /** - * - * - *
-       * A percentual adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
-       * 
- * - * optional double carrier_price_percentage_adjustment = 8; - * - * @param value The carrierPricePercentageAdjustment to set. - * @return This builder for chaining. - */ - public Builder setCarrierPricePercentageAdjustment(double value) { + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .class, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder.class); + } - carrierPricePercentageAdjustment_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } + private int bitField0_; + public static final int COUNTRY_FIELD_NUMBER = 1; - /** - * - * - *
-       * A percentual adjustment on the carrier price. Can be either positive or
-       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
-       * be set together with
-       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
-       * and
-       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
-       * 
- * - * optional double carrier_price_percentage_adjustment = 8; - * - * @return This builder for chaining. - */ - public Builder clearCarrierPricePercentageAdjustment() { - bitField0_ = (bitField0_ & ~0x00000080); - carrierPricePercentageAdjustment_ = 0D; - onChanged(); - return this; - } + @SuppressWarnings("serial") + private volatile java.lang.Object country_ = ""; - private long minHandlingTime_; + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return Whether the country field is set. + */ + @java.lang.Override + public boolean hasCountry() { + return ((bitField0_ & 0x00000001) != 0); + } - /** - * - * - *
-       * Minimum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time.
-       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-       * can only be set if
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * is also set.
-       * 
- * - * optional int64 min_handling_time = 9; - * - * @return Whether the minHandlingTime field is set. - */ - @java.lang.Override - public boolean hasMinHandlingTime() { - return ((bitField0_ & 0x00000100) != 0); + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The country. + */ + @java.lang.Override + public java.lang.String getCountry() { + java.lang.Object ref = country_; + 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(); + country_ = s; + return s; } + } - /** - * - * - *
-       * Minimum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time.
-       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-       * can only be set if
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * is also set.
-       * 
- * - * optional int64 min_handling_time = 9; - * - * @return The minHandlingTime. - */ - @java.lang.Override - public long getMinHandlingTime() { - return minHandlingTime_; + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The bytes for country. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCountryBytes() { + java.lang.Object ref = country_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + country_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } + } - /** - * - * - *
-       * Minimum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time.
-       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-       * can only be set if
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * is also set.
-       * 
- * - * optional int64 min_handling_time = 9; - * - * @param value The minHandlingTime to set. - * @return This builder for chaining. - */ - public Builder setMinHandlingTime(long value) { + public static final int BUSINESS_DAYS_FIELD_NUMBER = 2; - minHandlingTime_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; + @SuppressWarnings("serial") + private volatile java.lang.Object businessDays_ = ""; + + /** + * + * + *
+     * Effective days of the week considered for the delivery time calculation.
+     * May not be empty. The more business days included the faster the
+     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+     * see [Shipping handling business
+     * days](https://support.google.com/merchants/answer/16072859).
+     * 
+ * + * optional string business_days = 2; + * + * @return Whether the businessDays field is set. + */ + @java.lang.Override + public boolean hasBusinessDays() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Effective days of the week considered for the delivery time calculation.
+     * May not be empty. The more business days included the faster the
+     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+     * see [Shipping handling business
+     * days](https://support.google.com/merchants/answer/16072859).
+     * 
+ * + * optional string business_days = 2; + * + * @return The businessDays. + */ + @java.lang.Override + public java.lang.String getBusinessDays() { + java.lang.Object ref = businessDays_; + 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(); + businessDays_ = s; + return s; } + } - /** - * - * - *
-       * Minimum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time.
-       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
-       * can only be set if
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * is also set.
-       * 
- * - * optional int64 min_handling_time = 9; - * - * @return This builder for chaining. - */ - public Builder clearMinHandlingTime() { - bitField0_ = (bitField0_ & ~0x00000100); - minHandlingTime_ = 0L; - onChanged(); - return this; + /** + * + * + *
+     * Effective days of the week considered for the delivery time calculation.
+     * May not be empty. The more business days included the faster the
+     * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+     * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+     * see [Shipping handling business
+     * days](https://support.google.com/merchants/answer/16072859).
+     * 
+ * + * optional string business_days = 2; + * + * @return The bytes for businessDays. + */ + @java.lang.Override + public com.google.protobuf.ByteString getBusinessDaysBytes() { + java.lang.Object ref = businessDays_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + businessDays_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } + } - private long maxHandlingTime_; + private byte memoizedIsInitialized = -1; - /** - * - * - *
-       * Maximum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time. Both
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * and
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * are required if providing shipping speeds.
-       * 
- * - * optional int64 max_handling_time = 10; - * - * @return Whether the maxHandlingTime field is set. - */ - @java.lang.Override - public boolean hasMaxHandlingTime() { - return ((bitField0_ & 0x00000200) != 0); - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; - /** - * - * - *
-       * Maximum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time. Both
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * and
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * are required if providing shipping speeds.
-       * 
- * - * optional int64 max_handling_time = 10; - * - * @return The maxHandlingTime. - */ - @java.lang.Override - public long getMaxHandlingTime() { - return maxHandlingTime_; + 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.GeneratedMessage.writeString(output, 1, country_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, businessDays_); } + getUnknownFields().writeTo(output); + } - /** - * - * - *
-       * Maximum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time. Both
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * and
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * are required if providing shipping speeds.
-       * 
- * - * optional int64 max_handling_time = 10; - * - * @param value The maxHandlingTime to set. - * @return This builder for chaining. - */ - public Builder setMaxHandlingTime(long value) { + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - maxHandlingTime_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, country_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, businessDays_); } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - /** - * - * - *
-       * Maximum handling time (inclusive) between when the order is received and
-       * shipped in business days. 0 means that the order is shipped on the same
-       * day as it is received if it happens before the cut-off time. Both
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
-       * and
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * are required if providing shipping speeds.
-       * 
- * - * optional int64 max_handling_time = 10; - * - * @return This builder for chaining. - */ - public Builder clearMaxHandlingTime() { - bitField0_ = (bitField0_ & ~0x00000200); - maxHandlingTime_ = 0L; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig other = + (com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) + obj; + + if (hasCountry() != other.hasCountry()) return false; + if (hasCountry()) { + if (!getCountry().equals(other.getCountry())) return false; + } + if (hasBusinessDays() != other.hasBusinessDays()) return false; + if (hasBusinessDays()) { + if (!getBusinessDays().equals(other.getBusinessDays())) 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 (hasCountry()) { + hash = (37 * hash) + COUNTRY_FIELD_NUMBER; + hash = (53 * hash) + getCountry().hashCode(); + } + if (hasBusinessDays()) { + hash = (37 * hash) + BUSINESS_DAYS_FIELD_NUMBER; + hash = (53 * hash) + getBusinessDays().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + 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.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + 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.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes.ShippingBusinessDaysConfig + 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * The business days during which orders are on their path to fulfillment.
+     * If not provided, Monday to Friday business days will be assumed.
+     * 
+ * + * Protobuf type {@code + * google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig.class, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + country_ = ""; + businessDays_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + build() { + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + result = + new com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.country_ = country_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.businessDays_ = businessDays_; + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig) + other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .getDefaultInstance()) return this; + if (other.hasCountry()) { + country_ = other.country_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasBusinessDays()) { + businessDays_ = other.businessDays_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } - private long fixedMinTransitTime_; + @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: + { + country_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + businessDays_ = 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 country_ = ""; /** * * *
-       * Minimum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships.
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-       * can only be set if
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * is set. Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
        * 
* - * optional int64 fixed_min_transit_time = 11; + * optional string country = 1; * - * @return Whether the fixedMinTransitTime field is set. + * @return Whether the country field is set. */ - @java.lang.Override - public boolean hasFixedMinTransitTime() { - return ((bitField0_ & 0x00000400) != 0); + public boolean hasCountry() { + return ((bitField0_ & 0x00000001) != 0); } /** * * *
-       * Minimum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships.
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-       * can only be set if
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * is set. Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
        * 
* - * optional int64 fixed_min_transit_time = 11; + * optional string country = 1; * - * @return The fixedMinTransitTime. + * @return The country. */ - @java.lang.Override - public long getFixedMinTransitTime() { - return fixedMinTransitTime_; + public java.lang.String getCountry() { + java.lang.Object ref = country_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + country_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** * * *
-       * Minimum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships.
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-       * can only be set if
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * is set. Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
        * 
* - * optional int64 fixed_min_transit_time = 11; + * optional string country = 1; * - * @param value The fixedMinTransitTime to set. - * @return This builder for chaining. + * @return The bytes for country. */ - public Builder setFixedMinTransitTime(long value) { - - fixedMinTransitTime_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; + public com.google.protobuf.ByteString getCountryBytes() { + java.lang.Object ref = country_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + country_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** * * *
-       * Minimum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships.
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
-       * can only be set if
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * is set. Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
        * 
* - * optional int64 fixed_min_transit_time = 11; + * optional string country = 1; * + * @param value The country to set. * @return This builder for chaining. */ - public Builder clearFixedMinTransitTime() { - bitField0_ = (bitField0_ & ~0x00000400); - fixedMinTransitTime_ = 0L; + public Builder setCountry(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + country_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } - private long fixedMaxTransitTime_; - /** * * *
-       * Maximum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships. Needs to be provided together with
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-       * Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
        * 
* - * optional int64 fixed_max_transit_time = 12; + * optional string country = 1; * - * @return Whether the fixedMaxTransitTime field is set. + * @return This builder for chaining. */ - @java.lang.Override - public boolean hasFixedMaxTransitTime() { - return ((bitField0_ & 0x00000800) != 0); + public Builder clearCountry() { + country_ = getDefaultInstance().getCountry(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; } /** * * *
-       * Maximum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships. Needs to be provided together with
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-       * Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
        * 
* - * optional int64 fixed_max_transit_time = 12; + * optional string country = 1; * - * @return The fixedMaxTransitTime. + * @param value The bytes for country to set. + * @return This builder for chaining. */ - @java.lang.Override - public long getFixedMaxTransitTime() { - return fixedMaxTransitTime_; - } - - /** - * - * - *
-       * Maximum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships. Needs to be provided together with
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-       * Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
-       * 
- * - * optional int64 fixed_max_transit_time = 12; - * - * @param value The fixedMaxTransitTime to set. - * @return This builder for chaining. - */ - public Builder setFixedMaxTransitTime(long value) { - - fixedMaxTransitTime_ = value; - bitField0_ |= 0x00000800; + public Builder setCountryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + country_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } + private java.lang.Object businessDays_ = ""; + /** * * *
-       * Maximum transit time (inclusive) between when the order has shipped and
-       * when it is delivered in business days. 0 means that the order is
-       * delivered on the same day as it ships. Needs to be provided together with
-       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
-       * Cannot be set if
-       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
-       * is present.
+       * Effective days of the week considered for the delivery time calculation.
+       * May not be empty. The more business days included the faster the
+       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+       * see [Shipping handling business
+       * days](https://support.google.com/merchants/answer/16072859).
        * 
* - * optional int64 fixed_max_transit_time = 12; + * optional string business_days = 2; * - * @return This builder for chaining. + * @return Whether the businessDays field is set. */ - public Builder clearFixedMaxTransitTime() { - bitField0_ = (bitField0_ & ~0x00000800); - fixedMaxTransitTime_ = 0L; - onChanged(); - return this; + public boolean hasBusinessDays() { + return ((bitField0_ & 0x00000002) != 0); } - private int carrierTransitTime_ = 0; - /** * * *
-       * Selected carrier to calculate the shipping speed from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate delivery speed.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * Effective days of the week considered for the delivery time calculation.
+       * May not be empty. The more business days included the faster the
+       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+       * see [Shipping handling business
+       * days](https://support.google.com/merchants/answer/16072859).
        * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * + * optional string business_days = 2; * - * @return Whether the carrierTransitTime field is set. + * @return The businessDays. */ - @java.lang.Override - public boolean hasCarrierTransitTime() { - return ((bitField0_ & 0x00001000) != 0); + public java.lang.String getBusinessDays() { + java.lang.Object ref = businessDays_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + businessDays_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** * * *
-       * Selected carrier to calculate the shipping speed from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate delivery speed.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * Effective days of the week considered for the delivery time calculation.
+       * May not be empty. The more business days included the faster the
+       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+       * see [Shipping handling business
+       * days](https://support.google.com/merchants/answer/16072859).
        * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * + * optional string business_days = 2; * - * @return The enum numeric value on the wire for carrierTransitTime. + * @return The bytes for businessDays. */ - @java.lang.Override - public int getCarrierTransitTimeValue() { - return carrierTransitTime_; + public com.google.protobuf.ByteString getBusinessDaysBytes() { + java.lang.Object ref = businessDays_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + businessDays_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** * * *
-       * Selected carrier to calculate the shipping speed from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate delivery speed.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * Effective days of the week considered for the delivery time calculation.
+       * May not be empty. The more business days included the faster the
+       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+       * see [Shipping handling business
+       * days](https://support.google.com/merchants/answer/16072859).
        * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * + * optional string business_days = 2; * - * @param value The enum numeric value on the wire for carrierTransitTime to set. + * @param value The businessDays to set. * @return This builder for chaining. */ - public Builder setCarrierTransitTimeValue(int value) { - carrierTransitTime_ = value; - bitField0_ |= 0x00001000; + public Builder setBusinessDays(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + businessDays_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -6815,69 +6217,21 @@ public Builder setCarrierTransitTimeValue(int value) { * * *
-       * Selected carrier to calculate the shipping speed from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate delivery speed.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
-       * 
- * - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * - * - * @return The carrierTransitTime. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.CarrierTransitTimeOption - getCarrierTransitTime() { - com.google.shopping.merchant.products.v1.CarrierTransitTimeOption result = - com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.forNumber( - carrierTransitTime_); - return result == null - ? com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.UNRECOGNIZED - : result; - } - - /** - * - * - *
-       * Selected carrier to calculate the shipping speed from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate delivery speed.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * Effective days of the week considered for the delivery time calculation.
+       * May not be empty. The more business days included the faster the
+       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+       * see [Shipping handling business
+       * days](https://support.google.com/merchants/answer/16072859).
        * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * + * optional string business_days = 2; * - * @param value The carrierTransitTime to set. * @return This builder for chaining. */ - public Builder setCarrierTransitTime( - com.google.shopping.merchant.products.v1.CarrierTransitTimeOption value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00001000; - carrierTransitTime_ = value.getNumber(); + public Builder clearBusinessDays() { + businessDays_ = getDefaultInstance().getBusinessDays(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -6886,54 +6240,54 @@ public Builder setCarrierTransitTime( * * *
-       * Selected carrier to calculate the shipping speed from. Select a carrier
-       * from the [available carriers
-       * list](https://support.google.com/merchants/answer/15449142#Supported),
-       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
-       * selected carrier, the location expressed in
-       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
-       * along with the user location to determine the accurate delivery speed.
-       * Carrier is represented by a carrier service name or a carrier service ID.
-       * Cannot be set together with
-       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
-       * or
-       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * Effective days of the week considered for the delivery time calculation.
+       * May not be empty. The more business days included the faster the
+       * delivery. Can be set through individual days (e.g. `MTWRF`), or day
+       * ranges (e.g. `Mon-Fri`). For more information about accepted formats,
+       * see [Shipping handling business
+       * days](https://support.google.com/merchants/answer/16072859).
        * 
* - * - * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; - * + * optional string business_days = 2; * + * @param value The bytes for businessDays to set. * @return This builder for chaining. */ - public Builder clearCarrierTransitTime() { - bitField0_ = (bitField0_ & ~0x00001000); - carrierTransitTime_ = 0; + public Builder setBusinessDaysBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + businessDays_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } - // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) } - // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) - private static final com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig) + private static final com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = - new com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping(); + new com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig(); } - public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + public static com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { @java.lang.Override - public CarrierShipping parsePartialFrom( + public ShippingBusinessDaysConfig parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -6953,10306 +6307,31266 @@ public CarrierShipping parsePartialFrom( } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser getParserForType() { + public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - private int bitField0_; - private int bitField1_; - private int bitField2_; - public static final int IDENTIFIER_EXISTS_FIELD_NUMBER = 4; - private boolean identifierExists_ = false; + public interface CarrierShippingOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) + com.google.protobuf.MessageOrBuilder { - /** - * - * - *
-   * Set this value to false when the item does not have unique product
-   * identifiers appropriate to its category, such as GTIN, MPN, and brand.
-   * Defaults to true, if not provided.
-   * 
- * - * optional bool identifier_exists = 4; - * - * @return Whether the identifierExists field is set. - */ - @java.lang.Override - public boolean hasIdentifierExists() { - return ((bitField0_ & 0x00000001) != 0); - } + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return Whether the country field is set. + */ + boolean hasCountry(); - /** - * - * - *
-   * Set this value to false when the item does not have unique product
-   * identifiers appropriate to its category, such as GTIN, MPN, and brand.
-   * Defaults to true, if not provided.
-   * 
- * - * optional bool identifier_exists = 4; - * - * @return The identifierExists. - */ - @java.lang.Override - public boolean getIdentifierExists() { - return identifierExists_; - } + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The country. + */ + java.lang.String getCountry(); - public static final int IS_BUNDLE_FIELD_NUMBER = 5; - private boolean isBundle_ = false; + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The bytes for country. + */ + com.google.protobuf.ByteString getCountryBytes(); - /** - * - * - *
-   * Whether the item is a business-defined sub-API. A [sub-API]
-   * (https://support.google.com/merchants/answer/6324449) is a custom
-   * grouping of different products sold by a business for a single price.
-   * 
- * - * optional bool is_bundle = 5; - * - * @return Whether the isBundle field is set. - */ - @java.lang.Override - public boolean hasIsBundle() { - return ((bitField0_ & 0x00000002) != 0); - } + /** + * + * + *
+     * The geographic region to which a shipping rate applies.
+     * See [region](https://support.google.com/merchants/answer/6324484) for
+     * more information.
+     * 
+ * + * optional string region = 2; + * + * @return Whether the region field is set. + */ + boolean hasRegion(); - /** - * - * - *
-   * Whether the item is a business-defined sub-API. A [sub-API]
-   * (https://support.google.com/merchants/answer/6324449) is a custom
-   * grouping of different products sold by a business for a single price.
-   * 
- * - * optional bool is_bundle = 5; - * - * @return The isBundle. - */ - @java.lang.Override - public boolean getIsBundle() { - return isBundle_; - } + /** + * + * + *
+     * The geographic region to which a shipping rate applies.
+     * See [region](https://support.google.com/merchants/answer/6324484) for
+     * more information.
+     * 
+ * + * optional string region = 2; + * + * @return The region. + */ + java.lang.String getRegion(); - public static final int TITLE_FIELD_NUMBER = 6; + /** + * + * + *
+     * The geographic region to which a shipping rate applies.
+     * See [region](https://support.google.com/merchants/answer/6324484) for
+     * more information.
+     * 
+ * + * optional string region = 2; + * + * @return The bytes for region. + */ + com.google.protobuf.ByteString getRegionBytes(); - @SuppressWarnings("serial") - private volatile java.lang.Object title_ = ""; + /** + * + * + *
+     * The postal code range that the shipping rate applies to, represented by
+     * a postal code (eg. `94043`), a postal code prefix followed by a *
+     * wildcard (eg. `94*`), a range between two postal codes (eg.
+     * `94043-98033`) or two postal code prefixes of equal length (eg.
+     * `94*-98*`).
+     * 
+ * + * optional string postal_code = 3; + * + * @return Whether the postalCode field is set. + */ + boolean hasPostalCode(); - /** - * - * - *
-   * Title of the item.
-   * 
- * - * optional string title = 6; - * - * @return Whether the title field is set. - */ - @java.lang.Override - public boolean hasTitle() { - return ((bitField0_ & 0x00000004) != 0); - } + /** + * + * + *
+     * The postal code range that the shipping rate applies to, represented by
+     * a postal code (eg. `94043`), a postal code prefix followed by a *
+     * wildcard (eg. `94*`), a range between two postal codes (eg.
+     * `94043-98033`) or two postal code prefixes of equal length (eg.
+     * `94*-98*`).
+     * 
+ * + * optional string postal_code = 3; + * + * @return The postalCode. + */ + java.lang.String getPostalCode(); - /** - * - * - *
-   * Title of the item.
-   * 
- * - * 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 item.
-   * 
- * - * 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 DESCRIPTION_FIELD_NUMBER = 7; - - @SuppressWarnings("serial") - private volatile java.lang.Object description_ = ""; + /** + * + * + *
+     * The postal code range that the shipping rate applies to, represented by
+     * a postal code (eg. `94043`), a postal code prefix followed by a *
+     * wildcard (eg. `94*`), a range between two postal codes (eg.
+     * `94043-98033`) or two postal code prefixes of equal length (eg.
+     * `94*-98*`).
+     * 
+ * + * optional string postal_code = 3; + * + * @return The bytes for postalCode. + */ + com.google.protobuf.ByteString getPostalCodeBytes(); - /** - * - * - *
-   * Description of the item.
-   * 
- * - * optional string description = 7; - * - * @return Whether the description field is set. - */ - @java.lang.Override - public boolean hasDescription() { - return ((bitField0_ & 0x00000008) != 0); - } + /** + * + * + *
+     * The source location postal code from which this offer ships. Represented
+     * only by a full-length postal code.
+     * 
+ * + * optional string origin_postal_code = 4; + * + * @return Whether the originPostalCode field is set. + */ + boolean hasOriginPostalCode(); - /** - * - * - *
-   * Description of the item.
-   * 
- * - * optional string description = 7; - * - * @return The description. - */ - @java.lang.Override - public java.lang.String getDescription() { - java.lang.Object ref = description_; - 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(); - description_ = s; - return s; - } - } + /** + * + * + *
+     * The source location postal code from which this offer ships. Represented
+     * only by a full-length postal code.
+     * 
+ * + * optional string origin_postal_code = 4; + * + * @return The originPostalCode. + */ + java.lang.String getOriginPostalCode(); - /** - * - * - *
-   * Description of the item.
-   * 
- * - * optional string description = 7; - * - * @return The bytes for description. - */ - @java.lang.Override - public com.google.protobuf.ByteString getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * + * + *
+     * The source location postal code from which this offer ships. Represented
+     * only by a full-length postal code.
+     * 
+ * + * optional string origin_postal_code = 4; + * + * @return The bytes for originPostalCode. + */ + com.google.protobuf.ByteString getOriginPostalCodeBytes(); - public static final int LINK_FIELD_NUMBER = 8; + /** + * + * + *
+     * Fixed shipping price, represented as a number with currency. Cannot be
+     * set together with
+     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+     * or its adjustments
+     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + * + * @return Whether the flatPrice field is set. + */ + boolean hasFlatPrice(); - @SuppressWarnings("serial") - private volatile java.lang.Object link_ = ""; + /** + * + * + *
+     * Fixed shipping price, represented as a number with currency. Cannot be
+     * set together with
+     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+     * or its adjustments
+     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + * + * @return The flatPrice. + */ + com.google.shopping.type.Price getFlatPrice(); - /** - * - * - *
-   * URL directly linking to your item's page on your online store.
-   * 
- * - * optional string link = 8; - * - * @return Whether the link field is set. - */ - @java.lang.Override - public boolean hasLink() { - return ((bitField0_ & 0x00000010) != 0); - } + /** + * + * + *
+     * Fixed shipping price, represented as a number with currency. Cannot be
+     * set together with
+     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+     * or its adjustments
+     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + com.google.shopping.type.PriceOrBuilder getFlatPriceOrBuilder(); - /** - * - * - *
-   * URL directly linking to your item's page on your online store.
-   * 
- * - * optional string link = 8; - * - * @return The link. - */ - @java.lang.Override - public java.lang.String getLink() { - java.lang.Object ref = link_; - 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(); - link_ = s; - return s; - } - } + /** + * + * + *
+     * Selected carrier to calculate the shipping price from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate shipping price.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return Whether the carrierPrice field is set. + */ + boolean hasCarrierPrice(); - /** - * - * - *
-   * URL directly linking to your item's page on your online store.
-   * 
- * - * optional string link = 8; - * - * @return The bytes for link. - */ - @java.lang.Override - public com.google.protobuf.ByteString getLinkBytes() { - java.lang.Object ref = link_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - link_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * + * + *
+     * Selected carrier to calculate the shipping price from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate shipping price.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return The enum numeric value on the wire for carrierPrice. + */ + int getCarrierPriceValue(); - public static final int MOBILE_LINK_FIELD_NUMBER = 9; + /** + * + * + *
+     * Selected carrier to calculate the shipping price from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate shipping price.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return The carrierPrice. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption getCarrierPrice(); - @SuppressWarnings("serial") - private volatile java.lang.Object mobileLink_ = ""; + /** + * + * + *
+     * A flat adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * + * @return Whether the carrierPriceFlatAdjustment field is set. + */ + boolean hasCarrierPriceFlatAdjustment(); - /** - * - * - *
-   * URL for the mobile-optimized version of your item's landing page.
-   * 
- * - * optional string mobile_link = 9; - * - * @return Whether the mobileLink field is set. - */ - @java.lang.Override - public boolean hasMobileLink() { - return ((bitField0_ & 0x00000020) != 0); - } + /** + * + * + *
+     * A flat adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * + * @return The carrierPriceFlatAdjustment. + */ + com.google.shopping.type.Price getCarrierPriceFlatAdjustment(); - /** - * - * - *
-   * URL for the mobile-optimized version of your item's landing page.
-   * 
- * - * optional string mobile_link = 9; - * - * @return The mobileLink. - */ - @java.lang.Override - public java.lang.String getMobileLink() { - java.lang.Object ref = mobileLink_; - 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(); - mobileLink_ = s; - return s; - } - } + /** + * + * + *
+     * A flat adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + com.google.shopping.type.PriceOrBuilder getCarrierPriceFlatAdjustmentOrBuilder(); - /** - * - * - *
-   * URL for the mobile-optimized version of your item's landing page.
-   * 
- * - * optional string mobile_link = 9; - * - * @return The bytes for mobileLink. - */ - @java.lang.Override - public com.google.protobuf.ByteString getMobileLinkBytes() { - java.lang.Object ref = mobileLink_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - mobileLink_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * + * + *
+     * A percentual adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @return Whether the carrierPricePercentageAdjustment field is set. + */ + boolean hasCarrierPricePercentageAdjustment(); - public static final int CANONICAL_LINK_FIELD_NUMBER = 10; + /** + * + * + *
+     * A percentual adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @return The carrierPricePercentageAdjustment. + */ + double getCarrierPricePercentageAdjustment(); - @SuppressWarnings("serial") - private volatile java.lang.Object canonicalLink_ = ""; + /** + * + * + *
+     * Minimum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time.
+     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+     * can only be set if
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * is also set.
+     * 
+ * + * optional int64 min_handling_time = 9; + * + * @return Whether the minHandlingTime field is set. + */ + boolean hasMinHandlingTime(); - /** - * - * - *
-   * URL for the canonical version of your item's landing page.
-   * 
- * - * optional string canonical_link = 10; - * - * @return Whether the canonicalLink field is set. - */ - @java.lang.Override - public boolean hasCanonicalLink() { - return ((bitField0_ & 0x00000040) != 0); - } - - /** - * - * - *
-   * URL for the canonical version of your item's landing page.
-   * 
- * - * optional string canonical_link = 10; - * - * @return The canonicalLink. - */ - @java.lang.Override - public java.lang.String getCanonicalLink() { - java.lang.Object ref = canonicalLink_; - 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(); - canonicalLink_ = s; - return s; - } - } + /** + * + * + *
+     * Minimum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time.
+     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+     * can only be set if
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * is also set.
+     * 
+ * + * optional int64 min_handling_time = 9; + * + * @return The minHandlingTime. + */ + long getMinHandlingTime(); - /** - * - * - *
-   * URL for the canonical version of your item's landing page.
-   * 
- * - * optional string canonical_link = 10; - * - * @return The bytes for canonicalLink. - */ - @java.lang.Override - public com.google.protobuf.ByteString getCanonicalLinkBytes() { - java.lang.Object ref = canonicalLink_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - canonicalLink_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * + * + *
+     * Maximum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time. Both
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * and
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * are required if providing shipping speeds.
+     * 
+ * + * optional int64 max_handling_time = 10; + * + * @return Whether the maxHandlingTime field is set. + */ + boolean hasMaxHandlingTime(); - public static final int IMAGE_LINK_FIELD_NUMBER = 11; + /** + * + * + *
+     * Maximum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time. Both
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * and
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * are required if providing shipping speeds.
+     * 
+ * + * optional int64 max_handling_time = 10; + * + * @return The maxHandlingTime. + */ + long getMaxHandlingTime(); - @SuppressWarnings("serial") - private volatile java.lang.Object imageLink_ = ""; + /** + * + * + *
+     * Minimum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships.
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+     * can only be set if
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * is set. Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @return Whether the fixedMinTransitTime field is set. + */ + boolean hasFixedMinTransitTime(); - /** - * - * - *
-   * URL of an image of the item.
-   * 
- * - * optional string image_link = 11; - * - * @return Whether the imageLink field is set. - */ - @java.lang.Override - public boolean hasImageLink() { - return ((bitField0_ & 0x00000080) != 0); - } + /** + * + * + *
+     * Minimum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships.
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+     * can only be set if
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * is set. Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @return The fixedMinTransitTime. + */ + long getFixedMinTransitTime(); - /** - * - * - *
-   * URL of an image of the item.
-   * 
- * - * optional string image_link = 11; - * - * @return The imageLink. - */ - @java.lang.Override - public java.lang.String getImageLink() { - java.lang.Object ref = imageLink_; - 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(); - imageLink_ = s; - return s; - } - } + /** + * + * + *
+     * Maximum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships. Needs to be provided together with
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+     * Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @return Whether the fixedMaxTransitTime field is set. + */ + boolean hasFixedMaxTransitTime(); - /** - * - * - *
-   * URL of an image of the item.
-   * 
- * - * optional string image_link = 11; - * - * @return The bytes for imageLink. - */ - @java.lang.Override - public com.google.protobuf.ByteString getImageLinkBytes() { - java.lang.Object ref = imageLink_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - imageLink_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * + * + *
+     * Maximum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships. Needs to be provided together with
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+     * Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @return The fixedMaxTransitTime. + */ + long getFixedMaxTransitTime(); - public static final int ADDITIONAL_IMAGE_LINKS_FIELD_NUMBER = 12; + /** + * + * + *
+     * Selected carrier to calculate the shipping speed from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate delivery speed.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return Whether the carrierTransitTime field is set. + */ + boolean hasCarrierTransitTime(); - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList additionalImageLinks_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * + * + *
+     * Selected carrier to calculate the shipping speed from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate delivery speed.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return The enum numeric value on the wire for carrierTransitTime. + */ + int getCarrierTransitTimeValue(); - /** - * - * - *
-   * Additional URLs of images of the item.
-   * 
- * - * repeated string additional_image_links = 12; - * - * @return A list containing the additionalImageLinks. - */ - public com.google.protobuf.ProtocolStringList getAdditionalImageLinksList() { - return additionalImageLinks_; + /** + * + * + *
+     * Selected carrier to calculate the shipping speed from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate delivery speed.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return The carrierTransitTime. + */ + com.google.shopping.merchant.products.v1.CarrierTransitTimeOption getCarrierTransitTime(); } /** * * *
-   * Additional URLs of images of the item.
+   * Carrier-based shipping configuration. Allows for setting shipping speed or
+   * shipping cost based on a carrier's provided info.
    * 
* - * repeated string additional_image_links = 12; - * - * @return The count of additionalImageLinks. + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping} */ - public int getAdditionalImageLinksCount() { - return additionalImageLinks_.size(); - } + public static final class CarrierShipping extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) + CarrierShippingOrBuilder { + private static final long serialVersionUID = 0L; - /** - * - * - *
-   * Additional URLs of images of the item.
-   * 
- * - * repeated string additional_image_links = 12; - * - * @param index The index of the element to return. - * @return The additionalImageLinks at the given index. - */ - public java.lang.String getAdditionalImageLinks(int index) { - return additionalImageLinks_.get(index); - } + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "CarrierShipping"); + } - /** - * - * - *
-   * Additional URLs of images of the item.
-   * 
- * - * repeated string additional_image_links = 12; - * - * @param index The index of the value to return. - * @return The bytes of the additionalImageLinks at the given index. - */ - public com.google.protobuf.ByteString getAdditionalImageLinksBytes(int index) { - return additionalImageLinks_.getByteString(index); - } + // Use CarrierShipping.newBuilder() to construct. + private CarrierShipping(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } - public static final int EXPIRATION_DATE_FIELD_NUMBER = 16; - private com.google.protobuf.Timestamp expirationDate_; + private CarrierShipping() { + country_ = ""; + region_ = ""; + postalCode_ = ""; + originPostalCode_ = ""; + carrierPrice_ = 0; + carrierTransitTime_ = 0; + } - /** - * - * - *
-   * Date on which the item should expire, as specified upon insertion, in
-   * [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-   * expiration date is exposed in `productstatuses` as
-   * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-   * and might be earlier if `expirationDate` is too far in the future.
-   * 
- * - * .google.protobuf.Timestamp expiration_date = 16; - * - * @return Whether the expirationDate field is set. - */ - @java.lang.Override - public boolean hasExpirationDate() { - return ((bitField0_ & 0x00000100) != 0); - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_descriptor; + } - /** - * - * - *
-   * Date on which the item should expire, as specified upon insertion, in
-   * [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-   * expiration date is exposed in `productstatuses` as
-   * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-   * and might be earlier if `expirationDate` is too far in the future.
-   * 
- * - * .google.protobuf.Timestamp expiration_date = 16; - * - * @return The expirationDate. - */ - @java.lang.Override - public com.google.protobuf.Timestamp getExpirationDate() { - return expirationDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : expirationDate_; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.class, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + .class); + } - /** - * - * - *
-   * Date on which the item should expire, as specified upon insertion, in
-   * [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-   * expiration date is exposed in `productstatuses` as
-   * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-   * and might be earlier if `expirationDate` is too far in the future.
-   * 
- * - * .google.protobuf.Timestamp expiration_date = 16; - */ - @java.lang.Override - public com.google.protobuf.TimestampOrBuilder getExpirationDateOrBuilder() { - return expirationDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : expirationDate_; - } + private int bitField0_; + public static final int COUNTRY_FIELD_NUMBER = 1; - public static final int DISCLOSURE_DATE_FIELD_NUMBER = 79; - private com.google.protobuf.Timestamp disclosureDate_; + @SuppressWarnings("serial") + private volatile java.lang.Object country_ = ""; - /** - * - * - *
-   * The date time when an offer becomes visible in search results across
-   * Google’s YouTube surfaces, in [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-   * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-   * for more information.
-   * 
- * - * .google.protobuf.Timestamp disclosure_date = 79; - * - * @return Whether the disclosureDate field is set. - */ - @java.lang.Override - public boolean hasDisclosureDate() { - return ((bitField0_ & 0x00000200) != 0); - } - - /** - * - * - *
-   * The date time when an offer becomes visible in search results across
-   * Google’s YouTube surfaces, in [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-   * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-   * for more information.
-   * 
- * - * .google.protobuf.Timestamp disclosure_date = 79; - * - * @return The disclosureDate. - */ - @java.lang.Override - public com.google.protobuf.Timestamp getDisclosureDate() { - return disclosureDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : disclosureDate_; - } - - /** - * - * - *
-   * The date time when an offer becomes visible in search results across
-   * Google’s YouTube surfaces, in [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-   * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-   * for more information.
-   * 
- * - * .google.protobuf.Timestamp disclosure_date = 79; - */ - @java.lang.Override - public com.google.protobuf.TimestampOrBuilder getDisclosureDateOrBuilder() { - return disclosureDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : disclosureDate_; - } - - public static final int ADULT_FIELD_NUMBER = 17; - private boolean adult_ = false; + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return Whether the country field is set. + */ + @java.lang.Override + public boolean hasCountry() { + return ((bitField0_ & 0x00000001) != 0); + } - /** - * - * - *
-   * Set to true if the item is targeted towards adults.
-   * 
- * - * optional bool adult = 17; - * - * @return Whether the adult field is set. - */ - @java.lang.Override - public boolean hasAdult() { - return ((bitField0_ & 0x00000400) != 0); - } + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The country. + */ + @java.lang.Override + public java.lang.String getCountry() { + java.lang.Object ref = country_; + 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(); + country_ = s; + return s; + } + } - /** - * - * - *
-   * Set to true if the item is targeted towards adults.
-   * 
- * - * optional bool adult = 17; - * - * @return The adult. - */ - @java.lang.Override - public boolean getAdult() { - return adult_; - } + /** + * + * + *
+     * The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1; + * + * @return The bytes for country. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCountryBytes() { + java.lang.Object ref = country_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + country_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - public static final int AGE_GROUP_FIELD_NUMBER = 18; - private int ageGroup_ = 0; + public static final int REGION_FIELD_NUMBER = 2; - /** - * - * - *
-   * Target [age group](https://support.google.com/merchants/answer/6324463) of
-   * the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @return Whether the ageGroup field is set. - */ - @java.lang.Override - public boolean hasAgeGroup() { - return ((bitField0_ & 0x00000800) != 0); - } + @SuppressWarnings("serial") + private volatile java.lang.Object region_ = ""; - /** - * - * - *
-   * Target [age group](https://support.google.com/merchants/answer/6324463) of
-   * the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @return The enum numeric value on the wire for ageGroup. - */ - @java.lang.Override - public int getAgeGroupValue() { - return ageGroup_; - } + /** + * + * + *
+     * The geographic region to which a shipping rate applies.
+     * See [region](https://support.google.com/merchants/answer/6324484) for
+     * more information.
+     * 
+ * + * optional string region = 2; + * + * @return Whether the region field is set. + */ + @java.lang.Override + public boolean hasRegion() { + return ((bitField0_ & 0x00000002) != 0); + } - /** - * - * - *
-   * Target [age group](https://support.google.com/merchants/answer/6324463) of
-   * the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @return The ageGroup. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.AgeGroup getAgeGroup() { - com.google.shopping.merchant.products.v1.AgeGroup result = - com.google.shopping.merchant.products.v1.AgeGroup.forNumber(ageGroup_); - return result == null ? com.google.shopping.merchant.products.v1.AgeGroup.UNRECOGNIZED : result; - } + /** + * + * + *
+     * The geographic region to which a shipping rate applies.
+     * See [region](https://support.google.com/merchants/answer/6324484) for
+     * more information.
+     * 
+ * + * optional string region = 2; + * + * @return The region. + */ + @java.lang.Override + public java.lang.String getRegion() { + java.lang.Object ref = region_; + 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(); + region_ = s; + return s; + } + } - public static final int AVAILABILITY_FIELD_NUMBER = 19; - private int availability_ = 0; + /** + * + * + *
+     * The geographic region to which a shipping rate applies.
+     * See [region](https://support.google.com/merchants/answer/6324484) for
+     * more information.
+     * 
+ * + * optional string region = 2; + * + * @return The bytes for region. + */ + @java.lang.Override + public com.google.protobuf.ByteString getRegionBytes() { + java.lang.Object ref = region_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + region_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - /** - * - * - *
-   * [Availability](https://support.google.com/merchants/answer/6324448) status
-   * of the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @return Whether the availability field is set. - */ - @java.lang.Override - public boolean hasAvailability() { - return ((bitField0_ & 0x00001000) != 0); - } + public static final int POSTAL_CODE_FIELD_NUMBER = 3; - /** - * - * - *
-   * [Availability](https://support.google.com/merchants/answer/6324448) status
-   * of the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @return The enum numeric value on the wire for availability. - */ - @java.lang.Override - public int getAvailabilityValue() { - return availability_; - } + @SuppressWarnings("serial") + private volatile java.lang.Object postalCode_ = ""; - /** - * - * - *
-   * [Availability](https://support.google.com/merchants/answer/6324448) status
-   * of the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @return The availability. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Availability getAvailability() { - com.google.shopping.merchant.products.v1.Availability result = - com.google.shopping.merchant.products.v1.Availability.forNumber(availability_); - return result == null - ? com.google.shopping.merchant.products.v1.Availability.UNRECOGNIZED - : result; - } + /** + * + * + *
+     * The postal code range that the shipping rate applies to, represented by
+     * a postal code (eg. `94043`), a postal code prefix followed by a *
+     * wildcard (eg. `94*`), a range between two postal codes (eg.
+     * `94043-98033`) or two postal code prefixes of equal length (eg.
+     * `94*-98*`).
+     * 
+ * + * optional string postal_code = 3; + * + * @return Whether the postalCode field is set. + */ + @java.lang.Override + public boolean hasPostalCode() { + return ((bitField0_ & 0x00000004) != 0); + } - public static final int AVAILABILITY_DATE_FIELD_NUMBER = 20; - private com.google.protobuf.Timestamp availabilityDate_; + /** + * + * + *
+     * The postal code range that the shipping rate applies to, represented by
+     * a postal code (eg. `94043`), a postal code prefix followed by a *
+     * wildcard (eg. `94*`), a range between two postal codes (eg.
+     * `94043-98033`) or two postal code prefixes of equal length (eg.
+     * `94*-98*`).
+     * 
+ * + * optional string postal_code = 3; + * + * @return The postalCode. + */ + @java.lang.Override + public java.lang.String getPostalCode() { + java.lang.Object ref = postalCode_; + 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(); + postalCode_ = s; + return s; + } + } - /** - * - * - *
-   * The day a pre-ordered product becomes available for delivery, in [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-   * 
- * - * .google.protobuf.Timestamp availability_date = 20; - * - * @return Whether the availabilityDate field is set. - */ - @java.lang.Override - public boolean hasAvailabilityDate() { - return ((bitField0_ & 0x00002000) != 0); - } + /** + * + * + *
+     * The postal code range that the shipping rate applies to, represented by
+     * a postal code (eg. `94043`), a postal code prefix followed by a *
+     * wildcard (eg. `94*`), a range between two postal codes (eg.
+     * `94043-98033`) or two postal code prefixes of equal length (eg.
+     * `94*-98*`).
+     * 
+ * + * optional string postal_code = 3; + * + * @return The bytes for postalCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPostalCodeBytes() { + java.lang.Object ref = postalCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + postalCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - /** - * - * - *
-   * The day a pre-ordered product becomes available for delivery, in [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-   * 
- * - * .google.protobuf.Timestamp availability_date = 20; - * - * @return The availabilityDate. - */ - @java.lang.Override - public com.google.protobuf.Timestamp getAvailabilityDate() { - return availabilityDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : availabilityDate_; - } + public static final int ORIGIN_POSTAL_CODE_FIELD_NUMBER = 4; - /** - * - * - *
-   * The day a pre-ordered product becomes available for delivery, in [ISO
-   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-   * 
- * - * .google.protobuf.Timestamp availability_date = 20; - */ - @java.lang.Override - public com.google.protobuf.TimestampOrBuilder getAvailabilityDateOrBuilder() { - return availabilityDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : availabilityDate_; - } + @SuppressWarnings("serial") + private volatile java.lang.Object originPostalCode_ = ""; - public static final int BRAND_FIELD_NUMBER = 21; + /** + * + * + *
+     * The source location postal code from which this offer ships. Represented
+     * only by a full-length postal code.
+     * 
+ * + * optional string origin_postal_code = 4; + * + * @return Whether the originPostalCode field is set. + */ + @java.lang.Override + public boolean hasOriginPostalCode() { + return ((bitField0_ & 0x00000008) != 0); + } - @SuppressWarnings("serial") - private volatile java.lang.Object brand_ = ""; + /** + * + * + *
+     * The source location postal code from which this offer ships. Represented
+     * only by a full-length postal code.
+     * 
+ * + * optional string origin_postal_code = 4; + * + * @return The originPostalCode. + */ + @java.lang.Override + public java.lang.String getOriginPostalCode() { + java.lang.Object ref = originPostalCode_; + 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(); + originPostalCode_ = s; + return s; + } + } - /** - * - * - *
-   * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-   * For example, "Google".
-   * 
- * - * optional string brand = 21; - * - * @return Whether the brand field is set. - */ - @java.lang.Override - public boolean hasBrand() { - return ((bitField0_ & 0x00004000) != 0); - } - - /** - * - * - *
-   * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-   * For example, "Google".
-   * 
- * - * optional string brand = 21; - * - * @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; + /** + * + * + *
+     * The source location postal code from which this offer ships. Represented
+     * only by a full-length postal code.
+     * 
+ * + * optional string origin_postal_code = 4; + * + * @return The bytes for originPostalCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getOriginPostalCodeBytes() { + java.lang.Object ref = originPostalCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + originPostalCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - } - /** - * - * - *
-   * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-   * For example, "Google".
-   * 
- * - * optional string brand = 21; - * - * @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 FLAT_PRICE_FIELD_NUMBER = 5; + private com.google.shopping.type.Price flatPrice_; + + /** + * + * + *
+     * Fixed shipping price, represented as a number with currency. Cannot be
+     * set together with
+     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+     * or its adjustments
+     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + * + * @return Whether the flatPrice field is set. + */ + @java.lang.Override + public boolean hasFlatPrice() { + return ((bitField0_ & 0x00000010) != 0); } - } - public static final int COLOR_FIELD_NUMBER = 22; + /** + * + * + *
+     * Fixed shipping price, represented as a number with currency. Cannot be
+     * set together with
+     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+     * or its adjustments
+     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + * + * @return The flatPrice. + */ + @java.lang.Override + public com.google.shopping.type.Price getFlatPrice() { + return flatPrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatPrice_; + } - @SuppressWarnings("serial") - private volatile java.lang.Object color_ = ""; + /** + * + * + *
+     * Fixed shipping price, represented as a number with currency. Cannot be
+     * set together with
+     * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+     * or its adjustments
+     * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+     * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getFlatPriceOrBuilder() { + return flatPrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : flatPrice_; + } - /** - * - * - *
-   * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-   * For example, "red".
-   * 
- * - * optional string color = 22; - * - * @return Whether the color field is set. - */ - @java.lang.Override - public boolean hasColor() { - return ((bitField0_ & 0x00008000) != 0); - } + public static final int CARRIER_PRICE_FIELD_NUMBER = 6; + private int carrierPrice_ = 0; - /** - * - * - *
-   * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-   * For example, "red".
-   * 
- * - * optional string color = 22; - * - * @return The color. - */ - @java.lang.Override - public java.lang.String getColor() { - java.lang.Object ref = color_; - 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(); - color_ = s; - return s; + /** + * + * + *
+     * Selected carrier to calculate the shipping price from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate shipping price.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return Whether the carrierPrice field is set. + */ + @java.lang.Override + public boolean hasCarrierPrice() { + return ((bitField0_ & 0x00000020) != 0); } - } - /** - * - * - *
-   * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-   * For example, "red".
-   * 
- * - * optional string color = 22; - * - * @return The bytes for color. - */ - @java.lang.Override - public com.google.protobuf.ByteString getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + /** + * + * + *
+     * Selected carrier to calculate the shipping price from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate shipping price.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return The enum numeric value on the wire for carrierPrice. + */ + @java.lang.Override + public int getCarrierPriceValue() { + return carrierPrice_; } - } - - public static final int CONDITION_FIELD_NUMBER = 23; - private int condition_ = 0; - /** - * - * - *
-   * [Condition](https://support.google.com/merchants/answer/6324469) or state
-   * of the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Condition condition = 23; - * - * @return Whether the condition field is set. - */ - @java.lang.Override - public boolean hasCondition() { - return ((bitField0_ & 0x00010000) != 0); - } + /** + * + * + *
+     * Selected carrier to calculate the shipping price from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate shipping price.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return The carrierPrice. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption + getCarrierPrice() { + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption result = + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption.forNumber( + carrierPrice_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption + .UNRECOGNIZED + : result; + } - /** - * - * - *
-   * [Condition](https://support.google.com/merchants/answer/6324469) or state
-   * of the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Condition condition = 23; - * - * @return The enum numeric value on the wire for condition. - */ - @java.lang.Override - public int getConditionValue() { - return condition_; - } + public static final int CARRIER_PRICE_FLAT_ADJUSTMENT_FIELD_NUMBER = 7; + private com.google.shopping.type.Price carrierPriceFlatAdjustment_; - /** - * - * - *
-   * [Condition](https://support.google.com/merchants/answer/6324469) or state
-   * of the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Condition condition = 23; - * - * @return The condition. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Condition getCondition() { - com.google.shopping.merchant.products.v1.Condition result = - com.google.shopping.merchant.products.v1.Condition.forNumber(condition_); - return result == null - ? com.google.shopping.merchant.products.v1.Condition.UNRECOGNIZED - : result; - } + /** + * + * + *
+     * A flat adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * + * @return Whether the carrierPriceFlatAdjustment field is set. + */ + @java.lang.Override + public boolean hasCarrierPriceFlatAdjustment() { + return ((bitField0_ & 0x00000040) != 0); + } - public static final int GENDER_FIELD_NUMBER = 24; - private int gender_ = 0; + /** + * + * + *
+     * A flat adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * + * @return The carrierPriceFlatAdjustment. + */ + @java.lang.Override + public com.google.shopping.type.Price getCarrierPriceFlatAdjustment() { + return carrierPriceFlatAdjustment_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : carrierPriceFlatAdjustment_; + } - /** - * - * - *
-   * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-   * item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Gender gender = 24; - * - * @return Whether the gender field is set. - */ - @java.lang.Override - public boolean hasGender() { - return ((bitField0_ & 0x00020000) != 0); - } + /** + * + * + *
+     * A flat adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+     * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getCarrierPriceFlatAdjustmentOrBuilder() { + return carrierPriceFlatAdjustment_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : carrierPriceFlatAdjustment_; + } - /** - * - * - *
-   * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-   * item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Gender gender = 24; - * - * @return The enum numeric value on the wire for gender. - */ - @java.lang.Override - public int getGenderValue() { - return gender_; - } + public static final int CARRIER_PRICE_PERCENTAGE_ADJUSTMENT_FIELD_NUMBER = 8; + private double carrierPricePercentageAdjustment_ = 0D; - /** - * - * - *
-   * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-   * item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.Gender gender = 24; - * - * @return The gender. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Gender getGender() { - com.google.shopping.merchant.products.v1.Gender result = - com.google.shopping.merchant.products.v1.Gender.forNumber(gender_); - return result == null ? com.google.shopping.merchant.products.v1.Gender.UNRECOGNIZED : result; - } + /** + * + * + *
+     * A percentual adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @return Whether the carrierPricePercentageAdjustment field is set. + */ + @java.lang.Override + public boolean hasCarrierPricePercentageAdjustment() { + return ((bitField0_ & 0x00000080) != 0); + } - public static final int GOOGLE_PRODUCT_CATEGORY_FIELD_NUMBER = 25; + /** + * + * + *
+     * A percentual adjustment on the carrier price. Can be either positive or
+     * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+     * be set together with
+     * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+     * and
+     * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+     * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @return The carrierPricePercentageAdjustment. + */ + @java.lang.Override + public double getCarrierPricePercentageAdjustment() { + return carrierPricePercentageAdjustment_; + } - @SuppressWarnings("serial") - private volatile java.lang.Object googleProductCategory_ = ""; + public static final int MIN_HANDLING_TIME_FIELD_NUMBER = 9; + private long minHandlingTime_ = 0L; - /** - * - * - *
-   * Google's category of the item (see [Google product
-   * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-   * querying products, this field will contain the user provided value. There
-   * is currently no way to get back the auto assigned google product
-   * categories through the API.
-   * 
- * - * optional string google_product_category = 25; - * - * @return Whether the googleProductCategory field is set. - */ - @java.lang.Override - public boolean hasGoogleProductCategory() { - return ((bitField0_ & 0x00040000) != 0); - } + /** + * + * + *
+     * Minimum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time.
+     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+     * can only be set if
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * is also set.
+     * 
+ * + * optional int64 min_handling_time = 9; + * + * @return Whether the minHandlingTime field is set. + */ + @java.lang.Override + public boolean hasMinHandlingTime() { + return ((bitField0_ & 0x00000100) != 0); + } - /** - * - * - *
-   * Google's category of the item (see [Google product
-   * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-   * querying products, this field will contain the user provided value. There
-   * is currently no way to get back the auto assigned google product
-   * categories through the API.
-   * 
- * - * optional string google_product_category = 25; - * - * @return The googleProductCategory. - */ - @java.lang.Override - public java.lang.String getGoogleProductCategory() { - java.lang.Object ref = googleProductCategory_; - 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(); - googleProductCategory_ = s; - return s; + /** + * + * + *
+     * Minimum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time.
+     * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+     * can only be set if
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * is also set.
+     * 
+ * + * optional int64 min_handling_time = 9; + * + * @return The minHandlingTime. + */ + @java.lang.Override + public long getMinHandlingTime() { + return minHandlingTime_; } - } - /** - * - * - *
-   * Google's category of the item (see [Google product
-   * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-   * querying products, this field will contain the user provided value. There
-   * is currently no way to get back the auto assigned google product
-   * categories through the API.
-   * 
- * - * optional string google_product_category = 25; - * - * @return The bytes for googleProductCategory. - */ - @java.lang.Override - public com.google.protobuf.ByteString getGoogleProductCategoryBytes() { - java.lang.Object ref = googleProductCategory_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - googleProductCategory_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static final int MAX_HANDLING_TIME_FIELD_NUMBER = 10; + private long maxHandlingTime_ = 0L; + + /** + * + * + *
+     * Maximum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time. Both
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * and
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * are required if providing shipping speeds.
+     * 
+ * + * optional int64 max_handling_time = 10; + * + * @return Whether the maxHandlingTime field is set. + */ + @java.lang.Override + public boolean hasMaxHandlingTime() { + return ((bitField0_ & 0x00000200) != 0); } - } - public static final int GTINS_FIELD_NUMBER = 140; + /** + * + * + *
+     * Maximum handling time (inclusive) between when the order is received and
+     * shipped in business days. 0 means that the order is shipped on the same
+     * day as it is received if it happens before the cut-off time. Both
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+     * and
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * are required if providing shipping speeds.
+     * 
+ * + * optional int64 max_handling_time = 10; + * + * @return The maxHandlingTime. + */ + @java.lang.Override + public long getMaxHandlingTime() { + return maxHandlingTime_; + } - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList gtins_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + public static final int FIXED_MIN_TRANSIT_TIME_FIELD_NUMBER = 11; + private long fixedMinTransitTime_ = 0L; - /** - * - * - *
-   * Global Trade Item Numbers
-   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-   * item.
-   * You can provide up to 10 GTINs.
-   * 
- * - * repeated string gtins = 140; - * - * @return A list containing the gtins. - */ - public com.google.protobuf.ProtocolStringList getGtinsList() { - return gtins_; - } + /** + * + * + *
+     * Minimum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships.
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+     * can only be set if
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * is set. Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @return Whether the fixedMinTransitTime field is set. + */ + @java.lang.Override + public boolean hasFixedMinTransitTime() { + return ((bitField0_ & 0x00000400) != 0); + } - /** - * - * - *
-   * Global Trade Item Numbers
-   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-   * item.
-   * You can provide up to 10 GTINs.
-   * 
- * - * repeated string gtins = 140; - * - * @return The count of gtins. - */ - public int getGtinsCount() { - return gtins_.size(); - } + /** + * + * + *
+     * Minimum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships.
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+     * can only be set if
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * is set. Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @return The fixedMinTransitTime. + */ + @java.lang.Override + public long getFixedMinTransitTime() { + return fixedMinTransitTime_; + } - /** - * - * - *
-   * Global Trade Item Numbers
-   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-   * item.
-   * You can provide up to 10 GTINs.
-   * 
- * - * repeated string gtins = 140; - * - * @param index The index of the element to return. - * @return The gtins at the given index. - */ - public java.lang.String getGtins(int index) { - return gtins_.get(index); - } + public static final int FIXED_MAX_TRANSIT_TIME_FIELD_NUMBER = 12; + private long fixedMaxTransitTime_ = 0L; - /** - * - * - *
-   * Global Trade Item Numbers
-   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-   * item.
-   * You can provide up to 10 GTINs.
-   * 
- * - * repeated string gtins = 140; - * - * @param index The index of the value to return. - * @return The bytes of the gtins at the given index. - */ - public com.google.protobuf.ByteString getGtinsBytes(int index) { - return gtins_.getByteString(index); - } + /** + * + * + *
+     * Maximum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships. Needs to be provided together with
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+     * Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @return Whether the fixedMaxTransitTime field is set. + */ + @java.lang.Override + public boolean hasFixedMaxTransitTime() { + return ((bitField0_ & 0x00000800) != 0); + } - public static final int ITEM_GROUP_ID_FIELD_NUMBER = 27; + /** + * + * + *
+     * Maximum transit time (inclusive) between when the order has shipped and
+     * when it is delivered in business days. 0 means that the order is
+     * delivered on the same day as it ships. Needs to be provided together with
+     * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+     * Cannot be set if
+     * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+     * is present.
+     * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @return The fixedMaxTransitTime. + */ + @java.lang.Override + public long getFixedMaxTransitTime() { + return fixedMaxTransitTime_; + } - @SuppressWarnings("serial") - private volatile java.lang.Object itemGroupId_ = ""; + public static final int CARRIER_TRANSIT_TIME_FIELD_NUMBER = 13; + private int carrierTransitTime_ = 0; - /** - * - * - *
-   * Shared identifier for all variants of the same product.
-   * 
- * - * optional string item_group_id = 27; - * - * @return Whether the itemGroupId field is set. - */ - @java.lang.Override - public boolean hasItemGroupId() { - return ((bitField0_ & 0x00080000) != 0); - } + /** + * + * + *
+     * Selected carrier to calculate the shipping speed from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate delivery speed.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return Whether the carrierTransitTime field is set. + */ + @java.lang.Override + public boolean hasCarrierTransitTime() { + return ((bitField0_ & 0x00001000) != 0); + } - /** - * - * - *
-   * Shared identifier for all variants of the same product.
-   * 
- * - * optional string item_group_id = 27; - * - * @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; + /** + * + * + *
+     * Selected carrier to calculate the shipping speed from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate delivery speed.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return The enum numeric value on the wire for carrierTransitTime. + */ + @java.lang.Override + public int getCarrierTransitTimeValue() { + return carrierTransitTime_; } - } - /** - * - * - *
-   * Shared identifier for all variants of the same product.
-   * 
- * - * optional string item_group_id = 27; - * - * @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; + /** + * + * + *
+     * Selected carrier to calculate the shipping speed from. Select a carrier
+     * from the [available carriers
+     * list](https://support.google.com/merchants/answer/15449142#Supported),
+     * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+     * selected carrier, the location expressed in
+     * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+     * along with the user location to determine the accurate delivery speed.
+     * Carrier is represented by a carrier service name or a carrier service ID.
+     * Cannot be set together with
+     * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+     * or
+     * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return The carrierTransitTime. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.CarrierTransitTimeOption + getCarrierTransitTime() { + com.google.shopping.merchant.products.v1.CarrierTransitTimeOption result = + com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.forNumber( + carrierTransitTime_); + return result == null + ? com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.UNRECOGNIZED + : result; } - } - public static final int MATERIAL_FIELD_NUMBER = 28; + private byte memoizedIsInitialized = -1; - @SuppressWarnings("serial") - private volatile java.lang.Object material_ = ""; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; - /** - * - * - *
-   * The [material](https://support.google.com/merchants/answer/6324410) of
-   * which the item is made. For example, "Leather" or "Cotton".
-   * 
- * - * optional string material = 28; - * - * @return Whether the material field is set. - */ - @java.lang.Override - public boolean hasMaterial() { - return ((bitField0_ & 0x00100000) != 0); - } + memoizedIsInitialized = 1; + return true; + } - /** - * - * - *
-   * The [material](https://support.google.com/merchants/answer/6324410) of
-   * which the item is made. For example, "Leather" or "Cotton".
-   * 
- * - * optional string material = 28; - * - * @return The material. - */ - @java.lang.Override - public java.lang.String getMaterial() { - java.lang.Object ref = material_; - 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(); - material_ = s; - return s; + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, country_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, region_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, postalCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, originPostalCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(5, getFlatPrice()); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeEnum(6, carrierPrice_); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeMessage(7, getCarrierPriceFlatAdjustment()); + } + if (((bitField0_ & 0x00000080) != 0)) { + output.writeDouble(8, carrierPricePercentageAdjustment_); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeInt64(9, minHandlingTime_); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeInt64(10, maxHandlingTime_); + } + if (((bitField0_ & 0x00000400) != 0)) { + output.writeInt64(11, fixedMinTransitTime_); + } + if (((bitField0_ & 0x00000800) != 0)) { + output.writeInt64(12, fixedMaxTransitTime_); + } + if (((bitField0_ & 0x00001000) != 0)) { + output.writeEnum(13, carrierTransitTime_); + } + getUnknownFields().writeTo(output); } - } - /** - * - * - *
-   * The [material](https://support.google.com/merchants/answer/6324410) of
-   * which the item is made. For example, "Leather" or "Cotton".
-   * 
- * - * optional string material = 28; - * - * @return The bytes for material. - */ - @java.lang.Override - public com.google.protobuf.ByteString getMaterialBytes() { - java.lang.Object ref = material_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - material_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, country_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, region_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, postalCode_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, originPostalCode_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getFlatPrice()); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(6, carrierPrice_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 7, getCarrierPriceFlatAdjustment()); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeDoubleSize( + 8, carrierPricePercentageAdjustment_); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(9, minHandlingTime_); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, maxHandlingTime_); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(11, fixedMinTransitTime_); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(12, fixedMaxTransitTime_); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(13, carrierTransitTime_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - } - public static final int MPN_FIELD_NUMBER = 29; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping other = + (com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) obj; - @SuppressWarnings("serial") - private volatile java.lang.Object mpn_ = ""; + if (hasCountry() != other.hasCountry()) return false; + if (hasCountry()) { + if (!getCountry().equals(other.getCountry())) return false; + } + if (hasRegion() != other.hasRegion()) return false; + if (hasRegion()) { + if (!getRegion().equals(other.getRegion())) return false; + } + if (hasPostalCode() != other.hasPostalCode()) return false; + if (hasPostalCode()) { + if (!getPostalCode().equals(other.getPostalCode())) return false; + } + if (hasOriginPostalCode() != other.hasOriginPostalCode()) return false; + if (hasOriginPostalCode()) { + if (!getOriginPostalCode().equals(other.getOriginPostalCode())) return false; + } + if (hasFlatPrice() != other.hasFlatPrice()) return false; + if (hasFlatPrice()) { + if (!getFlatPrice().equals(other.getFlatPrice())) return false; + } + if (hasCarrierPrice() != other.hasCarrierPrice()) return false; + if (hasCarrierPrice()) { + if (carrierPrice_ != other.carrierPrice_) return false; + } + if (hasCarrierPriceFlatAdjustment() != other.hasCarrierPriceFlatAdjustment()) return false; + if (hasCarrierPriceFlatAdjustment()) { + if (!getCarrierPriceFlatAdjustment().equals(other.getCarrierPriceFlatAdjustment())) + return false; + } + if (hasCarrierPricePercentageAdjustment() != other.hasCarrierPricePercentageAdjustment()) + return false; + if (hasCarrierPricePercentageAdjustment()) { + if (java.lang.Double.doubleToLongBits(getCarrierPricePercentageAdjustment()) + != java.lang.Double.doubleToLongBits(other.getCarrierPricePercentageAdjustment())) + return false; + } + if (hasMinHandlingTime() != other.hasMinHandlingTime()) return false; + if (hasMinHandlingTime()) { + if (getMinHandlingTime() != other.getMinHandlingTime()) return false; + } + if (hasMaxHandlingTime() != other.hasMaxHandlingTime()) return false; + if (hasMaxHandlingTime()) { + if (getMaxHandlingTime() != other.getMaxHandlingTime()) return false; + } + if (hasFixedMinTransitTime() != other.hasFixedMinTransitTime()) return false; + if (hasFixedMinTransitTime()) { + if (getFixedMinTransitTime() != other.getFixedMinTransitTime()) return false; + } + if (hasFixedMaxTransitTime() != other.hasFixedMaxTransitTime()) return false; + if (hasFixedMaxTransitTime()) { + if (getFixedMaxTransitTime() != other.getFixedMaxTransitTime()) return false; + } + if (hasCarrierTransitTime() != other.hasCarrierTransitTime()) return false; + if (hasCarrierTransitTime()) { + if (carrierTransitTime_ != other.carrierTransitTime_) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } - /** - * - * - *
-   * Manufacturer Part Number
-   * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-   * item.
-   * 
- * - * optional string mpn = 29; - * - * @return Whether the mpn field is set. - */ - @java.lang.Override - public boolean hasMpn() { - return ((bitField0_ & 0x00200000) != 0); - } + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasCountry()) { + hash = (37 * hash) + COUNTRY_FIELD_NUMBER; + hash = (53 * hash) + getCountry().hashCode(); + } + if (hasRegion()) { + hash = (37 * hash) + REGION_FIELD_NUMBER; + hash = (53 * hash) + getRegion().hashCode(); + } + if (hasPostalCode()) { + hash = (37 * hash) + POSTAL_CODE_FIELD_NUMBER; + hash = (53 * hash) + getPostalCode().hashCode(); + } + if (hasOriginPostalCode()) { + hash = (37 * hash) + ORIGIN_POSTAL_CODE_FIELD_NUMBER; + hash = (53 * hash) + getOriginPostalCode().hashCode(); + } + if (hasFlatPrice()) { + hash = (37 * hash) + FLAT_PRICE_FIELD_NUMBER; + hash = (53 * hash) + getFlatPrice().hashCode(); + } + if (hasCarrierPrice()) { + hash = (37 * hash) + CARRIER_PRICE_FIELD_NUMBER; + hash = (53 * hash) + carrierPrice_; + } + if (hasCarrierPriceFlatAdjustment()) { + hash = (37 * hash) + CARRIER_PRICE_FLAT_ADJUSTMENT_FIELD_NUMBER; + hash = (53 * hash) + getCarrierPriceFlatAdjustment().hashCode(); + } + if (hasCarrierPricePercentageAdjustment()) { + hash = (37 * hash) + CARRIER_PRICE_PERCENTAGE_ADJUSTMENT_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getCarrierPricePercentageAdjustment())); + } + if (hasMinHandlingTime()) { + hash = (37 * hash) + MIN_HANDLING_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMinHandlingTime()); + } + if (hasMaxHandlingTime()) { + hash = (37 * hash) + MAX_HANDLING_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxHandlingTime()); + } + if (hasFixedMinTransitTime()) { + hash = (37 * hash) + FIXED_MIN_TRANSIT_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getFixedMinTransitTime()); + } + if (hasFixedMaxTransitTime()) { + hash = (37 * hash) + FIXED_MAX_TRANSIT_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getFixedMaxTransitTime()); + } + if (hasCarrierTransitTime()) { + hash = (37 * hash) + CARRIER_TRANSIT_TIME_FIELD_NUMBER; + hash = (53 * hash) + carrierTransitTime_; + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - /** - * - * - *
-   * Manufacturer Part Number
-   * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-   * item.
-   * 
- * - * optional string mpn = 29; - * - * @return The mpn. - */ - @java.lang.Override - public java.lang.String getMpn() { - java.lang.Object ref = mpn_; - 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(); - mpn_ = s; - return s; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - } - /** - * - * - *
-   * Manufacturer Part Number
-   * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-   * item.
-   * 
- * - * optional string mpn = 29; - * - * @return The bytes for mpn. - */ - @java.lang.Override - public com.google.protobuf.ByteString getMpnBytes() { - java.lang.Object ref = mpn_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - mpn_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - } - public static final int PATTERN_FIELD_NUMBER = 30; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - @SuppressWarnings("serial") - private volatile java.lang.Object pattern_ = ""; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * - * - *
-   * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-   * For example, polka dots.
-   * 
- * - * optional string pattern = 30; - * - * @return Whether the pattern field is set. - */ - @java.lang.Override - public boolean hasPattern() { - return ((bitField0_ & 0x00400000) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * - * - *
-   * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-   * For example, polka dots.
-   * 
- * - * optional string pattern = 30; - * - * @return The pattern. - */ - @java.lang.Override - public java.lang.String getPattern() { - java.lang.Object ref = pattern_; - 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(); - pattern_ = s; - return s; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - } - /** - * - * - *
-   * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-   * For example, polka dots.
-   * 
- * - * optional string pattern = 30; - * - * @return The bytes for pattern. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPatternBytes() { - java.lang.Object ref = pattern_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - pattern_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - } - public static final int PRICE_FIELD_NUMBER = 31; - private com.google.shopping.type.Price price_; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Price of the item.
-   * 
- * - * .google.shopping.type.Price price = 31; - * - * @return Whether the price field is set. - */ - @java.lang.Override - public boolean hasPrice() { - return ((bitField0_ & 0x00800000) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } - /** - * - * - *
-   * Price of the item.
-   * 
- * - * .google.shopping.type.Price price = 31; - * - * @return The price. - */ - @java.lang.Override - public com.google.shopping.type.Price getPrice() { - return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Price of the item.
-   * 
- * - * .google.shopping.type.Price price = 31; - */ - @java.lang.Override - public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { - return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } - public static final int MAXIMUM_RETAIL_PRICE_FIELD_NUMBER = 139; - private com.google.shopping.type.Price maximumRetailPrice_; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Maximum retail price (MRP) of the item. Applicable to India only.
-   * 
- * - * .google.shopping.type.Price maximum_retail_price = 139; - * - * @return Whether the maximumRetailPrice field is set. - */ - @java.lang.Override - public boolean hasMaximumRetailPrice() { - return ((bitField0_ & 0x01000000) != 0); - } - - /** - * - * - *
-   * Maximum retail price (MRP) of the item. Applicable to India only.
-   * 
- * - * .google.shopping.type.Price maximum_retail_price = 139; - * - * @return The maximumRetailPrice. - */ - @java.lang.Override - public com.google.shopping.type.Price getMaximumRetailPrice() { - return maximumRetailPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : maximumRetailPrice_; - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - /** - * - * - *
-   * Maximum retail price (MRP) of the item. Applicable to India only.
-   * 
- * - * .google.shopping.type.Price maximum_retail_price = 139; - */ - @java.lang.Override - public com.google.shopping.type.PriceOrBuilder getMaximumRetailPriceOrBuilder() { - return maximumRetailPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : maximumRetailPrice_; - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - public static final int INSTALLMENT_FIELD_NUMBER = 32; - private com.google.shopping.merchant.products.v1.ProductInstallment installment_; + public static Builder newBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - /** - * - * - *
-   * Number and amount of installments to pay for an item.
-   * 
- * - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; - * - * @return Whether the installment field is set. - */ - @java.lang.Override - public boolean hasInstallment() { - return ((bitField0_ & 0x02000000) != 0); - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - /** - * - * - *
-   * Number and amount of installments to pay for an item.
-   * 
- * - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; - * - * @return The installment. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductInstallment getInstallment() { - return installment_ == null - ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() - : installment_; - } + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - /** - * - * - *
-   * Number and amount of installments to pay for an item.
-   * 
- * - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder - getInstallmentOrBuilder() { - return installment_ == null - ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() - : installment_; - } + /** + * + * + *
+     * Carrier-based shipping configuration. Allows for setting shipping speed or
+     * shipping cost based on a carrier's provided info.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_descriptor; + } - public static final int SUBSCRIPTION_COST_FIELD_NUMBER = 33; - private com.google.shopping.merchant.products.v1.SubscriptionCost subscriptionCost_; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.class, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + .class); + } - /** - * - * - *
-   * Number of periods (weeks, months or years) and amount of payment per period
-   * for an item with an associated subscription contract.
-   * 
- * - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; - * - * @return Whether the subscriptionCost field is set. - */ - @java.lang.Override - public boolean hasSubscriptionCost() { - return ((bitField0_ & 0x04000000) != 0); - } + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } - /** - * - * - *
-   * Number of periods (weeks, months or years) and amount of payment per period
-   * for an item with an associated subscription contract.
-   * 
- * - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; - * - * @return The subscriptionCost. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.SubscriptionCost getSubscriptionCost() { - return subscriptionCost_ == null - ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() - : subscriptionCost_; - } + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } - /** - * - * - *
-   * Number of periods (weeks, months or years) and amount of payment per period
-   * for an item with an associated subscription contract.
-   * 
- * - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder - getSubscriptionCostOrBuilder() { - return subscriptionCost_ == null - ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() - : subscriptionCost_; - } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetFlatPriceFieldBuilder(); + internalGetCarrierPriceFlatAdjustmentFieldBuilder(); + } + } - public static final int LOYALTY_POINTS_FIELD_NUMBER = 34; - private com.google.shopping.merchant.products.v1.LoyaltyPoints loyaltyPoints_; + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + country_ = ""; + region_ = ""; + postalCode_ = ""; + originPostalCode_ = ""; + flatPrice_ = null; + if (flatPriceBuilder_ != null) { + flatPriceBuilder_.dispose(); + flatPriceBuilder_ = null; + } + carrierPrice_ = 0; + carrierPriceFlatAdjustment_ = null; + if (carrierPriceFlatAdjustmentBuilder_ != null) { + carrierPriceFlatAdjustmentBuilder_.dispose(); + carrierPriceFlatAdjustmentBuilder_ = null; + } + carrierPricePercentageAdjustment_ = 0D; + minHandlingTime_ = 0L; + maxHandlingTime_ = 0L; + fixedMinTransitTime_ = 0L; + fixedMaxTransitTime_ = 0L; + carrierTransitTime_ = 0; + return this; + } - /** - * - * - *
-   * Loyalty points that users receive after purchasing the item. Japan only.
-   * 
- * - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; - * - * @return Whether the loyaltyPoints field is set. - */ - @java.lang.Override - public boolean hasLoyaltyPoints() { - return ((bitField0_ & 0x08000000) != 0); - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_descriptor; + } - /** - * - * - *
-   * Loyalty points that users receive after purchasing the item. Japan only.
-   * 
- * - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; - * - * @return The loyaltyPoints. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.LoyaltyPoints getLoyaltyPoints() { - return loyaltyPoints_ == null - ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() - : loyaltyPoints_; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + .getDefaultInstance(); + } - /** - * - * - *
-   * Loyalty points that users receive after purchasing the item. Japan only.
-   * 
- * - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder - getLoyaltyPointsOrBuilder() { - return loyaltyPoints_ == null - ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() - : loyaltyPoints_; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping build() { + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - public static final int LOYALTY_PROGRAMS_FIELD_NUMBER = 136; + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping result = + new com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - @SuppressWarnings("serial") - private java.util.List loyaltyPrograms_; + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.country_ = country_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.region_ = region_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.postalCode_ = postalCode_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.originPostalCode_ = originPostalCode_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.flatPrice_ = flatPriceBuilder_ == null ? flatPrice_ : flatPriceBuilder_.build(); + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.carrierPrice_ = carrierPrice_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.carrierPriceFlatAdjustment_ = + carrierPriceFlatAdjustmentBuilder_ == null + ? carrierPriceFlatAdjustment_ + : carrierPriceFlatAdjustmentBuilder_.build(); + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.carrierPricePercentageAdjustment_ = carrierPricePercentageAdjustment_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.minHandlingTime_ = minHandlingTime_; + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.maxHandlingTime_ = maxHandlingTime_; + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.fixedMinTransitTime_ = fixedMinTransitTime_; + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.fixedMaxTransitTime_ = fixedMaxTransitTime_; + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.carrierTransitTime_ = carrierTransitTime_; + to_bitField0_ |= 0x00001000; + } + result.bitField0_ |= to_bitField0_; + } - /** - * - * - *
-   * A list of loyalty program information that is used to surface loyalty
-   * benefits (for example, better pricing, points, etc) to the user of this
-   * item.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; - * - */ - @java.lang.Override - public java.util.List - getLoyaltyProgramsList() { - return loyaltyPrograms_; - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) other); + } else { + super.mergeFrom(other); + return this; + } + } - /** - * - * - *
-   * A list of loyalty program information that is used to surface loyalty
-   * benefits (for example, better pricing, points, etc) to the user of this
-   * item.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; - * - */ - @java.lang.Override - public java.util.List - getLoyaltyProgramsOrBuilderList() { - return loyaltyPrograms_; - } + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + .getDefaultInstance()) return this; + if (other.hasCountry()) { + country_ = other.country_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasRegion()) { + region_ = other.region_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasPostalCode()) { + postalCode_ = other.postalCode_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasOriginPostalCode()) { + originPostalCode_ = other.originPostalCode_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasFlatPrice()) { + mergeFlatPrice(other.getFlatPrice()); + } + if (other.hasCarrierPrice()) { + setCarrierPriceValue(other.getCarrierPriceValue()); + } + if (other.hasCarrierPriceFlatAdjustment()) { + mergeCarrierPriceFlatAdjustment(other.getCarrierPriceFlatAdjustment()); + } + if (other.hasCarrierPricePercentageAdjustment()) { + setCarrierPricePercentageAdjustment(other.getCarrierPricePercentageAdjustment()); + } + if (other.hasMinHandlingTime()) { + setMinHandlingTime(other.getMinHandlingTime()); + } + if (other.hasMaxHandlingTime()) { + setMaxHandlingTime(other.getMaxHandlingTime()); + } + if (other.hasFixedMinTransitTime()) { + setFixedMinTransitTime(other.getFixedMinTransitTime()); + } + if (other.hasFixedMaxTransitTime()) { + setFixedMaxTransitTime(other.getFixedMaxTransitTime()); + } + if (other.hasCarrierTransitTime()) { + setCarrierTransitTimeValue(other.getCarrierTransitTimeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - /** - * - * - *
-   * A list of loyalty program information that is used to surface loyalty
-   * benefits (for example, better pricing, points, etc) to the user of this
-   * item.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; - * - */ - @java.lang.Override - public int getLoyaltyProgramsCount() { - return loyaltyPrograms_.size(); - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - /** - * - * - *
-   * A list of loyalty program information that is used to surface loyalty
-   * benefits (for example, better pricing, points, etc) to the user of this
-   * item.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.LoyaltyProgram getLoyaltyPrograms(int index) { - return loyaltyPrograms_.get(index); - } - - /** - * - * - *
-   * A list of loyalty program information that is used to surface loyalty
-   * benefits (for example, better pricing, points, etc) to the user of this
-   * item.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder - getLoyaltyProgramsOrBuilder(int index) { - return loyaltyPrograms_.get(index); - } + @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: + { + country_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + region_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + postalCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + originPostalCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + input.readMessage( + internalGetFlatPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: + { + carrierPrice_ = input.readEnum(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: + { + input.readMessage( + internalGetCarrierPriceFlatAdjustmentFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 65: + { + carrierPricePercentageAdjustment_ = input.readDouble(); + bitField0_ |= 0x00000080; + break; + } // case 65 + case 72: + { + minHandlingTime_ = input.readInt64(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: + { + maxHandlingTime_ = input.readInt64(); + bitField0_ |= 0x00000200; + break; + } // case 80 + case 88: + { + fixedMinTransitTime_ = input.readInt64(); + bitField0_ |= 0x00000400; + break; + } // case 88 + case 96: + { + fixedMaxTransitTime_ = input.readInt64(); + bitField0_ |= 0x00000800; + break; + } // case 96 + case 104: + { + carrierTransitTime_ = input.readEnum(); + bitField0_ |= 0x00001000; + break; + } // case 104 + 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; + } - public static final int PRODUCT_TYPES_FIELD_NUMBER = 35; + private int bitField0_; - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList productTypes_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + private java.lang.Object country_ = ""; - /** - * - * - *
-   * Categories of the item (formatted as in [product data
-   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
-   * 
- * - * repeated string product_types = 35; - * - * @return A list containing the productTypes. - */ - public com.google.protobuf.ProtocolStringList getProductTypesList() { - return productTypes_; - } + /** + * + * + *
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
+       * 
+ * + * optional string country = 1; + * + * @return Whether the country field is set. + */ + public boolean hasCountry() { + return ((bitField0_ & 0x00000001) != 0); + } - /** - * - * - *
-   * Categories of the item (formatted as in [product data
-   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
-   * 
- * - * repeated string product_types = 35; - * - * @return The count of productTypes. - */ - public int getProductTypesCount() { - return productTypes_.size(); - } + /** + * + * + *
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
+       * 
+ * + * optional string country = 1; + * + * @return The country. + */ + public java.lang.String getCountry() { + java.lang.Object ref = country_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + country_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - /** - * - * - *
-   * Categories of the item (formatted as in [product data
-   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
-   * 
- * - * repeated string product_types = 35; - * - * @param index The index of the element to return. - * @return The productTypes at the given index. - */ - public java.lang.String getProductTypes(int index) { - return productTypes_.get(index); - } + /** + * + * + *
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
+       * 
+ * + * optional string country = 1; + * + * @return The bytes for country. + */ + public com.google.protobuf.ByteString getCountryBytes() { + java.lang.Object ref = country_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + country_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - /** - * - * - *
-   * Categories of the item (formatted as in [product data
-   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
-   * 
- * - * repeated string product_types = 35; - * - * @param index The index of the value to return. - * @return The bytes of the productTypes at the given index. - */ - public com.google.protobuf.ByteString getProductTypesBytes(int index) { - return productTypes_.getByteString(index); - } + /** + * + * + *
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
+       * 
+ * + * optional string country = 1; + * + * @param value The country to set. + * @return This builder for chaining. + */ + public Builder setCountry(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + country_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - public static final int SALE_PRICE_FIELD_NUMBER = 36; - private com.google.shopping.type.Price salePrice_; + /** + * + * + *
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
+       * 
+ * + * optional string country = 1; + * + * @return This builder for chaining. + */ + public Builder clearCountry() { + country_ = getDefaultInstance().getCountry(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } - /** - * - * - *
-   * Advertised sale price of the item.
-   * 
- * - * .google.shopping.type.Price sale_price = 36; - * - * @return Whether the salePrice field is set. - */ - @java.lang.Override - public boolean hasSalePrice() { - return ((bitField0_ & 0x10000000) != 0); - } + /** + * + * + *
+       * The [CLDR territory
+       * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+       * of the country to which an item will ship.
+       * 
+ * + * optional string country = 1; + * + * @param value The bytes for country to set. + * @return This builder for chaining. + */ + public Builder setCountryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + country_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - /** - * - * - *
-   * Advertised sale price of the item.
-   * 
- * - * .google.shopping.type.Price sale_price = 36; - * - * @return The salePrice. - */ - @java.lang.Override - public com.google.shopping.type.Price getSalePrice() { - return salePrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : salePrice_; - } + private java.lang.Object region_ = ""; - /** - * - * - *
-   * Advertised sale price of the item.
-   * 
- * - * .google.shopping.type.Price sale_price = 36; - */ - @java.lang.Override - public com.google.shopping.type.PriceOrBuilder getSalePriceOrBuilder() { - return salePrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : salePrice_; - } + /** + * + * + *
+       * The geographic region to which a shipping rate applies.
+       * See [region](https://support.google.com/merchants/answer/6324484) for
+       * more information.
+       * 
+ * + * optional string region = 2; + * + * @return Whether the region field is set. + */ + public boolean hasRegion() { + return ((bitField0_ & 0x00000002) != 0); + } - public static final int SALE_PRICE_EFFECTIVE_DATE_FIELD_NUMBER = 37; - private com.google.type.Interval salePriceEffectiveDate_; + /** + * + * + *
+       * The geographic region to which a shipping rate applies.
+       * See [region](https://support.google.com/merchants/answer/6324484) for
+       * more information.
+       * 
+ * + * optional string region = 2; + * + * @return The region. + */ + public java.lang.String getRegion() { + java.lang.Object ref = region_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + region_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - /** - * - * - *
-   * Date range during which the item is on sale, see [product data
-   * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
-   * 
- * - * .google.type.Interval sale_price_effective_date = 37; - * - * @return Whether the salePriceEffectiveDate field is set. - */ - @java.lang.Override - public boolean hasSalePriceEffectiveDate() { - return ((bitField0_ & 0x20000000) != 0); - } + /** + * + * + *
+       * The geographic region to which a shipping rate applies.
+       * See [region](https://support.google.com/merchants/answer/6324484) for
+       * more information.
+       * 
+ * + * optional string region = 2; + * + * @return The bytes for region. + */ + public com.google.protobuf.ByteString getRegionBytes() { + java.lang.Object ref = region_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + region_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - /** - * - * - *
-   * Date range during which the item is on sale, see [product data
-   * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
-   * 
- * - * .google.type.Interval sale_price_effective_date = 37; - * - * @return The salePriceEffectiveDate. - */ - @java.lang.Override - public com.google.type.Interval getSalePriceEffectiveDate() { - return salePriceEffectiveDate_ == null - ? com.google.type.Interval.getDefaultInstance() - : salePriceEffectiveDate_; - } + /** + * + * + *
+       * The geographic region to which a shipping rate applies.
+       * See [region](https://support.google.com/merchants/answer/6324484) for
+       * more information.
+       * 
+ * + * optional string region = 2; + * + * @param value The region to set. + * @return This builder for chaining. + */ + public Builder setRegion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + region_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } - /** - * - * - *
-   * Date range during which the item is on sale, see [product data
-   * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
-   * 
- * - * .google.type.Interval sale_price_effective_date = 37; - */ - @java.lang.Override - public com.google.type.IntervalOrBuilder getSalePriceEffectiveDateOrBuilder() { - return salePriceEffectiveDate_ == null - ? com.google.type.Interval.getDefaultInstance() - : salePriceEffectiveDate_; - } + /** + * + * + *
+       * The geographic region to which a shipping rate applies.
+       * See [region](https://support.google.com/merchants/answer/6324484) for
+       * more information.
+       * 
+ * + * optional string region = 2; + * + * @return This builder for chaining. + */ + public Builder clearRegion() { + region_ = getDefaultInstance().getRegion(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } - public static final int SELL_ON_GOOGLE_QUANTITY_FIELD_NUMBER = 38; - private long sellOnGoogleQuantity_ = 0L; + /** + * + * + *
+       * The geographic region to which a shipping rate applies.
+       * See [region](https://support.google.com/merchants/answer/6324484) for
+       * more information.
+       * 
+ * + * optional string region = 2; + * + * @param value The bytes for region to set. + * @return This builder for chaining. + */ + public Builder setRegionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + region_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } - /** - * - * - *
-   * The quantity of the product that is available for selling on Google.
-   * Supported only for online products.
-   * 
- * - * optional int64 sell_on_google_quantity = 38; - * - * @return Whether the sellOnGoogleQuantity field is set. - */ - @java.lang.Override - public boolean hasSellOnGoogleQuantity() { - return ((bitField0_ & 0x40000000) != 0); - } + private java.lang.Object postalCode_ = ""; - /** - * - * - *
-   * The quantity of the product that is available for selling on Google.
-   * Supported only for online products.
-   * 
- * - * optional int64 sell_on_google_quantity = 38; - * - * @return The sellOnGoogleQuantity. - */ - @java.lang.Override - public long getSellOnGoogleQuantity() { - return sellOnGoogleQuantity_; - } + /** + * + * + *
+       * The postal code range that the shipping rate applies to, represented by
+       * a postal code (eg. `94043`), a postal code prefix followed by a *
+       * wildcard (eg. `94*`), a range between two postal codes (eg.
+       * `94043-98033`) or two postal code prefixes of equal length (eg.
+       * `94*-98*`).
+       * 
+ * + * optional string postal_code = 3; + * + * @return Whether the postalCode field is set. + */ + public boolean hasPostalCode() { + return ((bitField0_ & 0x00000004) != 0); + } - public static final int PRODUCT_HEIGHT_FIELD_NUMBER = 119; - private com.google.shopping.merchant.products.v1.ProductDimension productHeight_; + /** + * + * + *
+       * The postal code range that the shipping rate applies to, represented by
+       * a postal code (eg. `94043`), a postal code prefix followed by a *
+       * wildcard (eg. `94*`), a range between two postal codes (eg.
+       * `94043-98033`) or two postal code prefixes of equal length (eg.
+       * `94*-98*`).
+       * 
+ * + * optional string postal_code = 3; + * + * @return The postalCode. + */ + public java.lang.String getPostalCode() { + java.lang.Object ref = postalCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + postalCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - /** - * - * - *
-   * The height of the product in the units provided. The value must be
-   * between
-   * 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; - * - * @return Whether the productHeight field is set. - */ - @java.lang.Override - public boolean hasProductHeight() { - return ((bitField0_ & 0x80000000) != 0); - } + /** + * + * + *
+       * The postal code range that the shipping rate applies to, represented by
+       * a postal code (eg. `94043`), a postal code prefix followed by a *
+       * wildcard (eg. `94*`), a range between two postal codes (eg.
+       * `94043-98033`) or two postal code prefixes of equal length (eg.
+       * `94*-98*`).
+       * 
+ * + * optional string postal_code = 3; + * + * @return The bytes for postalCode. + */ + public com.google.protobuf.ByteString getPostalCodeBytes() { + java.lang.Object ref = postalCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + postalCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - /** - * - * - *
-   * The height of the product in the units provided. The value must be
-   * between
-   * 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; - * - * @return The productHeight. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDimension getProductHeight() { - return productHeight_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productHeight_; - } + /** + * + * + *
+       * The postal code range that the shipping rate applies to, represented by
+       * a postal code (eg. `94043`), a postal code prefix followed by a *
+       * wildcard (eg. `94*`), a range between two postal codes (eg.
+       * `94043-98033`) or two postal code prefixes of equal length (eg.
+       * `94*-98*`).
+       * 
+ * + * optional string postal_code = 3; + * + * @param value The postalCode to set. + * @return This builder for chaining. + */ + public Builder setPostalCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + postalCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } - /** - * - * - *
-   * The height of the product in the units provided. The value must be
-   * between
-   * 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder - getProductHeightOrBuilder() { - return productHeight_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productHeight_; - } + /** + * + * + *
+       * The postal code range that the shipping rate applies to, represented by
+       * a postal code (eg. `94043`), a postal code prefix followed by a *
+       * wildcard (eg. `94*`), a range between two postal codes (eg.
+       * `94043-98033`) or two postal code prefixes of equal length (eg.
+       * `94*-98*`).
+       * 
+ * + * optional string postal_code = 3; + * + * @return This builder for chaining. + */ + public Builder clearPostalCode() { + postalCode_ = getDefaultInstance().getPostalCode(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } - public static final int PRODUCT_LENGTH_FIELD_NUMBER = 120; - private com.google.shopping.merchant.products.v1.ProductDimension productLength_; + /** + * + * + *
+       * The postal code range that the shipping rate applies to, represented by
+       * a postal code (eg. `94043`), a postal code prefix followed by a *
+       * wildcard (eg. `94*`), a range between two postal codes (eg.
+       * `94043-98033`) or two postal code prefixes of equal length (eg.
+       * `94*-98*`).
+       * 
+ * + * optional string postal_code = 3; + * + * @param value The bytes for postalCode to set. + * @return This builder for chaining. + */ + public Builder setPostalCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + postalCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } - /** - * - * - *
-   * The length of the product in the units provided. The value must be
-   * between 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; - * - * @return Whether the productLength field is set. - */ - @java.lang.Override - public boolean hasProductLength() { - return ((bitField1_ & 0x00000001) != 0); - } + private java.lang.Object originPostalCode_ = ""; - /** - * - * - *
-   * The length of the product in the units provided. The value must be
-   * between 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; - * - * @return The productLength. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDimension getProductLength() { - return productLength_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productLength_; - } + /** + * + * + *
+       * The source location postal code from which this offer ships. Represented
+       * only by a full-length postal code.
+       * 
+ * + * optional string origin_postal_code = 4; + * + * @return Whether the originPostalCode field is set. + */ + public boolean hasOriginPostalCode() { + return ((bitField0_ & 0x00000008) != 0); + } - /** - * - * - *
-   * The length of the product in the units provided. The value must be
-   * between 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder - getProductLengthOrBuilder() { - return productLength_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productLength_; - } + /** + * + * + *
+       * The source location postal code from which this offer ships. Represented
+       * only by a full-length postal code.
+       * 
+ * + * optional string origin_postal_code = 4; + * + * @return The originPostalCode. + */ + public java.lang.String getOriginPostalCode() { + java.lang.Object ref = originPostalCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + originPostalCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - public static final int PRODUCT_WIDTH_FIELD_NUMBER = 121; - private com.google.shopping.merchant.products.v1.ProductDimension productWidth_; + /** + * + * + *
+       * The source location postal code from which this offer ships. Represented
+       * only by a full-length postal code.
+       * 
+ * + * optional string origin_postal_code = 4; + * + * @return The bytes for originPostalCode. + */ + public com.google.protobuf.ByteString getOriginPostalCodeBytes() { + java.lang.Object ref = originPostalCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + originPostalCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - /** - * - * - *
-   * The width of the product in the units provided. The value must be between
-   * 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; - * - * @return Whether the productWidth field is set. - */ - @java.lang.Override - public boolean hasProductWidth() { - return ((bitField1_ & 0x00000002) != 0); - } + /** + * + * + *
+       * The source location postal code from which this offer ships. Represented
+       * only by a full-length postal code.
+       * 
+ * + * optional string origin_postal_code = 4; + * + * @param value The originPostalCode to set. + * @return This builder for chaining. + */ + public Builder setOriginPostalCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + originPostalCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } - /** - * - * - *
-   * The width of the product in the units provided. The value must be between
-   * 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; - * - * @return The productWidth. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDimension getProductWidth() { - return productWidth_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productWidth_; - } + /** + * + * + *
+       * The source location postal code from which this offer ships. Represented
+       * only by a full-length postal code.
+       * 
+ * + * optional string origin_postal_code = 4; + * + * @return This builder for chaining. + */ + public Builder clearOriginPostalCode() { + originPostalCode_ = getDefaultInstance().getOriginPostalCode(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } - /** - * - * - *
-   * The width of the product in the units provided. The value must be between
-   * 0 (exclusive) and 3000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder - getProductWidthOrBuilder() { - return productWidth_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productWidth_; - } + /** + * + * + *
+       * The source location postal code from which this offer ships. Represented
+       * only by a full-length postal code.
+       * 
+ * + * optional string origin_postal_code = 4; + * + * @param value The bytes for originPostalCode to set. + * @return This builder for chaining. + */ + public Builder setOriginPostalCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + originPostalCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } - public static final int PRODUCT_WEIGHT_FIELD_NUMBER = 122; - private com.google.shopping.merchant.products.v1.ProductWeight productWeight_; + private com.google.shopping.type.Price flatPrice_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + flatPriceBuilder_; - /** - * - * - *
-   * The weight of the product in the units provided. The value must be
-   * between 0 (exclusive) and 2000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; - * - * @return Whether the productWeight field is set. - */ - @java.lang.Override - public boolean hasProductWeight() { - return ((bitField1_ & 0x00000004) != 0); - } + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + * + * @return Whether the flatPrice field is set. + */ + public boolean hasFlatPrice() { + return ((bitField0_ & 0x00000010) != 0); + } - /** - * - * - *
-   * The weight of the product in the units provided. The value must be
-   * between 0 (exclusive) and 2000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; - * - * @return The productWeight. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductWeight getProductWeight() { - return productWeight_ == null - ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() - : productWeight_; - } + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + * + * @return The flatPrice. + */ + public com.google.shopping.type.Price getFlatPrice() { + if (flatPriceBuilder_ == null) { + return flatPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : flatPrice_; + } else { + return flatPriceBuilder_.getMessage(); + } + } - /** - * - * - *
-   * The weight of the product in the units provided. The value must be
-   * between 0 (exclusive) and 2000 (inclusive).
-   * 
- * - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductWeightOrBuilder - getProductWeightOrBuilder() { - return productWeight_ == null - ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() - : productWeight_; - } + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + public Builder setFlatPrice(com.google.shopping.type.Price value) { + if (flatPriceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + flatPrice_ = value; + } else { + flatPriceBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } - public static final int SHIPPING_FIELD_NUMBER = 39; + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + public Builder setFlatPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (flatPriceBuilder_ == null) { + flatPrice_ = builderForValue.build(); + } else { + flatPriceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } - @SuppressWarnings("serial") - private java.util.List shipping_; + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + public Builder mergeFlatPrice(com.google.shopping.type.Price value) { + if (flatPriceBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) + && flatPrice_ != null + && flatPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { + getFlatPriceBuilder().mergeFrom(value); + } else { + flatPrice_ = value; + } + } else { + flatPriceBuilder_.mergeFrom(value); + } + if (flatPrice_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } - /** - * - * - *
-   * Shipping rules.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; - */ - @java.lang.Override - public java.util.List getShippingList() { - return shipping_; - } + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + public Builder clearFlatPrice() { + bitField0_ = (bitField0_ & ~0x00000010); + flatPrice_ = null; + if (flatPriceBuilder_ != null) { + flatPriceBuilder_.dispose(); + flatPriceBuilder_ = null; + } + onChanged(); + return this; + } - /** - * - * - *
-   * Shipping rules.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; - */ - @java.lang.Override - public java.util.List - getShippingOrBuilderList() { - return shipping_; - } + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + public com.google.shopping.type.Price.Builder getFlatPriceBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return internalGetFlatPriceFieldBuilder().getBuilder(); + } - /** - * - * - *
-   * Shipping rules.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; - */ - @java.lang.Override - public int getShippingCount() { - return shipping_.size(); - } + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + public com.google.shopping.type.PriceOrBuilder getFlatPriceOrBuilder() { + if (flatPriceBuilder_ != null) { + return flatPriceBuilder_.getMessageOrBuilder(); + } else { + return flatPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : flatPrice_; + } + } - /** - * - * - *
-   * Shipping rules.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Shipping getShipping(int index) { - return shipping_.get(index); - } + /** + * + * + *
+       * Fixed shipping price, represented as a number with currency. Cannot be
+       * set together with
+       * [carrierPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price]
+       * or its adjustments
+       * ([carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment],
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment]).
+       * 
+ * + * optional .google.shopping.type.Price flat_price = 5; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetFlatPriceFieldBuilder() { + if (flatPriceBuilder_ == null) { + flatPriceBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getFlatPrice(), getParentForChildren(), isClean()); + flatPrice_ = null; + } + return flatPriceBuilder_; + } - /** - * - * - *
-   * Shipping rules.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingOrBuilder getShippingOrBuilder( - int index) { - return shipping_.get(index); - } + private int carrierPrice_ = 0; - public static final int CARRIER_SHIPPING_FIELD_NUMBER = 142; + /** + * + * + *
+       * Selected carrier to calculate the shipping price from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate shipping price.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return Whether the carrierPrice field is set. + */ + @java.lang.Override + public boolean hasCarrierPrice() { + return ((bitField0_ & 0x00000020) != 0); + } - @SuppressWarnings("serial") - private java.util.List - carrierShipping_; + /** + * + * + *
+       * Selected carrier to calculate the shipping price from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate shipping price.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return The enum numeric value on the wire for carrierPrice. + */ + @java.lang.Override + public int getCarrierPriceValue() { + return carrierPrice_; + } - /** - * - * - *
-   * Rules for carrier-based shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * - */ - @java.lang.Override - public java.util.List - getCarrierShippingList() { - return carrierShipping_; - } + /** + * + * + *
+       * Selected carrier to calculate the shipping price from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate shipping price.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @param value The enum numeric value on the wire for carrierPrice to set. + * @return This builder for chaining. + */ + public Builder setCarrierPriceValue(int value) { + carrierPrice_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } - /** - * - * - *
-   * Rules for carrier-based shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * - */ - @java.lang.Override - public java.util.List< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> - getCarrierShippingOrBuilderList() { - return carrierShipping_; - } + /** + * + * + *
+       * Selected carrier to calculate the shipping price from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate shipping price.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return The carrierPrice. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption + getCarrierPrice() { + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption result = + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption.forNumber( + carrierPrice_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption + .UNRECOGNIZED + : result; + } - /** - * - * - *
-   * Rules for carrier-based shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * - */ - @java.lang.Override - public int getCarrierShippingCount() { - return carrierShipping_.size(); - } + /** + * + * + *
+       * Selected carrier to calculate the shipping price from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate shipping price.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @param value The carrierPrice to set. + * @return This builder for chaining. + */ + public Builder setCarrierPrice( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + carrierPrice_ = value.getNumber(); + onChanged(); + return this; + } - /** - * - * - *
-   * Rules for carrier-based shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - getCarrierShipping(int index) { - return carrierShipping_.get(index); - } + /** + * + * + *
+       * Selected carrier to calculate the shipping price from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Price will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate shipping price.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductAttributes.CarrierPriceOption carrier_price = 6; + * + * + * @return This builder for chaining. + */ + public Builder clearCarrierPrice() { + bitField0_ = (bitField0_ & ~0x00000020); + carrierPrice_ = 0; + onChanged(); + return this; + } - /** - * - * - *
-   * Rules for carrier-based shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder - getCarrierShippingOrBuilder(int index) { - return carrierShipping_.get(index); - } + private com.google.shopping.type.Price carrierPriceFlatAdjustment_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + carrierPriceFlatAdjustmentBuilder_; - public static final int FREE_SHIPPING_THRESHOLD_FIELD_NUMBER = 135; + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * + * @return Whether the carrierPriceFlatAdjustment field is set. + */ + public boolean hasCarrierPriceFlatAdjustment() { + return ((bitField0_ & 0x00000040) != 0); + } - @SuppressWarnings("serial") - private java.util.List - freeShippingThreshold_; + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + * + * @return The carrierPriceFlatAdjustment. + */ + public com.google.shopping.type.Price getCarrierPriceFlatAdjustment() { + if (carrierPriceFlatAdjustmentBuilder_ == null) { + return carrierPriceFlatAdjustment_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : carrierPriceFlatAdjustment_; + } else { + return carrierPriceFlatAdjustmentBuilder_.getMessage(); + } + } - /** - * - * - *
-   * Conditions to be met for a product to have free shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * - */ - @java.lang.Override - public java.util.List - getFreeShippingThresholdList() { - return freeShippingThreshold_; - } + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + public Builder setCarrierPriceFlatAdjustment(com.google.shopping.type.Price value) { + if (carrierPriceFlatAdjustmentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + carrierPriceFlatAdjustment_ = value; + } else { + carrierPriceFlatAdjustmentBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } - /** - * - * - *
-   * Conditions to be met for a product to have free shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * - */ - @java.lang.Override - public java.util.List< - ? extends com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> - getFreeShippingThresholdOrBuilderList() { - return freeShippingThreshold_; - } + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + public Builder setCarrierPriceFlatAdjustment( + com.google.shopping.type.Price.Builder builderForValue) { + if (carrierPriceFlatAdjustmentBuilder_ == null) { + carrierPriceFlatAdjustment_ = builderForValue.build(); + } else { + carrierPriceFlatAdjustmentBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } - /** - * - * - *
-   * Conditions to be met for a product to have free shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * - */ - @java.lang.Override - public int getFreeShippingThresholdCount() { - return freeShippingThreshold_.size(); - } + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + public Builder mergeCarrierPriceFlatAdjustment(com.google.shopping.type.Price value) { + if (carrierPriceFlatAdjustmentBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) + && carrierPriceFlatAdjustment_ != null + && carrierPriceFlatAdjustment_ + != com.google.shopping.type.Price.getDefaultInstance()) { + getCarrierPriceFlatAdjustmentBuilder().mergeFrom(value); + } else { + carrierPriceFlatAdjustment_ = value; + } + } else { + carrierPriceFlatAdjustmentBuilder_.mergeFrom(value); + } + if (carrierPriceFlatAdjustment_ != null) { + bitField0_ |= 0x00000040; + onChanged(); + } + return this; + } - /** - * - * - *
-   * Conditions to be met for a product to have free shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.FreeShippingThreshold getFreeShippingThreshold( - int index) { - return freeShippingThreshold_.get(index); - } + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + public Builder clearCarrierPriceFlatAdjustment() { + bitField0_ = (bitField0_ & ~0x00000040); + carrierPriceFlatAdjustment_ = null; + if (carrierPriceFlatAdjustmentBuilder_ != null) { + carrierPriceFlatAdjustmentBuilder_.dispose(); + carrierPriceFlatAdjustmentBuilder_ = null; + } + onChanged(); + return this; + } - /** - * - * - *
-   * Conditions to be met for a product to have free shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder - getFreeShippingThresholdOrBuilder(int index) { - return freeShippingThreshold_.get(index); - } + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + public com.google.shopping.type.Price.Builder getCarrierPriceFlatAdjustmentBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return internalGetCarrierPriceFlatAdjustmentFieldBuilder().getBuilder(); + } - public static final int SHIPPING_WEIGHT_FIELD_NUMBER = 40; - private com.google.shopping.merchant.products.v1.ShippingWeight shippingWeight_; + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + public com.google.shopping.type.PriceOrBuilder getCarrierPriceFlatAdjustmentOrBuilder() { + if (carrierPriceFlatAdjustmentBuilder_ != null) { + return carrierPriceFlatAdjustmentBuilder_.getMessageOrBuilder(); + } else { + return carrierPriceFlatAdjustment_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : carrierPriceFlatAdjustment_; + } + } - /** - * - * - *
-   * Weight of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; - * - * @return Whether the shippingWeight field is set. - */ - @java.lang.Override - public boolean hasShippingWeight() { - return ((bitField1_ & 0x00000008) != 0); - } + /** + * + * + *
+       * A flat adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPricePercentageAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_percentage_adjustment].
+       * 
+ * + * optional .google.shopping.type.Price carrier_price_flat_adjustment = 7; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetCarrierPriceFlatAdjustmentFieldBuilder() { + if (carrierPriceFlatAdjustmentBuilder_ == null) { + carrierPriceFlatAdjustmentBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getCarrierPriceFlatAdjustment(), getParentForChildren(), isClean()); + carrierPriceFlatAdjustment_ = null; + } + return carrierPriceFlatAdjustmentBuilder_; + } - /** - * - * - *
-   * Weight of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; - * - * @return The shippingWeight. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingWeight getShippingWeight() { - return shippingWeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() - : shippingWeight_; - } + private double carrierPricePercentageAdjustment_; - /** - * - * - *
-   * Weight of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder - getShippingWeightOrBuilder() { - return shippingWeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() - : shippingWeight_; - } + /** + * + * + *
+       * A percentual adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+       * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @return Whether the carrierPricePercentageAdjustment field is set. + */ + @java.lang.Override + public boolean hasCarrierPricePercentageAdjustment() { + return ((bitField0_ & 0x00000080) != 0); + } - public static final int SHIPPING_LENGTH_FIELD_NUMBER = 41; - private com.google.shopping.merchant.products.v1.ShippingDimension shippingLength_; + /** + * + * + *
+       * A percentual adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+       * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @return The carrierPricePercentageAdjustment. + */ + @java.lang.Override + public double getCarrierPricePercentageAdjustment() { + return carrierPricePercentageAdjustment_; + } - /** - * - * - *
-   * Length of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; - * - * @return Whether the shippingLength field is set. - */ - @java.lang.Override - public boolean hasShippingLength() { - return ((bitField1_ & 0x00000010) != 0); - } - - /** - * - * - *
-   * Length of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; - * - * @return The shippingLength. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingDimension getShippingLength() { - return shippingLength_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingLength_; - } - - /** - * - * - *
-   * Length of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder - getShippingLengthOrBuilder() { - return shippingLength_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingLength_; - } + /** + * + * + *
+       * A percentual adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+       * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @param value The carrierPricePercentageAdjustment to set. + * @return This builder for chaining. + */ + public Builder setCarrierPricePercentageAdjustment(double value) { - public static final int SHIPPING_WIDTH_FIELD_NUMBER = 42; - private com.google.shopping.merchant.products.v1.ShippingDimension shippingWidth_; + carrierPricePercentageAdjustment_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } - /** - * - * - *
-   * Width of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; - * - * @return Whether the shippingWidth field is set. - */ - @java.lang.Override - public boolean hasShippingWidth() { - return ((bitField1_ & 0x00000020) != 0); - } + /** + * + * + *
+       * A percentual adjustment on the carrier price. Can be either positive or
+       * negative. Cannot be zero. Requires `carrier_price` to be present. Cannot
+       * be set together with
+       * [flatPrice][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.flat_price]
+       * and
+       * [carrierPriceFlatAdjustment][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_price_flat_adjustment].
+       * 
+ * + * optional double carrier_price_percentage_adjustment = 8; + * + * @return This builder for chaining. + */ + public Builder clearCarrierPricePercentageAdjustment() { + bitField0_ = (bitField0_ & ~0x00000080); + carrierPricePercentageAdjustment_ = 0D; + onChanged(); + return this; + } - /** - * - * - *
-   * Width of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; - * - * @return The shippingWidth. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingDimension getShippingWidth() { - return shippingWidth_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingWidth_; - } + private long minHandlingTime_; - /** - * - * - *
-   * Width of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder - getShippingWidthOrBuilder() { - return shippingWidth_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingWidth_; - } + /** + * + * + *
+       * Minimum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time.
+       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+       * can only be set if
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * is also set.
+       * 
+ * + * optional int64 min_handling_time = 9; + * + * @return Whether the minHandlingTime field is set. + */ + @java.lang.Override + public boolean hasMinHandlingTime() { + return ((bitField0_ & 0x00000100) != 0); + } - public static final int SHIPPING_HEIGHT_FIELD_NUMBER = 43; - private com.google.shopping.merchant.products.v1.ShippingDimension shippingHeight_; + /** + * + * + *
+       * Minimum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time.
+       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+       * can only be set if
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * is also set.
+       * 
+ * + * optional int64 min_handling_time = 9; + * + * @return The minHandlingTime. + */ + @java.lang.Override + public long getMinHandlingTime() { + return minHandlingTime_; + } - /** - * - * - *
-   * Height of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; - * - * @return Whether the shippingHeight field is set. - */ - @java.lang.Override - public boolean hasShippingHeight() { - return ((bitField1_ & 0x00000040) != 0); - } + /** + * + * + *
+       * Minimum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time.
+       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+       * can only be set if
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * is also set.
+       * 
+ * + * optional int64 min_handling_time = 9; + * + * @param value The minHandlingTime to set. + * @return This builder for chaining. + */ + public Builder setMinHandlingTime(long value) { - /** - * - * - *
-   * Height of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; - * - * @return The shippingHeight. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingDimension getShippingHeight() { - return shippingHeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingHeight_; - } + minHandlingTime_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } - /** - * - * - *
-   * Height of the item for shipping.
-   * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder - getShippingHeightOrBuilder() { - return shippingHeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingHeight_; - } + /** + * + * + *
+       * Minimum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time.
+       * [minHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.min_handling_time]
+       * can only be set if
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * is also set.
+       * 
+ * + * optional int64 min_handling_time = 9; + * + * @return This builder for chaining. + */ + public Builder clearMinHandlingTime() { + bitField0_ = (bitField0_ & ~0x00000100); + minHandlingTime_ = 0L; + onChanged(); + return this; + } - public static final int MAX_HANDLING_TIME_FIELD_NUMBER = 44; - private long maxHandlingTime_ = 0L; + private long maxHandlingTime_; - /** - * - * - *
-   * Maximal product handling time (in business days).
-   * 
- * - * optional int64 max_handling_time = 44; - * - * @return Whether the maxHandlingTime field is set. - */ - @java.lang.Override - public boolean hasMaxHandlingTime() { - return ((bitField1_ & 0x00000080) != 0); - } + /** + * + * + *
+       * Maximum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time. Both
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * and
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * are required if providing shipping speeds.
+       * 
+ * + * optional int64 max_handling_time = 10; + * + * @return Whether the maxHandlingTime field is set. + */ + @java.lang.Override + public boolean hasMaxHandlingTime() { + return ((bitField0_ & 0x00000200) != 0); + } - /** - * - * - *
-   * Maximal product handling time (in business days).
-   * 
- * - * optional int64 max_handling_time = 44; - * - * @return The maxHandlingTime. - */ - @java.lang.Override - public long getMaxHandlingTime() { - return maxHandlingTime_; - } + /** + * + * + *
+       * Maximum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time. Both
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * and
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * are required if providing shipping speeds.
+       * 
+ * + * optional int64 max_handling_time = 10; + * + * @return The maxHandlingTime. + */ + @java.lang.Override + public long getMaxHandlingTime() { + return maxHandlingTime_; + } - public static final int MIN_HANDLING_TIME_FIELD_NUMBER = 45; - private long minHandlingTime_ = 0L; + /** + * + * + *
+       * Maximum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time. Both
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * and
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * are required if providing shipping speeds.
+       * 
+ * + * optional int64 max_handling_time = 10; + * + * @param value The maxHandlingTime to set. + * @return This builder for chaining. + */ + public Builder setMaxHandlingTime(long value) { - /** - * - * - *
-   * Minimal product handling time (in business days).
-   * 
- * - * optional int64 min_handling_time = 45; - * - * @return Whether the minHandlingTime field is set. - */ - @java.lang.Override - public boolean hasMinHandlingTime() { - return ((bitField1_ & 0x00000100) != 0); - } + maxHandlingTime_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } - /** - * - * - *
-   * Minimal product handling time (in business days).
-   * 
- * - * optional int64 min_handling_time = 45; - * - * @return The minHandlingTime. - */ - @java.lang.Override - public long getMinHandlingTime() { - return minHandlingTime_; - } + /** + * + * + *
+       * Maximum handling time (inclusive) between when the order is received and
+       * shipped in business days. 0 means that the order is shipped on the same
+       * day as it is received if it happens before the cut-off time. Both
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time]
+       * and
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * are required if providing shipping speeds.
+       * 
+ * + * optional int64 max_handling_time = 10; + * + * @return This builder for chaining. + */ + public Builder clearMaxHandlingTime() { + bitField0_ = (bitField0_ & ~0x00000200); + maxHandlingTime_ = 0L; + onChanged(); + return this; + } - public static final int SHIPPING_HANDLING_BUSINESS_DAYS_FIELD_NUMBER = 143; + private long fixedMinTransitTime_; - @SuppressWarnings("serial") - private java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - shippingHandlingBusinessDays_; + /** + * + * + *
+       * Minimum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships.
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+       * can only be set if
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * is set. Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @return Whether the fixedMinTransitTime field is set. + */ + @java.lang.Override + public boolean hasFixedMinTransitTime() { + return ((bitField0_ & 0x00000400) != 0); + } - /** - * - * - *
-   * The business days during which orders can be handled. If not provided,
-   * Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; - * - */ - @java.lang.Override - public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - getShippingHandlingBusinessDaysList() { - return shippingHandlingBusinessDays_; - } + /** + * + * + *
+       * Minimum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships.
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+       * can only be set if
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * is set. Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @return The fixedMinTransitTime. + */ + @java.lang.Override + public long getFixedMinTransitTime() { + return fixedMinTransitTime_; + } - /** - * - * - *
-   * The business days during which orders can be handled. If not provided,
-   * Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; - * - */ - @java.lang.Override - public java.util.List< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - getShippingHandlingBusinessDaysOrBuilderList() { - return shippingHandlingBusinessDays_; - } + /** + * + * + *
+       * Minimum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships.
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+       * can only be set if
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * is set. Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @param value The fixedMinTransitTime to set. + * @return This builder for chaining. + */ + public Builder setFixedMinTransitTime(long value) { - /** - * - * - *
-   * The business days during which orders can be handled. If not provided,
-   * Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; - * - */ - @java.lang.Override - public int getShippingHandlingBusinessDaysCount() { - return shippingHandlingBusinessDays_.size(); - } + fixedMinTransitTime_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } - /** - * - * - *
-   * The business days during which orders can be handled. If not provided,
-   * Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - getShippingHandlingBusinessDays(int index) { - return shippingHandlingBusinessDays_.get(index); - } + /** + * + * + *
+       * Minimum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships.
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time]
+       * can only be set if
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * is set. Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_min_transit_time = 11; + * + * @return This builder for chaining. + */ + public Builder clearFixedMinTransitTime() { + bitField0_ = (bitField0_ & ~0x00000400); + fixedMinTransitTime_ = 0L; + onChanged(); + return this; + } - /** - * - * - *
-   * The business days during which orders can be handled. If not provided,
-   * Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder - getShippingHandlingBusinessDaysOrBuilder(int index) { - return shippingHandlingBusinessDays_.get(index); - } + private long fixedMaxTransitTime_; - public static final int SHIPPING_TRANSIT_BUSINESS_DAYS_FIELD_NUMBER = 144; + /** + * + * + *
+       * Maximum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships. Needs to be provided together with
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+       * Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @return Whether the fixedMaxTransitTime field is set. + */ + @java.lang.Override + public boolean hasFixedMaxTransitTime() { + return ((bitField0_ & 0x00000800) != 0); + } - @SuppressWarnings("serial") - private java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - shippingTransitBusinessDays_; + /** + * + * + *
+       * Maximum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships. Needs to be provided together with
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+       * Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @return The fixedMaxTransitTime. + */ + @java.lang.Override + public long getFixedMaxTransitTime() { + return fixedMaxTransitTime_; + } - /** - * - * - *
-   * The business days during which orders are in transit.
-   * If not provided, Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - @java.lang.Override - public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - getShippingTransitBusinessDaysList() { - return shippingTransitBusinessDays_; - } + /** + * + * + *
+       * Maximum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships. Needs to be provided together with
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+       * Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @param value The fixedMaxTransitTime to set. + * @return This builder for chaining. + */ + public Builder setFixedMaxTransitTime(long value) { - /** - * - * - *
-   * The business days during which orders are in transit.
-   * If not provided, Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - @java.lang.Override - public java.util.List< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - getShippingTransitBusinessDaysOrBuilderList() { - return shippingTransitBusinessDays_; - } + fixedMaxTransitTime_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } - /** - * - * - *
-   * The business days during which orders are in transit.
-   * If not provided, Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - @java.lang.Override - public int getShippingTransitBusinessDaysCount() { - return shippingTransitBusinessDays_.size(); - } + /** + * + * + *
+       * Maximum transit time (inclusive) between when the order has shipped and
+       * when it is delivered in business days. 0 means that the order is
+       * delivered on the same day as it ships. Needs to be provided together with
+       * [maxHandlingTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.max_handling_time].
+       * Cannot be set if
+       * [carrierTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.carrier_transit_time]
+       * is present.
+       * 
+ * + * optional int64 fixed_max_transit_time = 12; + * + * @return This builder for chaining. + */ + public Builder clearFixedMaxTransitTime() { + bitField0_ = (bitField0_ & ~0x00000800); + fixedMaxTransitTime_ = 0L; + onChanged(); + return this; + } - /** - * - * - *
-   * The business days during which orders are in transit.
-   * If not provided, Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - getShippingTransitBusinessDays(int index) { - return shippingTransitBusinessDays_.get(index); - } + private int carrierTransitTime_ = 0; - /** - * - * - *
-   * The business days during which orders are in transit.
-   * If not provided, Monday to Friday business days will be assumed.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder - getShippingTransitBusinessDaysOrBuilder(int index) { - return shippingTransitBusinessDays_.get(index); - } + /** + * + * + *
+       * Selected carrier to calculate the shipping speed from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate delivery speed.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return Whether the carrierTransitTime field is set. + */ + @java.lang.Override + public boolean hasCarrierTransitTime() { + return ((bitField0_ & 0x00001000) != 0); + } - public static final int HANDLING_CUTOFF_TIMES_FIELD_NUMBER = 141; + /** + * + * + *
+       * Selected carrier to calculate the shipping speed from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate delivery speed.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return The enum numeric value on the wire for carrierTransitTime. + */ + @java.lang.Override + public int getCarrierTransitTimeValue() { + return carrierTransitTime_; + } - @SuppressWarnings("serial") - private java.util.List - handlingCutoffTimes_; + /** + * + * + *
+       * Selected carrier to calculate the shipping speed from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate delivery speed.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @param value The enum numeric value on the wire for carrierTransitTime to set. + * @return This builder for chaining. + */ + public Builder setCarrierTransitTimeValue(int value) { + carrierTransitTime_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } - /** - * - * - *
-   * The handling cutoff times for shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; - * - */ - @java.lang.Override - public java.util.List - getHandlingCutoffTimesList() { - return handlingCutoffTimes_; - } + /** + * + * + *
+       * Selected carrier to calculate the shipping speed from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate delivery speed.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return The carrierTransitTime. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.CarrierTransitTimeOption + getCarrierTransitTime() { + com.google.shopping.merchant.products.v1.CarrierTransitTimeOption result = + com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.forNumber( + carrierTransitTime_); + return result == null + ? com.google.shopping.merchant.products.v1.CarrierTransitTimeOption.UNRECOGNIZED + : result; + } - /** - * - * - *
-   * The handling cutoff times for shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; - * - */ - @java.lang.Override - public java.util.List< - ? extends com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> - getHandlingCutoffTimesOrBuilderList() { - return handlingCutoffTimes_; - } + /** + * + * + *
+       * Selected carrier to calculate the shipping speed from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate delivery speed.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @param value The carrierTransitTime to set. + * @return This builder for chaining. + */ + public Builder setCarrierTransitTime( + com.google.shopping.merchant.products.v1.CarrierTransitTimeOption value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00001000; + carrierTransitTime_ = value.getNumber(); + onChanged(); + return this; + } - /** - * - * - *
-   * The handling cutoff times for shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; - * - */ - @java.lang.Override - public int getHandlingCutoffTimesCount() { - return handlingCutoffTimes_.size(); - } + /** + * + * + *
+       * Selected carrier to calculate the shipping speed from. Select a carrier
+       * from the [available carriers
+       * list](https://support.google.com/merchants/answer/15449142#Supported),
+       * for example `AUSTRALIA_POST_REGULAR`. Speed will be calculated by this
+       * selected carrier, the location expressed in
+       * [originPostalCode][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.origin_postal_code],
+       * along with the user location to determine the accurate delivery speed.
+       * Carrier is represented by a carrier service name or a carrier service ID.
+       * Cannot be set together with
+       * [fixedMaxTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_max_transit_time]
+       * or
+       * [fixedMinTransitTime][google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.fixed_min_transit_time].
+       * 
+ * + * + * optional .google.shopping.merchant.products.v1.CarrierTransitTimeOption carrier_transit_time = 13; + * + * + * @return This builder for chaining. + */ + public Builder clearCarrierTransitTime() { + bitField0_ = (bitField0_ & ~0x00001000); + carrierTransitTime_ = 0; + onChanged(); + return this; + } - /** - * - * - *
-   * The handling cutoff times for shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.HandlingCutoffTime getHandlingCutoffTimes( - int index) { - return handlingCutoffTimes_.get(index); - } + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) + } - /** - * - * - *
-   * The handling cutoff times for shipping.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder - getHandlingCutoffTimesOrBuilder(int index) { - return handlingCutoffTimes_.get(index); - } + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + DEFAULT_INSTANCE; - public static final int SHIPPING_LABEL_FIELD_NUMBER = 46; + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping(); + } - @SuppressWarnings("serial") - private volatile java.lang.Object shippingLabel_ = ""; + public static com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + getDefaultInstance() { + return DEFAULT_INSTANCE; + } - /** - * - * - *
-   * The shipping label of the product, used to group products in account-level
-   * shipping rules. Max. 100 characters. For more information, see
-   * [Shipping label](https://support.google.com/merchants/answer/6324504).
-   * 
- * - * optional string shipping_label = 46; - * - * @return Whether the shippingLabel field is set. - */ - @java.lang.Override - public boolean hasShippingLabel() { - return ((bitField1_ & 0x00000200) != 0); - } + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CarrierShipping 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(); + } + }; - /** - * - * - *
-   * The shipping label of the product, used to group products in account-level
-   * shipping rules. Max. 100 characters. For more information, see
-   * [Shipping label](https://support.google.com/merchants/answer/6324504).
-   * 
- * - * optional string shipping_label = 46; - * - * @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; + public static com.google.protobuf.Parser parser() { + return PARSER; } - } - /** - * - * - *
-   * The shipping label of the product, used to group products in account-level
-   * shipping rules. Max. 100 characters. For more information, see
-   * [Shipping label](https://support.google.com/merchants/answer/6324504).
-   * 
- * - * optional string shipping_label = 46; - * - * @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; + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; } } - public static final int RETURN_POLICY_LABEL_FIELD_NUMBER = 170; + public interface MileageOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.Mileage) + com.google.protobuf.MessageOrBuilder { - @SuppressWarnings("serial") - private volatile java.lang.Object returnPolicyLabel_ = ""; + /** + * + * + *
+     * The distance value.
+     * 
+ * + * optional int64 value = 1; + * + * @return Whether the value field is set. + */ + boolean hasValue(); - /** - * - * - *
-   * The return label of the product, used to group products in account-level
-   * return policies. Max. 100 characters. For more information, see
-   * [Return policy label](https://support.google.com/merchants/answer/9445425).
-   * 
- * - * optional string return_policy_label = 170; - * - * @return Whether the returnPolicyLabel field is set. - */ - @java.lang.Override - public boolean hasReturnPolicyLabel() { - return ((bitField1_ & 0x00000400) != 0); - } + /** + * + * + *
+     * The distance value.
+     * 
+ * + * optional int64 value = 1; + * + * @return The value. + */ + long getValue(); - /** - * - * - *
-   * The return label of the product, used to group products in account-level
-   * return policies. Max. 100 characters. For more information, see
-   * [Return policy label](https://support.google.com/merchants/answer/9445425).
-   * 
- * - * optional string return_policy_label = 170; - * - * @return The returnPolicyLabel. - */ - @java.lang.Override - public java.lang.String getReturnPolicyLabel() { - java.lang.Object ref = returnPolicyLabel_; - 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(); - returnPolicyLabel_ = s; - return s; - } + /** + * + * + *
+     * The unit of the mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @return The enum numeric value on the wire for unit. + */ + int getUnitValue(); + + /** + * + * + *
+     * The unit of the mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @return The unit. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit getUnit(); } /** * * *
-   * The return label of the product, used to group products in account-level
-   * return policies. Max. 100 characters. For more information, see
-   * [Return policy label](https://support.google.com/merchants/answer/9445425).
+   * The mileage of the vehicle.
    * 
* - * optional string return_policy_label = 170; - * - * @return The bytes for returnPolicyLabel. + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.Mileage} */ - @java.lang.Override - public com.google.protobuf.ByteString getReturnPolicyLabelBytes() { - java.lang.Object ref = returnPolicyLabel_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - returnPolicyLabel_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + public static final class Mileage extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.Mileage) + MileageOrBuilder { + private static final long serialVersionUID = 0L; - public static final int TRANSIT_TIME_LABEL_FIELD_NUMBER = 47; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Mileage"); + } - @SuppressWarnings("serial") - private volatile java.lang.Object transitTimeLabel_ = ""; + // Use Mileage.newBuilder() to construct. + private Mileage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } - /** - * - * - *
-   * The transit time label of the product, used to group product in
-   * account-level transit time tables.
-   * 
- * - * optional string transit_time_label = 47; - * - * @return Whether the transitTimeLabel field is set. - */ - @java.lang.Override - public boolean hasTransitTimeLabel() { - return ((bitField1_ & 0x00000800) != 0); - } + private Mileage() { + unit_ = 0; + } - /** - * - * - *
-   * The transit time label of the product, used to group product in
-   * account-level transit time tables.
-   * 
- * - * optional string transit_time_label = 47; - * - * @return The transitTimeLabel. - */ - @java.lang.Override - public java.lang.String getTransitTimeLabel() { - java.lang.Object ref = transitTimeLabel_; - 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(); - transitTimeLabel_ = s; - return s; + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_descriptor; } - } - /** - * - * - *
-   * The transit time label of the product, used to group product in
-   * account-level transit time tables.
-   * 
- * - * optional string transit_time_label = 47; - * - * @return The bytes for transitTimeLabel. - */ - @java.lang.Override - public com.google.protobuf.ByteString getTransitTimeLabelBytes() { - java.lang.Object ref = transitTimeLabel_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - transitTimeLabel_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.class, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder.class); } - } - public static final int SIZE_FIELD_NUMBER = 48; + /** + * + * + *
+     * The unit of the mileage.
+     * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit} + */ + public enum Unit implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + UNIT_UNSPECIFIED(0), + /** + * + * + *
+       * Miles.
+       * 
+ * + * MILES = 1; + */ + MILES(1), + /** + * + * + *
+       * Kilometers.
+       * 
+ * + * KM = 2; + */ + KM(2), + UNRECOGNIZED(-1), + ; - @SuppressWarnings("serial") - private volatile java.lang.Object size_ = ""; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Unit"); + } - /** - * - * - *
-   * Size of the item. Only one value is allowed. For variants with different
-   * sizes, insert a separate product for each size with the same
-   * `itemGroupId` value, see
-   * [Size](https://support.google.com/merchants/answer/6324492).
-   * 
- * - * optional string size = 48; - * - * @return Whether the size field is set. - */ - @java.lang.Override - public boolean hasSize() { - return ((bitField1_ & 0x00001000) != 0); - } + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + public static final int UNIT_UNSPECIFIED_VALUE = 0; - /** - * - * - *
-   * Size of the item. Only one value is allowed. For variants with different
-   * sizes, insert a separate product for each size with the same
-   * `itemGroupId` value, see
-   * [Size](https://support.google.com/merchants/answer/6324492).
-   * 
- * - * optional string size = 48; - * - * @return The size. - */ - @java.lang.Override - public java.lang.String getSize() { - java.lang.Object ref = size_; - 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(); - size_ = s; - return s; - } - } + /** + * + * + *
+       * Miles.
+       * 
+ * + * MILES = 1; + */ + public static final int MILES_VALUE = 1; - /** - * - * - *
-   * Size of the item. Only one value is allowed. For variants with different
-   * sizes, insert a separate product for each size with the same
-   * `itemGroupId` value, see
-   * [Size](https://support.google.com/merchants/answer/6324492).
-   * 
- * - * optional string size = 48; - * - * @return The bytes for size. - */ - @java.lang.Override - public com.google.protobuf.ByteString getSizeBytes() { - java.lang.Object ref = size_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - size_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * + * + *
+       * Kilometers.
+       * 
+ * + * KM = 2; + */ + public static final int KM_VALUE = 2; - public static final int SIZE_SYSTEM_FIELD_NUMBER = 49; - private int sizeSystem_ = 0; + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } - /** - * - * - *
-   * System in which the size is specified. Recommended for apparel items.
-   * For more information, see
-   * [Size system](https://support.google.com/merchants/answer/6324502).
-   * 
- * - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @return Whether the sizeSystem field is set. - */ - @java.lang.Override - public boolean hasSizeSystem() { - return ((bitField1_ & 0x00002000) != 0); - } + /** + * @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 Unit valueOf(int value) { + return forNumber(value); + } - /** - * - * - *
-   * System in which the size is specified. Recommended for apparel items.
-   * For more information, see
-   * [Size system](https://support.google.com/merchants/answer/6324502).
-   * 
- * - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @return The enum numeric value on the wire for sizeSystem. - */ - @java.lang.Override - public int getSizeSystemValue() { - return sizeSystem_; - } - - /** - * - * - *
-   * System in which the size is specified. Recommended for apparel items.
-   * For more information, see
-   * [Size system](https://support.google.com/merchants/answer/6324502).
-   * 
- * - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @return The sizeSystem. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.SizeSystem getSizeSystem() { - com.google.shopping.merchant.products.v1.SizeSystem result = - com.google.shopping.merchant.products.v1.SizeSystem.forNumber(sizeSystem_); - return result == null - ? com.google.shopping.merchant.products.v1.SizeSystem.UNRECOGNIZED - : result; - } - - public static final int SIZE_TYPES_FIELD_NUMBER = 50; + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Unit forNumber(int value) { + switch (value) { + case 0: + return UNIT_UNSPECIFIED; + case 1: + return MILES; + case 2: + return KM; + default: + return null; + } + } - @SuppressWarnings("serial") - private com.google.protobuf.Internal.IntList sizeTypes_ = emptyIntList(); + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< - com.google.shopping.merchant.products.v1.SizeType> - sizeTypes_converter_ = - new com.google.protobuf.Internal.IntListAdapter.IntConverter< - com.google.shopping.merchant.products.v1.SizeType>() { - public com.google.shopping.merchant.products.v1.SizeType convert(int from) { - com.google.shopping.merchant.products.v1.SizeType result = - com.google.shopping.merchant.products.v1.SizeType.forNumber(from); - return result == null - ? com.google.shopping.merchant.products.v1.SizeType.UNRECOGNIZED - : result; + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Unit findValueByNumber(int number) { + return Unit.forNumber(number); } }; - /** - * - * - *
-   * The cut of the item. It can be used to represent combined size types for
-   * apparel items. Maximum two of size types can be provided, see
-   * [Size type](https://support.google.com/merchants/answer/6324497).
-   * 
- * - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @return A list containing the sizeTypes. - */ - @java.lang.Override - public java.util.List getSizeTypesList() { - return new com.google.protobuf.Internal.IntListAdapter< - com.google.shopping.merchant.products.v1.SizeType>(sizeTypes_, sizeTypes_converter_); - } + 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()); + } - /** - * - * - *
-   * The cut of the item. It can be used to represent combined size types for
-   * apparel items. Maximum two of size types can be provided, see
-   * [Size type](https://support.google.com/merchants/answer/6324497).
-   * 
- * - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @return The count of sizeTypes. - */ - @java.lang.Override - public int getSizeTypesCount() { - return sizeTypes_.size(); - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * - * - *
-   * The cut of the item. It can be used to represent combined size types for
-   * apparel items. Maximum two of size types can be provided, see
-   * [Size type](https://support.google.com/merchants/answer/6324497).
-   * 
- * - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param index The index of the element to return. - * @return The sizeTypes at the given index. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.SizeType getSizeTypes(int index) { - return sizeTypes_converter_.convert(sizeTypes_.getInt(index)); - } + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.getDescriptor() + .getEnumTypes() + .get(0); + } - /** - * - * - *
-   * The cut of the item. It can be used to represent combined size types for
-   * apparel items. Maximum two of size types can be provided, see
-   * [Size type](https://support.google.com/merchants/answer/6324497).
-   * 
- * - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @return A list containing the enum numeric values on the wire for sizeTypes. - */ - @java.lang.Override - public java.util.List getSizeTypesValueList() { - return sizeTypes_; - } + private static final Unit[] VALUES = values(); - /** - * - * - *
-   * The cut of the item. It can be used to represent combined size types for
-   * apparel items. Maximum two of size types can be provided, see
-   * [Size type](https://support.google.com/merchants/answer/6324497).
-   * 
- * - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param index The index of the value to return. - * @return The enum numeric value on the wire of sizeTypes at the given index. - */ - @java.lang.Override - public int getSizeTypesValue(int index) { - return sizeTypes_.getInt(index); - } + public static Unit 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 int sizeTypesMemoizedSerializedSize; + private final int value; - public static final int ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER = 53; - private int energyEfficiencyClass_ = 0; + private Unit(int value) { + this.value = value; + } - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * - * - * @return Whether the energyEfficiencyClass field is set. - */ - @java.lang.Override - public boolean hasEnergyEfficiencyClass() { - return ((bitField1_ & 0x00004000) != 0); - } + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit) + } - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * - * - * @return The enum numeric value on the wire for energyEfficiencyClass. - */ - @java.lang.Override - public int getEnergyEfficiencyClassValue() { - return energyEfficiencyClass_; - } + private int bitField0_; + public static final int VALUE_FIELD_NUMBER = 1; + private long value_ = 0L; - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * - * - * @return The energyEfficiencyClass. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass getEnergyEfficiencyClass() { - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( - energyEfficiencyClass_); - return result == null - ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED - : result; - } + /** + * + * + *
+     * The distance value.
+     * 
+ * + * optional int64 value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } - public static final int MIN_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER = 54; - private int minEnergyEfficiencyClass_ = 0; + /** + * + * + *
+     * The distance value.
+     * 
+ * + * optional int64 value = 1; + * + * @return The value. + */ + @java.lang.Override + public long getValue() { + return value_; + } - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; - * - * - * @return Whether the minEnergyEfficiencyClass field is set. - */ - @java.lang.Override - public boolean hasMinEnergyEfficiencyClass() { - return ((bitField1_ & 0x00008000) != 0); - } + public static final int UNIT_FIELD_NUMBER = 2; + private int unit_ = 0; - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; - * - * - * @return The enum numeric value on the wire for minEnergyEfficiencyClass. - */ - @java.lang.Override - public int getMinEnergyEfficiencyClassValue() { - return minEnergyEfficiencyClass_; - } + /** + * + * + *
+     * The unit of the mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; + } - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; - * - * - * @return The minEnergyEfficiencyClass. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass - getMinEnergyEfficiencyClass() { - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( - minEnergyEfficiencyClass_); - return result == null - ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED - : result; - } + /** + * + * + *
+     * The unit of the mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit.forNumber(unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit.UNRECOGNIZED + : result; + } - public static final int MAX_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER = 55; - private int maxEnergyEfficiencyClass_ = 0; + private byte memoizedIsInitialized = -1; - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; - * - * - * @return Whether the maxEnergyEfficiencyClass field is set. - */ - @java.lang.Override - public boolean hasMaxEnergyEfficiencyClass() { - return ((bitField1_ & 0x00010000) != 0); - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; - * - * - * @return The enum numeric value on the wire for maxEnergyEfficiencyClass. - */ - @java.lang.Override - public int getMaxEnergyEfficiencyClassValue() { - return maxEnergyEfficiencyClass_; - } + memoizedIsInitialized = 1; + return true; + } - /** - * - * - *
-   * The [energy efficiency
-   * class](https://support.google.com/merchants/answer/7562785) as defined in
-   * EU directive 2010/30/EU.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; - * - * - * @return The maxEnergyEfficiencyClass. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass - getMaxEnergyEfficiencyClass() { - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( - maxEnergyEfficiencyClass_); - return result == null - ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED - : result; - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeInt64(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + output.writeEnum(2, unit_); + } + getUnknownFields().writeTo(output); + } - public static final int UNIT_PRICING_MEASURE_FIELD_NUMBER = 56; - private com.google.shopping.merchant.products.v1.UnitPricingMeasure unitPricingMeasure_; + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - /** - * - * - *
-   * The measure and dimension of an item.
-   * 
- * - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; - * - * - * @return Whether the unitPricingMeasure field is set. - */ - @java.lang.Override - public boolean hasUnitPricingMeasure() { - return ((bitField1_ & 0x00020000) != 0); - } + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, unit_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - /** - * - * - *
-   * The measure and dimension of an item.
-   * 
- * - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; - * - * - * @return The unitPricingMeasure. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.UnitPricingMeasure getUnitPricingMeasure() { - return unitPricingMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() - : unitPricingMeasure_; - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.shopping.merchant.products.v1.ProductAttributes.Mileage)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage other = + (com.google.shopping.merchant.products.v1.ProductAttributes.Mileage) obj; - /** - * - * - *
-   * The measure and dimension of an item.
-   * 
- * - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder - getUnitPricingMeasureOrBuilder() { - return unitPricingMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() - : unitPricingMeasure_; - } + if (hasValue() != other.hasValue()) return false; + if (hasValue()) { + if (getValue() != other.getValue()) return false; + } + if (unit_ != other.unit_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } - public static final int UNIT_PRICING_BASE_MEASURE_FIELD_NUMBER = 57; - private com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure unitPricingBaseMeasure_; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasValue()) { + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getValue()); + } + hash = (37 * hash) + UNIT_FIELD_NUMBER; + hash = (53 * hash) + unit_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - /** - * - * - *
-   * The preference of the denominator of the unit price.
-   * 
- * - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * - * - * @return Whether the unitPricingBaseMeasure field is set. - */ - @java.lang.Override - public boolean hasUnitPricingBaseMeasure() { - return ((bitField1_ & 0x00040000) != 0); - } - - /** - * - * - *
-   * The preference of the denominator of the unit price.
-   * 
- * - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * - * - * @return The unitPricingBaseMeasure. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure - getUnitPricingBaseMeasure() { - return unitPricingBaseMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() - : unitPricingBaseMeasure_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * - * - *
-   * The preference of the denominator of the unit price.
-   * 
- * - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder - getUnitPricingBaseMeasureOrBuilder() { - return unitPricingBaseMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() - : unitPricingBaseMeasure_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - public static final int MULTIPACK_FIELD_NUMBER = 58; - private long multipack_ = 0L; + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * - * - *
-   * The number of identical products in a business-defined multipack.
-   * 
- * - * optional int64 multipack = 58; - * - * @return Whether the multipack field is set. - */ - @java.lang.Override - public boolean hasMultipack() { - return ((bitField1_ & 0x00080000) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * - * - *
-   * The number of identical products in a business-defined multipack.
-   * 
- * - * optional int64 multipack = 58; - * - * @return The multipack. - */ - @java.lang.Override - public long getMultipack() { - return multipack_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - public static final int ADS_GROUPING_FIELD_NUMBER = 59; + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @SuppressWarnings("serial") - private volatile java.lang.Object adsGrouping_ = ""; + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } - /** - * - * - *
-   * Used to group items in an arbitrary way. Only for CPA%, discouraged
-   * otherwise. For more information, see
-   * [Display ads
-   * attribute](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * optional string ads_grouping = 59; - * - * @return Whether the adsGrouping field is set. - */ - @java.lang.Override - public boolean hasAdsGrouping() { - return ((bitField1_ & 0x00100000) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Used to group items in an arbitrary way. Only for CPA%, discouraged
-   * otherwise. For more information, see
-   * [Display ads
-   * attribute](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * optional string ads_grouping = 59; - * - * @return The adsGrouping. - */ - @java.lang.Override - public java.lang.String getAdsGrouping() { - java.lang.Object ref = adsGrouping_; - 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(); - adsGrouping_ = s; - return s; + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); } - } - /** - * - * - *
-   * Used to group items in an arbitrary way. Only for CPA%, discouraged
-   * otherwise. For more information, see
-   * [Display ads
-   * attribute](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * optional string ads_grouping = 59; - * - * @return The bytes for adsGrouping. - */ - @java.lang.Override - public com.google.protobuf.ByteString getAdsGroupingBytes() { - java.lang.Object ref = adsGrouping_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - adsGrouping_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); } - } - public static final int ADS_LABELS_FIELD_NUMBER = 60; + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList adsLabels_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Similar to ads_grouping, but only works on CPC.
-   * 
- * - * repeated string ads_labels = 60; - * - * @return A list containing the adsLabels. - */ - public com.google.protobuf.ProtocolStringList getAdsLabelsList() { - return adsLabels_; - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - /** - * - * - *
-   * Similar to ads_grouping, but only works on CPC.
-   * 
- * - * repeated string ads_labels = 60; - * - * @return The count of adsLabels. - */ - public int getAdsLabelsCount() { - return adsLabels_.size(); - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - /** - * - * - *
-   * Similar to ads_grouping, but only works on CPC.
-   * 
- * - * repeated string ads_labels = 60; - * - * @param index The index of the element to return. - * @return The adsLabels at the given index. - */ - public java.lang.String getAdsLabels(int index) { - return adsLabels_.get(index); - } + public static Builder newBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - /** - * - * - *
-   * Similar to ads_grouping, but only works on CPC.
-   * 
- * - * repeated string ads_labels = 60; - * - * @param index The index of the value to return. - * @return The bytes of the adsLabels at the given index. - */ - public com.google.protobuf.ByteString getAdsLabelsBytes(int index) { - return adsLabels_.getByteString(index); - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - public static final int ADS_REDIRECT_FIELD_NUMBER = 61; + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - @SuppressWarnings("serial") - private volatile java.lang.Object adsRedirect_ = ""; + /** + * + * + *
+     * The mileage of the vehicle.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.Mileage} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.Mileage) + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_descriptor; + } - /** - * - * - *
-   * Allows advertisers to override the item URL when the product is shown
-   * within the context of Product ads.
-   * 
- * - * optional string ads_redirect = 61; - * - * @return Whether the adsRedirect field is set. - */ - @java.lang.Override - public boolean hasAdsRedirect() { - return ((bitField1_ & 0x00200000) != 0); - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.class, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder.class); + } - /** - * - * - *
-   * Allows advertisers to override the item URL when the product is shown
-   * within the context of Product ads.
-   * 
- * - * optional string ads_redirect = 61; - * - * @return The adsRedirect. - */ - @java.lang.Override - public java.lang.String getAdsRedirect() { - java.lang.Object ref = adsRedirect_; - 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(); - adsRedirect_ = s; - return s; - } - } + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.newBuilder() + private Builder() {} - /** - * - * - *
-   * Allows advertisers to override the item URL when the product is shown
-   * within the context of Product ads.
-   * 
- * - * optional string ads_redirect = 61; - * - * @return The bytes for adsRedirect. - */ - @java.lang.Override - public com.google.protobuf.ByteString getAdsRedirectBytes() { - java.lang.Object ref = adsRedirect_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - adsRedirect_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } - public static final int COST_OF_GOODS_SOLD_FIELD_NUMBER = 62; - private com.google.shopping.type.Price costOfGoodsSold_; + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + value_ = 0L; + unit_ = 0; + return this; + } - /** - * - * - *
-   * Cost of goods sold. Used for gross profit reporting.
-   * 
- * - * .google.shopping.type.Price cost_of_goods_sold = 62; - * - * @return Whether the costOfGoodsSold field is set. - */ - @java.lang.Override - public boolean hasCostOfGoodsSold() { - return ((bitField1_ & 0x00400000) != 0); - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_descriptor; + } - /** - * - * - *
-   * Cost of goods sold. Used for gross profit reporting.
-   * 
- * - * .google.shopping.type.Price cost_of_goods_sold = 62; - * - * @return The costOfGoodsSold. - */ - @java.lang.Override - public com.google.shopping.type.Price getCostOfGoodsSold() { - return costOfGoodsSold_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : costOfGoodsSold_; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance(); + } - /** - * - * - *
-   * Cost of goods sold. Used for gross profit reporting.
-   * 
- * - * .google.shopping.type.Price cost_of_goods_sold = 62; - */ - @java.lang.Override - public com.google.shopping.type.PriceOrBuilder getCostOfGoodsSoldOrBuilder() { - return costOfGoodsSold_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : costOfGoodsSold_; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage build() { + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - public static final int PRODUCT_DETAILS_FIELD_NUMBER = 63; + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage result = + new com.google.shopping.merchant.products.v1.ProductAttributes.Mileage(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - @SuppressWarnings("serial") - private java.util.List productDetails_; + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.value_ = value_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.unit_ = unit_; + } + result.bitField0_ |= to_bitField0_; + } - /** - * - * - *
-   * Technical specification or additional product details.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; - */ - @java.lang.Override - public java.util.List - getProductDetailsList() { - return productDetails_; - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.shopping.merchant.products.v1.ProductAttributes.Mileage) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.Mileage) other); + } else { + super.mergeFrom(other); + return this; + } + } - /** - * - * - *
-   * Technical specification or additional product details.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; - */ - @java.lang.Override - public java.util.List - getProductDetailsOrBuilderList() { - return productDetails_; - } + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance()) return this; + if (other.hasValue()) { + setValue(other.getValue()); + } + if (other.unit_ != 0) { + setUnitValue(other.getUnitValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - /** - * - * - *
-   * Technical specification or additional product details.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; - */ - @java.lang.Override - public int getProductDetailsCount() { - return productDetails_.size(); - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - /** - * - * - *
-   * Technical specification or additional product details.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDetail getProductDetails(int index) { - return productDetails_.get(index); - } + @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: + { + value_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + unit_ = 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; + } - /** - * - * - *
-   * Technical specification or additional product details.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductDetailOrBuilder getProductDetailsOrBuilder( - int index) { - return productDetails_.get(index); - } + private int bitField0_; - public static final int PRODUCT_HIGHLIGHTS_FIELD_NUMBER = 64; + private long value_; - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList productHighlights_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * + * + *
+       * The distance value.
+       * 
+ * + * optional int64 value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } - /** - * - * - *
-   * Bullet points describing the most relevant [product
-   * highlights](https://support.google.com/merchants/answer/9216100).
-   * 
- * - * repeated string product_highlights = 64; - * - * @return A list containing the productHighlights. - */ - public com.google.protobuf.ProtocolStringList getProductHighlightsList() { - return productHighlights_; - } + /** + * + * + *
+       * The distance value.
+       * 
+ * + * optional int64 value = 1; + * + * @return The value. + */ + @java.lang.Override + public long getValue() { + return value_; + } - /** - * - * - *
-   * Bullet points describing the most relevant [product
-   * highlights](https://support.google.com/merchants/answer/9216100).
-   * 
- * - * repeated string product_highlights = 64; - * - * @return The count of productHighlights. - */ - public int getProductHighlightsCount() { - return productHighlights_.size(); - } + /** + * + * + *
+       * The distance value.
+       * 
+ * + * optional int64 value = 1; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(long value) { - /** - * - * - *
-   * Bullet points describing the most relevant [product
-   * highlights](https://support.google.com/merchants/answer/9216100).
-   * 
- * - * repeated string product_highlights = 64; - * - * @param index The index of the element to return. - * @return The productHighlights at the given index. - */ - public java.lang.String getProductHighlights(int index) { - return productHighlights_.get(index); - } + value_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - /** - * - * - *
-   * Bullet points describing the most relevant [product
-   * highlights](https://support.google.com/merchants/answer/9216100).
-   * 
- * - * repeated string product_highlights = 64; - * - * @param index The index of the value to return. - * @return The bytes of the productHighlights at the given index. - */ - public com.google.protobuf.ByteString getProductHighlightsBytes(int index) { - return productHighlights_.getByteString(index); - } + /** + * + * + *
+       * The distance value.
+       * 
+ * + * optional int64 value = 1; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000001); + value_ = 0L; + onChanged(); + return this; + } - public static final int DISPLAY_ADS_ID_FIELD_NUMBER = 65; + private int unit_ = 0; - @SuppressWarnings("serial") - private volatile java.lang.Object displayAdsId_ = ""; + /** + * + * + *
+       * The unit of the mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; + } - /** - * - * - *
-   * An identifier for an item for dynamic remarketing campaigns.
-   * 
- * - * optional string display_ads_id = 65; - * - * @return Whether the displayAdsId field is set. - */ - @java.lang.Override - public boolean hasDisplayAdsId() { - return ((bitField1_ & 0x00800000) != 0); - } + /** + * + * + *
+       * The unit of the mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @param value The enum numeric value on the wire for unit to set. + * @return This builder for chaining. + */ + public Builder setUnitValue(int value) { + unit_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } - /** - * - * - *
-   * An identifier for an item for dynamic remarketing campaigns.
-   * 
- * - * optional string display_ads_id = 65; - * - * @return The displayAdsId. - */ - @java.lang.Override - public java.lang.String getDisplayAdsId() { - java.lang.Object ref = displayAdsId_; - 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(); - displayAdsId_ = s; - return s; + /** + * + * + *
+       * The unit of the mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit.forNumber( + unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * The unit of the mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @param value The unit to set. + * @return This builder for chaining. + */ + public Builder setUnit( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + unit_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * The unit of the mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit unit = 2; + * + * @return This builder for chaining. + */ + public Builder clearUnit() { + bitField0_ = (bitField0_ & ~0x00000002); + unit_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.Mileage) } - } - /** - * - * - *
-   * An identifier for an item for dynamic remarketing campaigns.
-   * 
- * - * optional string display_ads_id = 65; - * - * @return The bytes for displayAdsId. - */ - @java.lang.Override - public com.google.protobuf.ByteString getDisplayAdsIdBytes() { - java.lang.Object ref = displayAdsId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - displayAdsId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.Mileage) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.products.v1.ProductAttributes.Mileage(); } - } - public static final int DISPLAY_ADS_SIMILAR_IDS_FIELD_NUMBER = 66; + public static com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + getDefaultInstance() { + return DEFAULT_INSTANCE; + } - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList displayAdsSimilarIds_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Mileage 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(); + } + }; - /** - * - * - *
-   * Advertiser-specified recommendations. For more information, see
-   * [Display ads attribute
-   * specification](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * repeated string display_ads_similar_ids = 66; - * - * @return A list containing the displayAdsSimilarIds. - */ - public com.google.protobuf.ProtocolStringList getDisplayAdsSimilarIdsList() { - return displayAdsSimilarIds_; - } + public static com.google.protobuf.Parser parser() { + return PARSER; + } - /** - * - * - *
-   * Advertiser-specified recommendations. For more information, see
-   * [Display ads attribute
-   * specification](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * repeated string display_ads_similar_ids = 66; - * - * @return The count of displayAdsSimilarIds. - */ - public int getDisplayAdsSimilarIdsCount() { - return displayAdsSimilarIds_.size(); - } + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } - /** - * - * - *
-   * Advertiser-specified recommendations. For more information, see
-   * [Display ads attribute
-   * specification](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * repeated string display_ads_similar_ids = 66; - * - * @param index The index of the element to return. - * @return The displayAdsSimilarIds at the given index. - */ - public java.lang.String getDisplayAdsSimilarIds(int index) { - return displayAdsSimilarIds_.get(index); + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - /** - * - * - *
-   * Advertiser-specified recommendations. For more information, see
-   * [Display ads attribute
-   * specification](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * repeated string display_ads_similar_ids = 66; - * - * @param index The index of the value to return. - * @return The bytes of the displayAdsSimilarIds at the given index. - */ - public com.google.protobuf.ByteString getDisplayAdsSimilarIdsBytes(int index) { - return displayAdsSimilarIds_.getByteString(index); - } + public interface FuelConsumptionOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) + com.google.protobuf.MessageOrBuilder { - public static final int DISPLAY_ADS_TITLE_FIELD_NUMBER = 67; + /** + * + * + *
+     * The fuel consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + boolean hasValue(); - @SuppressWarnings("serial") - private volatile java.lang.Object displayAdsTitle_ = ""; + /** + * + * + *
+     * The fuel consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return The value. + */ + double getValue(); - /** - * - * - *
-   * Title of an item for dynamic remarketing campaigns.
-   * 
- * - * optional string display_ads_title = 67; - * - * @return Whether the displayAdsTitle field is set. - */ - @java.lang.Override - public boolean hasDisplayAdsTitle() { - return ((bitField1_ & 0x01000000) != 0); + /** + * + * + *
+     * The unit of the fuel consumption.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + int getUnitValue(); + + /** + * + * + *
+     * The unit of the fuel consumption.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @return The unit. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit getUnit(); } /** * * *
-   * Title of an item for dynamic remarketing campaigns.
+   * The fuel consumption of the vehicle.
    * 
* - * optional string display_ads_title = 67; - * - * @return The displayAdsTitle. + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption} */ - @java.lang.Override - public java.lang.String getDisplayAdsTitle() { - java.lang.Object ref = displayAdsTitle_; - 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(); - displayAdsTitle_ = s; - return s; + public static final class FuelConsumption extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) + FuelConsumptionOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "FuelConsumption"); } - } - /** - * - * - *
-   * Title of an item for dynamic remarketing campaigns.
-   * 
- * - * optional string display_ads_title = 67; - * - * @return The bytes for displayAdsTitle. - */ - @java.lang.Override - public com.google.protobuf.ByteString getDisplayAdsTitleBytes() { - java.lang.Object ref = displayAdsTitle_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - displayAdsTitle_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + // Use FuelConsumption.newBuilder() to construct. + private FuelConsumption(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); } - } - public static final int DISPLAY_ADS_LINK_FIELD_NUMBER = 68; + private FuelConsumption() { + unit_ = 0; + } - @SuppressWarnings("serial") - private volatile java.lang.Object displayAdsLink_ = ""; + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_descriptor; + } - /** - * - * - *
-   * URL directly to your item's landing page for dynamic remarketing
-   * campaigns.
-   * 
- * - * optional string display_ads_link = 68; - * - * @return Whether the displayAdsLink field is set. - */ - @java.lang.Override - public boolean hasDisplayAdsLink() { - return ((bitField1_ & 0x02000000) != 0); - } - - /** - * - * - *
-   * URL directly to your item's landing page for dynamic remarketing
-   * campaigns.
-   * 
- * - * optional string display_ads_link = 68; - * - * @return The displayAdsLink. - */ - @java.lang.Override - public java.lang.String getDisplayAdsLink() { - java.lang.Object ref = displayAdsLink_; - 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(); - displayAdsLink_ = s; - return s; - } - } - - /** - * - * - *
-   * URL directly to your item's landing page for dynamic remarketing
-   * campaigns.
-   * 
- * - * optional string display_ads_link = 68; - * - * @return The bytes for displayAdsLink. - */ - @java.lang.Override - public com.google.protobuf.ByteString getDisplayAdsLinkBytes() { - java.lang.Object ref = displayAdsLink_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - displayAdsLink_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.class, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder + .class); } - } - public static final int DISPLAY_ADS_VALUE_FIELD_NUMBER = 69; - private double displayAdsValue_ = 0D; + /** + * + * + *
+     * The unit of the fuel consumption.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit} + */ + public enum Unit implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + UNIT_UNSPECIFIED(0), + /** + * + * + *
+       * Liter per 100 kilometers.
+       * 
+ * + * LPER100KM = 1; + */ + LPER100KM(1), + /** + * + * + *
+       * Kilograms per 100 kilometers.
+       * 
+ * + * KGPER100KM = 2; + */ + KGPER100KM(2), + UNRECOGNIZED(-1), + ; - /** - * - * - *
-   * Offer margin for dynamic remarketing campaigns. For more information, see
-   * [Display ads
-   * attribute](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * optional double display_ads_value = 69; - * - * @return Whether the displayAdsValue field is set. - */ - @java.lang.Override - public boolean hasDisplayAdsValue() { - return ((bitField1_ & 0x04000000) != 0); - } + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Unit"); + } - /** - * - * - *
-   * Offer margin for dynamic remarketing campaigns. For more information, see
-   * [Display ads
-   * attribute](https://support.google.com/merchants/answer/6069387).
-   * 
- * - * optional double display_ads_value = 69; - * - * @return The displayAdsValue. - */ - @java.lang.Override - public double getDisplayAdsValue() { - return displayAdsValue_; - } + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + public static final int UNIT_UNSPECIFIED_VALUE = 0; - public static final int PROMOTION_IDS_FIELD_NUMBER = 70; + /** + * + * + *
+       * Liter per 100 kilometers.
+       * 
+ * + * LPER100KM = 1; + */ + public static final int LPER100KM_VALUE = 1; - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList promotionIds_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * + * + *
+       * Kilograms per 100 kilometers.
+       * 
+ * + * KGPER100KM = 2; + */ + public static final int KGPER100KM_VALUE = 2; - /** - * - * - *
-   * The unique ID of a promotion.
-   * 
- * - * repeated string promotion_ids = 70; - * - * @return A list containing the promotionIds. - */ - public com.google.protobuf.ProtocolStringList getPromotionIdsList() { - return promotionIds_; - } + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } - /** - * - * - *
-   * The unique ID of a promotion.
-   * 
- * - * repeated string promotion_ids = 70; - * - * @return The count of promotionIds. - */ - public int getPromotionIdsCount() { - return promotionIds_.size(); - } + /** + * @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 Unit valueOf(int value) { + return forNumber(value); + } - /** - * - * - *
-   * The unique ID of a promotion.
-   * 
- * - * repeated string promotion_ids = 70; - * - * @param index The index of the element to return. - * @return The promotionIds at the given index. - */ - public java.lang.String getPromotionIds(int index) { - return promotionIds_.get(index); - } + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Unit forNumber(int value) { + switch (value) { + case 0: + return UNIT_UNSPECIFIED; + case 1: + return LPER100KM; + case 2: + return KGPER100KM; + default: + return null; + } + } - /** - * - * - *
-   * The unique ID of a promotion.
-   * 
- * - * repeated string promotion_ids = 70; - * - * @param index The index of the value to return. - * @return The bytes of the promotionIds at the given index. - */ - public com.google.protobuf.ByteString getPromotionIdsBytes(int index) { - return promotionIds_.getByteString(index); - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - public static final int PICKUP_METHOD_FIELD_NUMBER = 80; - private int pickupMethod_ = 0; + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Unit findValueByNumber(int number) { + return Unit.forNumber(number); + } + }; - /** - * - * - *
-   * The [pickup](https://support.google.com/merchants/answer/14634021) option
-   * for the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; - * - * @return Whether the pickupMethod field is set. - */ - @java.lang.Override - public boolean hasPickupMethod() { - return ((bitField1_ & 0x08000000) != 0); - } + 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()); + } - /** - * - * - *
-   * The [pickup](https://support.google.com/merchants/answer/14634021) option
-   * for the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; - * - * @return The enum numeric value on the wire for pickupMethod. - */ - @java.lang.Override - public int getPickupMethodValue() { - return pickupMethod_; - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * - * - *
-   * The [pickup](https://support.google.com/merchants/answer/14634021) option
-   * for the item.
-   * 
- * - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; - * - * @return The pickupMethod. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.PickupMethod getPickupMethod() { - com.google.shopping.merchant.products.v1.PickupMethod result = - com.google.shopping.merchant.products.v1.PickupMethod.forNumber(pickupMethod_); - return result == null - ? com.google.shopping.merchant.products.v1.PickupMethod.UNRECOGNIZED - : result; - } + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDescriptor() + .getEnumTypes() + .get(0); + } - public static final int PICKUP_SLA_FIELD_NUMBER = 81; - private int pickupSla_ = 0; + private static final Unit[] VALUES = values(); - /** - * - * - *
-   * Item store pickup timeline. For more information, see
-   * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
-   * 
- * - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; - * - * @return Whether the pickupSla field is set. - */ - @java.lang.Override - public boolean hasPickupSla() { - return ((bitField1_ & 0x10000000) != 0); - } + public static Unit 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()]; + } - /** - * - * - *
-   * Item store pickup timeline. For more information, see
-   * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
-   * 
- * - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; - * - * @return The enum numeric value on the wire for pickupSla. - */ - @java.lang.Override - public int getPickupSlaValue() { - return pickupSla_; - } + private final int value; - /** - * - * - *
-   * Item store pickup timeline. For more information, see
-   * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
-   * 
- * - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; - * - * @return The pickupSla. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.PickupSla getPickupSla() { - com.google.shopping.merchant.products.v1.PickupSla result = - com.google.shopping.merchant.products.v1.PickupSla.forNumber(pickupSla_); - return result == null - ? com.google.shopping.merchant.products.v1.PickupSla.UNRECOGNIZED - : result; - } + private Unit(int value) { + this.value = value; + } - public static final int LINK_TEMPLATE_FIELD_NUMBER = 82; + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit) + } - @SuppressWarnings("serial") - private volatile java.lang.Object linkTemplate_ = ""; + private int bitField0_; + public static final int VALUE_FIELD_NUMBER = 1; + private double value_ = 0D; - /** - * - * - *
-   * [Link template](https://support.google.com/merchants/answer/13871172) for
-   * business hosted local storefront.
-   * 
- * - * optional string link_template = 82; - * - * @return Whether the linkTemplate field is set. - */ - @java.lang.Override - public boolean hasLinkTemplate() { - return ((bitField1_ & 0x20000000) != 0); - } + /** + * + * + *
+     * The fuel consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } - /** - * - * - *
-   * [Link template](https://support.google.com/merchants/answer/13871172) for
-   * business hosted local storefront.
-   * 
- * - * optional string link_template = 82; - * - * @return The linkTemplate. - */ - @java.lang.Override - public java.lang.String getLinkTemplate() { - java.lang.Object ref = linkTemplate_; - 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(); - linkTemplate_ = s; - return s; + /** + * + * + *
+     * The fuel consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; } - } - /** - * - * - *
-   * [Link template](https://support.google.com/merchants/answer/13871172) for
-   * business hosted local storefront.
-   * 
- * - * optional string link_template = 82; - * - * @return The bytes for linkTemplate. - */ - @java.lang.Override - public com.google.protobuf.ByteString getLinkTemplateBytes() { - java.lang.Object ref = linkTemplate_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - linkTemplate_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public static final int UNIT_FIELD_NUMBER = 2; + private int unit_ = 0; + + /** + * + * + *
+     * The unit of the fuel consumption.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; } - } - public static final int MOBILE_LINK_TEMPLATE_FIELD_NUMBER = 83; + /** + * + * + *
+     * The unit of the fuel consumption.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit + getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit.forNumber( + unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit + .UNRECOGNIZED + : result; + } - @SuppressWarnings("serial") - private volatile java.lang.Object mobileLinkTemplate_ = ""; + private byte memoizedIsInitialized = -1; - /** - * - * - *
-   * [Link template](https://support.google.com/merchants/answer/13870216) for
-   * business hosted local storefront optimized for mobile
-   * devices.
-   * 
- * - * optional string mobile_link_template = 83; - * - * @return Whether the mobileLinkTemplate field is set. - */ - @java.lang.Override - public boolean hasMobileLinkTemplate() { - return ((bitField1_ & 0x40000000) != 0); - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; - /** - * - * - *
-   * [Link template](https://support.google.com/merchants/answer/13870216) for
-   * business hosted local storefront optimized for mobile
-   * devices.
-   * 
- * - * optional string mobile_link_template = 83; - * - * @return The mobileLinkTemplate. - */ - @java.lang.Override - public java.lang.String getMobileLinkTemplate() { - java.lang.Object ref = mobileLinkTemplate_; - 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(); - mobileLinkTemplate_ = s; - return s; + memoizedIsInitialized = 1; + return true; } - } - /** - * - * - *
-   * [Link template](https://support.google.com/merchants/answer/13870216) for
-   * business hosted local storefront optimized for mobile
-   * devices.
-   * 
- * - * optional string mobile_link_template = 83; - * - * @return The bytes for mobileLinkTemplate. - */ - @java.lang.Override - public com.google.protobuf.ByteString getMobileLinkTemplateBytes() { - java.lang.Object ref = mobileLinkTemplate_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - mobileLinkTemplate_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeDouble(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + output.writeEnum(2, unit_); + } + getUnknownFields().writeTo(output); } - } - public static final int CUSTOM_LABEL_0_FIELD_NUMBER = 71; + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - @SuppressWarnings("serial") - private volatile java.lang.Object customLabel0_ = ""; + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, unit_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - /** - * - * - *
-   * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-   * custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_0 = 71; - * - * @return Whether the customLabel0 field is set. - */ - @java.lang.Override - public boolean hasCustomLabel0() { - return ((bitField1_ & 0x80000000) != 0); - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption other = + (com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) obj; - /** - * - * - *
-   * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-   * custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_0 = 71; - * - * @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; + if (hasValue() != other.hasValue()) return false; + if (hasValue()) { + if (java.lang.Double.doubleToLongBits(getValue()) + != java.lang.Double.doubleToLongBits(other.getValue())) return false; + } + if (unit_ != other.unit_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; } - } - /** - * - * - *
-   * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-   * custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_0 = 71; - * - * @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; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasValue()) { + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getValue())); + } + hash = (37 * hash) + UNIT_FIELD_NUMBER; + hash = (53 * hash) + unit_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - } - public static final int CUSTOM_LABEL_1_FIELD_NUMBER = 72; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - @SuppressWarnings("serial") - private volatile java.lang.Object customLabel1_ = ""; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * - * - *
-   * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_1 = 72; - * - * @return Whether the customLabel1 field is set. - */ - @java.lang.Override - public boolean hasCustomLabel1() { - return ((bitField2_ & 0x00000001) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * - * - *
-   * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_1 = 72; - * - * @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; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - } - /** - * - * - *
-   * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_1 = 72; - * - * @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 com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - } - public static final int CUSTOM_LABEL_2_FIELD_NUMBER = 73; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @SuppressWarnings("serial") - private volatile java.lang.Object customLabel2_ = ""; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } - /** - * - * - *
-   * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_2 = 73; - * - * @return Whether the customLabel2 field is set. - */ - @java.lang.Override - public boolean hasCustomLabel2() { - return ((bitField2_ & 0x00000002) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_2 = 73; - * - * @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; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); } - } - /** - * - * - *
-   * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_2 = 73; - * - * @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 com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); } - } - public static final int CUSTOM_LABEL_3_FIELD_NUMBER = 74; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } - @SuppressWarnings("serial") - private volatile java.lang.Object customLabel3_ = ""; + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_3 = 74; - * - * @return Whether the customLabel3 field is set. - */ - @java.lang.Override - public boolean hasCustomLabel3() { - return ((bitField2_ & 0x00000004) != 0); - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - /** - * - * - *
-   * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_3 = 74; - * - * @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; + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); } - } - /** - * - * - *
-   * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-   * for custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_3 = 74; - * - * @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 Builder newBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - } - public static final int CUSTOM_LABEL_4_FIELD_NUMBER = 75; + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - @SuppressWarnings("serial") - private volatile java.lang.Object customLabel4_ = ""; + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - /** - * - * - *
-   * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-   * custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_4 = 75; - * - * @return Whether the customLabel4 field is set. - */ - @java.lang.Override - public boolean hasCustomLabel4() { - return ((bitField2_ & 0x00000008) != 0); - } + /** + * + * + *
+     * The fuel consumption of the vehicle.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_descriptor; + } - /** - * - * - *
-   * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-   * custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_4 = 75; - * - * @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; - } - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.class, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder + .class); + } - /** - * - * - *
-   * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-   * custom grouping of items in a Shopping campaign.
-   * 
- * - * optional string custom_label_4 = 75; - * - * @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; - } - } + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.newBuilder() + private Builder() {} - public static final int INCLUDED_DESTINATIONS_FIELD_NUMBER = 76; + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } - @SuppressWarnings("serial") - private com.google.protobuf.Internal.IntList includedDestinations_ = emptyIntList(); + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + value_ = 0D; + unit_ = 0; + return this; + } - private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< - com.google.shopping.type.Destination.DestinationEnum> - includedDestinations_converter_ = - new com.google.protobuf.Internal.IntListAdapter.IntConverter< - com.google.shopping.type.Destination.DestinationEnum>() { - public com.google.shopping.type.Destination.DestinationEnum convert(int from) { - com.google.shopping.type.Destination.DestinationEnum result = - com.google.shopping.type.Destination.DestinationEnum.forNumber(from); - return result == null - ? com.google.shopping.type.Destination.DestinationEnum.UNRECOGNIZED - : result; - } - }; + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_descriptor; + } - /** - * - * - *
-   * The list of destinations to include for this target (corresponds to
-   * checked check boxes in Merchant Center). Default destinations are always
-   * included unless provided in `excludedDestinations`.
-   *
-   * For more information, see
-   * [Included
-   * destination](https://support.google.com/merchants/answer/7501026).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * - * - * @return A list containing the includedDestinations. - */ - @java.lang.Override - public java.util.List - getIncludedDestinationsList() { - return new com.google.protobuf.Internal.IntListAdapter< - com.google.shopping.type.Destination.DestinationEnum>( - includedDestinations_, includedDestinations_converter_); - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance(); + } - /** - * - * - *
-   * The list of destinations to include for this target (corresponds to
-   * checked check boxes in Merchant Center). Default destinations are always
-   * included unless provided in `excludedDestinations`.
-   *
-   * For more information, see
-   * [Included
-   * destination](https://support.google.com/merchants/answer/7501026).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * - * - * @return The count of includedDestinations. - */ - @java.lang.Override - public int getIncludedDestinationsCount() { - return includedDestinations_.size(); - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption build() { + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - /** - * - * - *
-   * The list of destinations to include for this target (corresponds to
-   * checked check boxes in Merchant Center). Default destinations are always
-   * included unless provided in `excludedDestinations`.
-   *
-   * For more information, see
-   * [Included
-   * destination](https://support.google.com/merchants/answer/7501026).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * - * - * @param index The index of the element to return. - * @return The includedDestinations at the given index. - */ - @java.lang.Override - public com.google.shopping.type.Destination.DestinationEnum getIncludedDestinations(int index) { - return includedDestinations_converter_.convert(includedDestinations_.getInt(index)); - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption result = + new com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - /** - * - * - *
-   * The list of destinations to include for this target (corresponds to
-   * checked check boxes in Merchant Center). Default destinations are always
-   * included unless provided in `excludedDestinations`.
-   *
-   * For more information, see
-   * [Included
-   * destination](https://support.google.com/merchants/answer/7501026).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * - * - * @return A list containing the enum numeric values on the wire for includedDestinations. - */ - @java.lang.Override - public java.util.List getIncludedDestinationsValueList() { - return includedDestinations_; - } + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.value_ = value_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.unit_ = unit_; + } + result.bitField0_ |= to_bitField0_; + } - /** - * - * - *
-   * The list of destinations to include for this target (corresponds to
-   * checked check boxes in Merchant Center). Default destinations are always
-   * included unless provided in `excludedDestinations`.
-   *
-   * For more information, see
-   * [Included
-   * destination](https://support.google.com/merchants/answer/7501026).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * - * - * @param index The index of the value to return. - * @return The enum numeric value on the wire of includedDestinations at the given index. - */ - @java.lang.Override - public int getIncludedDestinationsValue(int index) { - return includedDestinations_.getInt(index); - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) other); + } else { + super.mergeFrom(other); + return this; + } + } - private int includedDestinationsMemoizedSerializedSize; + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance()) return this; + if (other.hasValue()) { + setValue(other.getValue()); + } + if (other.unit_ != 0) { + setUnitValue(other.getUnitValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - public static final int EXCLUDED_DESTINATIONS_FIELD_NUMBER = 77; + @java.lang.Override + public final boolean isInitialized() { + return true; + } - @SuppressWarnings("serial") - private com.google.protobuf.Internal.IntList excludedDestinations_ = emptyIntList(); + @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 9: + { + value_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } // case 9 + case 16: + { + unit_ = 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 static final com.google.protobuf.Internal.IntListAdapter.IntConverter< - com.google.shopping.type.Destination.DestinationEnum> - excludedDestinations_converter_ = - new com.google.protobuf.Internal.IntListAdapter.IntConverter< - com.google.shopping.type.Destination.DestinationEnum>() { - public com.google.shopping.type.Destination.DestinationEnum convert(int from) { - com.google.shopping.type.Destination.DestinationEnum result = - com.google.shopping.type.Destination.DestinationEnum.forNumber(from); - return result == null - ? com.google.shopping.type.Destination.DestinationEnum.UNRECOGNIZED - : result; + private int bitField0_; + + private double value_; + + /** + * + * + *
+       * The fuel consumption value.
+       * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * The fuel consumption value.
+       * 
+ * + * optional double value = 1; + * + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; + } + + /** + * + * + *
+       * The fuel consumption value.
+       * 
+ * + * optional double value = 1; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(double value) { + + value_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * The fuel consumption value.
+       * 
+ * + * optional double value = 1; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000001); + value_ = 0D; + onChanged(); + return this; + } + + private int unit_ = 0; + + /** + * + * + *
+       * The unit of the fuel consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; + } + + /** + * + * + *
+       * The unit of the fuel consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @param value The enum numeric value on the wire for unit to set. + * @return This builder for chaining. + */ + public Builder setUnitValue(int value) { + unit_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * The unit of the fuel consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit + getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit + .forNumber(unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * The unit of the fuel consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @param value The unit to set. + * @return This builder for chaining. + */ + public Builder setUnit( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + unit_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * The unit of the fuel consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit unit = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearUnit() { + bitField0_ = (bitField0_ & ~0x00000002); + unit_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FuelConsumption 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(); + } + }; - /** - * - * - *
-   * The list of destinations to exclude for this target (corresponds to
-   * unchecked check boxes in Merchant Center).
-   *
-   * For more information, see
-   * [Excluded
-   * destination](https://support.google.com/merchants/answer/6324486).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @return A list containing the excludedDestinations. - */ - @java.lang.Override - public java.util.List - getExcludedDestinationsList() { - return new com.google.protobuf.Internal.IntListAdapter< - com.google.shopping.type.Destination.DestinationEnum>( - excludedDestinations_, excludedDestinations_converter_); + 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.products.v1.ProductAttributes.FuelConsumption + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - /** - * - * - *
-   * The list of destinations to exclude for this target (corresponds to
-   * unchecked check boxes in Merchant Center).
-   *
-   * For more information, see
-   * [Excluded
-   * destination](https://support.google.com/merchants/answer/6324486).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @return The count of excludedDestinations. - */ - @java.lang.Override - public int getExcludedDestinationsCount() { - return excludedDestinations_.size(); + public interface EnergyConsumptionOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * The energy consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + boolean hasValue(); + + /** + * + * + *
+     * The energy consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return The value. + */ + double getValue(); + + /** + * + * + *
+     * The unit of the energy consumption.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + int getUnitValue(); + + /** + * + * + *
+     * The unit of the energy consumption.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @return The unit. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit getUnit(); } /** * * *
-   * The list of destinations to exclude for this target (corresponds to
-   * unchecked check boxes in Merchant Center).
-   *
-   * For more information, see
-   * [Excluded
-   * destination](https://support.google.com/merchants/answer/6324486).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
+   * The energy consumption of the vehicle.
    * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @param index The index of the element to return. - * @return The excludedDestinations at the given index. + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption} */ - @java.lang.Override - public com.google.shopping.type.Destination.DestinationEnum getExcludedDestinations(int index) { - return excludedDestinations_converter_.convert(excludedDestinations_.getInt(index)); - } + public static final class EnergyConsumption extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) + EnergyConsumptionOrBuilder { + private static final long serialVersionUID = 0L; - /** - * - * - *
-   * The list of destinations to exclude for this target (corresponds to
-   * unchecked check boxes in Merchant Center).
-   *
-   * For more information, see
-   * [Excluded
-   * destination](https://support.google.com/merchants/answer/6324486).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @return A list containing the enum numeric values on the wire for excludedDestinations. - */ - @java.lang.Override - public java.util.List getExcludedDestinationsValueList() { - return excludedDestinations_; - } + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "EnergyConsumption"); + } - /** - * - * - *
-   * The list of destinations to exclude for this target (corresponds to
-   * unchecked check boxes in Merchant Center).
-   *
-   * For more information, see
-   * [Excluded
-   * destination](https://support.google.com/merchants/answer/6324486).
-   *
-   * Note: We recommend setting destinations on datasources level for most use
-   * cases. Use this field within products to only setup exceptions.
-   * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @param index The index of the value to return. - * @return The enum numeric value on the wire of excludedDestinations at the given index. - */ - @java.lang.Override - public int getExcludedDestinationsValue(int index) { - return excludedDestinations_.getInt(index); - } + // Use EnergyConsumption.newBuilder() to construct. + private EnergyConsumption(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } - private int excludedDestinationsMemoizedSerializedSize; + private EnergyConsumption() { + unit_ = 0; + } - public static final int SHOPPING_ADS_EXCLUDED_COUNTRIES_FIELD_NUMBER = 78; + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_descriptor; + } - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList shoppingAdsExcludedCountries_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.class, + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Builder + .class); + } - /** - * - * - *
-   * List of country codes [(ISO 3166-1
-   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-   * offer from Shopping Ads destination. Countries from this list are removed
-   * from countries configured in data source settings.
-   * 
- * - * repeated string shopping_ads_excluded_countries = 78; - * - * @return A list containing the shoppingAdsExcludedCountries. - */ - public com.google.protobuf.ProtocolStringList getShoppingAdsExcludedCountriesList() { - return shoppingAdsExcludedCountries_; - } + /** + * + * + *
+     * The unit of the energy consumption.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit} + */ + public enum Unit implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + UNIT_UNSPECIFIED(0), + /** + * + * + *
+       * Kilowatt hours per 100 kilometers.
+       * 
+ * + * KWHPER100KM = 1; + */ + KWHPER100KM(1), + UNRECOGNIZED(-1), + ; - /** - * - * - *
-   * List of country codes [(ISO 3166-1
-   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-   * offer from Shopping Ads destination. Countries from this list are removed
-   * from countries configured in data source settings.
-   * 
- * - * repeated string shopping_ads_excluded_countries = 78; - * - * @return The count of shoppingAdsExcludedCountries. - */ - public int getShoppingAdsExcludedCountriesCount() { - return shoppingAdsExcludedCountries_.size(); - } + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Unit"); + } - /** - * - * - *
-   * List of country codes [(ISO 3166-1
-   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-   * offer from Shopping Ads destination. Countries from this list are removed
-   * from countries configured in data source settings.
-   * 
- * - * repeated string shopping_ads_excluded_countries = 78; - * - * @param index The index of the element to return. - * @return The shoppingAdsExcludedCountries at the given index. - */ - public java.lang.String getShoppingAdsExcludedCountries(int index) { - return shoppingAdsExcludedCountries_.get(index); - } + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + public static final int UNIT_UNSPECIFIED_VALUE = 0; - /** - * - * - *
-   * List of country codes [(ISO 3166-1
-   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-   * offer from Shopping Ads destination. Countries from this list are removed
-   * from countries configured in data source settings.
-   * 
- * - * repeated string shopping_ads_excluded_countries = 78; - * - * @param index The index of the value to return. - * @return The bytes of the shoppingAdsExcludedCountries at the given index. - */ - public com.google.protobuf.ByteString getShoppingAdsExcludedCountriesBytes(int index) { - return shoppingAdsExcludedCountries_.getByteString(index); - } + /** + * + * + *
+       * Kilowatt hours per 100 kilometers.
+       * 
+ * + * KWHPER100KM = 1; + */ + public static final int KWHPER100KM_VALUE = 1; - public static final int EXTERNAL_SELLER_ID_FIELD_NUMBER = 1; + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } - @SuppressWarnings("serial") - private volatile java.lang.Object externalSellerId_ = ""; + /** + * @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 Unit valueOf(int value) { + return forNumber(value); + } - /** - * - * - *
-   * Required for multi-seller accounts. Use this attribute if you're a
-   * marketplace uploading products for various sellers to your multi-seller
-   * account.
-   * 
- * - * optional string external_seller_id = 1; - * - * @return Whether the externalSellerId field is set. - */ - @java.lang.Override - public boolean hasExternalSellerId() { - return ((bitField2_ & 0x00000010) != 0); - } + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Unit forNumber(int value) { + switch (value) { + case 0: + return UNIT_UNSPECIFIED; + case 1: + return KWHPER100KM; + default: + return null; + } + } - /** - * - * - *
-   * Required for multi-seller accounts. Use this attribute if you're a
-   * marketplace uploading products for various sellers to your multi-seller
-   * account.
-   * 
- * - * optional string external_seller_id = 1; - * - * @return The externalSellerId. - */ - @java.lang.Override - public java.lang.String getExternalSellerId() { - java.lang.Object ref = externalSellerId_; - 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(); - externalSellerId_ = s; - return s; - } - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - /** - * - * - *
-   * Required for multi-seller accounts. Use this attribute if you're a
-   * marketplace uploading products for various sellers to your multi-seller
-   * account.
-   * 
- * - * optional string external_seller_id = 1; - * - * @return The bytes for externalSellerId. - */ - @java.lang.Override - public com.google.protobuf.ByteString getExternalSellerIdBytes() { - java.lang.Object ref = externalSellerId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - externalSellerId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Unit findValueByNumber(int number) { + return Unit.forNumber(number); + } + }; - public static final int PAUSE_FIELD_NUMBER = 13; - private int pause_ = 0; + 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()); + } - /** - * - * - *
-   * Publication of this item will be temporarily
-   * [paused](https://support.google.com/merchants/answer/11909930).
-   * 
- * - * optional .google.shopping.merchant.products.v1.Pause pause = 13; - * - * @return Whether the pause field is set. - */ - @java.lang.Override - public boolean hasPause() { - return ((bitField2_ & 0x00000020) != 0); - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * - * - *
-   * Publication of this item will be temporarily
-   * [paused](https://support.google.com/merchants/answer/11909930).
-   * 
- * - * optional .google.shopping.merchant.products.v1.Pause pause = 13; - * - * @return The enum numeric value on the wire for pause. - */ - @java.lang.Override - public int getPauseValue() { - return pause_; - } + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDescriptor() + .getEnumTypes() + .get(0); + } - /** - * - * - *
-   * Publication of this item will be temporarily
-   * [paused](https://support.google.com/merchants/answer/11909930).
-   * 
- * - * optional .google.shopping.merchant.products.v1.Pause pause = 13; - * - * @return The pause. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Pause getPause() { - com.google.shopping.merchant.products.v1.Pause result = - com.google.shopping.merchant.products.v1.Pause.forNumber(pause_); - return result == null ? com.google.shopping.merchant.products.v1.Pause.UNRECOGNIZED : result; - } + private static final Unit[] VALUES = values(); - public static final int LIFESTYLE_IMAGE_LINKS_FIELD_NUMBER = 14; + public static Unit 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()]; + } - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList lifestyleImageLinks_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + private final int value; - /** - * - * - *
-   * Additional URLs of lifestyle images of the item, used to explicitly
-   * identify images that showcase your item in a real-world context. See the
-   * [Help Center article](https://support.google.com/merchants/answer/9103186)
-   * for more information.
-   * 
- * - * repeated string lifestyle_image_links = 14; - * - * @return A list containing the lifestyleImageLinks. - */ - public com.google.protobuf.ProtocolStringList getLifestyleImageLinksList() { - return lifestyleImageLinks_; - } + private Unit(int value) { + this.value = value; + } - /** - * - * - *
-   * Additional URLs of lifestyle images of the item, used to explicitly
-   * identify images that showcase your item in a real-world context. See the
-   * [Help Center article](https://support.google.com/merchants/answer/9103186)
-   * for more information.
-   * 
- * - * repeated string lifestyle_image_links = 14; - * - * @return The count of lifestyleImageLinks. - */ - public int getLifestyleImageLinksCount() { - return lifestyleImageLinks_.size(); - } + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit) + } - /** - * - * - *
-   * Additional URLs of lifestyle images of the item, used to explicitly
-   * identify images that showcase your item in a real-world context. See the
-   * [Help Center article](https://support.google.com/merchants/answer/9103186)
-   * for more information.
-   * 
- * - * repeated string lifestyle_image_links = 14; - * - * @param index The index of the element to return. - * @return The lifestyleImageLinks at the given index. - */ - public java.lang.String getLifestyleImageLinks(int index) { - return lifestyleImageLinks_.get(index); - } + private int bitField0_; + public static final int VALUE_FIELD_NUMBER = 1; + private double value_ = 0D; - /** - * - * - *
-   * Additional URLs of lifestyle images of the item, used to explicitly
-   * identify images that showcase your item in a real-world context. See the
-   * [Help Center article](https://support.google.com/merchants/answer/9103186)
-   * for more information.
-   * 
- * - * repeated string lifestyle_image_links = 14; - * - * @param index The index of the value to return. - * @return The bytes of the lifestyleImageLinks at the given index. - */ - public com.google.protobuf.ByteString getLifestyleImageLinksBytes(int index) { - return lifestyleImageLinks_.getByteString(index); - } + /** + * + * + *
+     * The energy consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } - public static final int CLOUD_EXPORT_ADDITIONAL_PROPERTIES_FIELD_NUMBER = 84; + /** + * + * + *
+     * The energy consumption value.
+     * 
+ * + * optional double value = 1; + * + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; + } - @SuppressWarnings("serial") - private java.util.List - cloudExportAdditionalProperties_; + public static final int UNIT_FIELD_NUMBER = 2; + private int unit_ = 0; - /** - * - * - *
-   * Extra fields to export to the Cloud Retail program.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; - * - */ - @java.lang.Override - public java.util.List - getCloudExportAdditionalPropertiesList() { - return cloudExportAdditionalProperties_; - } + /** + * + * + *
+     * The unit of the energy consumption.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; + } - /** - * - * - *
-   * Extra fields to export to the Cloud Retail program.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; - * - */ - @java.lang.Override - public java.util.List< - ? extends - com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> - getCloudExportAdditionalPropertiesOrBuilderList() { - return cloudExportAdditionalProperties_; - } + /** + * + * + *
+     * The unit of the energy consumption.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + .forNumber(unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + .UNRECOGNIZED + : result; + } - /** - * - * - *
-   * Extra fields to export to the Cloud Retail program.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; - * - */ - @java.lang.Override - public int getCloudExportAdditionalPropertiesCount() { - return cloudExportAdditionalProperties_.size(); - } + private byte memoizedIsInitialized = -1; - /** - * - * - *
-   * Extra fields to export to the Cloud Retail program.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties - getCloudExportAdditionalProperties(int index) { - return cloudExportAdditionalProperties_.get(index); - } - - /** - * - * - *
-   * Extra fields to export to the Cloud Retail program.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder - getCloudExportAdditionalPropertiesOrBuilder(int index) { - return cloudExportAdditionalProperties_.get(index); - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; - public static final int VIRTUAL_MODEL_LINK_FIELD_NUMBER = 130; + memoizedIsInitialized = 1; + return true; + } - @SuppressWarnings("serial") - private volatile java.lang.Object virtualModelLink_ = ""; + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeDouble(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + output.writeEnum(2, unit_); + } + getUnknownFields().writeTo(output); + } - /** - * - * - *
-   * URL of the 3D image of the item. See the
-   * [Help Center article](https://support.google.com/merchants/answer/13674896)
-   * for more information.
-   * 
- * - * optional string virtual_model_link = 130; - * - * @return Whether the virtualModelLink field is set. - */ - @java.lang.Override - public boolean hasVirtualModelLink() { - return ((bitField2_ & 0x00000040) != 0); - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - /** - * - * - *
-   * URL of the 3D image of the item. See the
-   * [Help Center article](https://support.google.com/merchants/answer/13674896)
-   * for more information.
-   * 
- * - * optional string virtual_model_link = 130; - * - * @return The virtualModelLink. - */ - @java.lang.Override - public java.lang.String getVirtualModelLink() { - java.lang.Object ref = virtualModelLink_; - 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(); - virtualModelLink_ = s; - return s; + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, unit_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - } - /** - * - * - *
-   * URL of the 3D image of the item. See the
-   * [Help Center article](https://support.google.com/merchants/answer/13674896)
-   * for more information.
-   * 
- * - * optional string virtual_model_link = 130; - * - * @return The bytes for virtualModelLink. - */ - @java.lang.Override - public com.google.protobuf.ByteString getVirtualModelLinkBytes() { - java.lang.Object ref = virtualModelLink_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - virtualModelLink_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption other = + (com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) obj; - public static final int CERTIFICATIONS_FIELD_NUMBER = 123; + if (hasValue() != other.hasValue()) return false; + if (hasValue()) { + if (java.lang.Double.doubleToLongBits(getValue()) + != java.lang.Double.doubleToLongBits(other.getValue())) return false; + } + if (unit_ != other.unit_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } - @SuppressWarnings("serial") - private java.util.List - certifications_; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasValue()) { + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getValue())); + } + hash = (37 * hash) + UNIT_FIELD_NUMBER; + hash = (53 * hash) + unit_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - /** - * - * - *
-   * Product Certifications, for example for energy efficiency labeling of
-   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-   * database. See the [Help
-   * Center](https://support.google.com/merchants/answer/13528839)
-   * article for more information.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - @java.lang.Override - public java.util.List - getCertificationsList() { - return certifications_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * - * - *
-   * Product Certifications, for example for energy efficiency labeling of
-   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-   * database. See the [Help
-   * Center](https://support.google.com/merchants/answer/13528839)
-   * article for more information.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - @java.lang.Override - public java.util.List< - ? extends com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> - getCertificationsOrBuilderList() { - return certifications_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * - * - *
-   * Product Certifications, for example for energy efficiency labeling of
-   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-   * database. See the [Help
-   * Center](https://support.google.com/merchants/answer/13528839)
-   * article for more information.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - @java.lang.Override - public int getCertificationsCount() { - return certifications_.size(); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * - * - *
-   * Product Certifications, for example for energy efficiency labeling of
-   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-   * database. See the [Help
-   * Center](https://support.google.com/merchants/answer/13528839)
-   * article for more information.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductCertification getCertifications( - int index) { - return certifications_.get(index); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * - * - *
-   * Product Certifications, for example for energy efficiency labeling of
-   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-   * database. See the [Help
-   * Center](https://support.google.com/merchants/answer/13528839)
-   * article for more information.
-   * 
- * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder - getCertificationsOrBuilder(int index) { - return certifications_.get(index); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - public static final int STRUCTURED_TITLE_FIELD_NUMBER = 132; - private com.google.shopping.merchant.products.v1.StructuredTitle structuredTitle_; + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * - * - *
-   * Structured title, for algorithmically (AI)-generated titles.
-   * 
- * - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; - * - * - * @return Whether the structuredTitle field is set. - */ - @java.lang.Override - public boolean hasStructuredTitle() { - return ((bitField2_ & 0x00000080) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } - /** - * - * - *
-   * Structured title, for algorithmically (AI)-generated titles.
-   * 
- * - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; - * - * - * @return The structuredTitle. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.StructuredTitle getStructuredTitle() { - return structuredTitle_ == null - ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() - : structuredTitle_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Structured title, for algorithmically (AI)-generated titles.
-   * 
- * - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder - getStructuredTitleOrBuilder() { - return structuredTitle_ == null - ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() - : structuredTitle_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } - public static final int STRUCTURED_DESCRIPTION_FIELD_NUMBER = 133; - private com.google.shopping.merchant.products.v1.StructuredDescription structuredDescription_; + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Structured description, for algorithmically (AI)-generated descriptions.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * - * - * @return Whether the structuredDescription field is set. - */ - @java.lang.Override - public boolean hasStructuredDescription() { - return ((bitField2_ & 0x00000100) != 0); - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } - /** - * - * - *
-   * Structured description, for algorithmically (AI)-generated descriptions.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * - * - * @return The structuredDescription. - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.StructuredDescription getStructuredDescription() { - return structuredDescription_ == null - ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() - : structuredDescription_; - } + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } - /** - * - * - *
-   * Structured description, for algorithmically (AI)-generated descriptions.
-   * 
- * - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder - getStructuredDescriptionOrBuilder() { - return structuredDescription_ == null - ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() - : structuredDescription_; - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - public static final int AUTO_PRICING_MIN_PRICE_FIELD_NUMBER = 124; - private com.google.shopping.type.Price autoPricingMinPrice_; + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - /** - * - * - *
-   * A safeguard in the [automated discounts]
-   * (https://support.google.com/merchants/answer/10295759) and
-   * "Dynamic Promotions"
-   * (https://support.google.com/merchants/answer/13949249) projects,
-   * ensuring that discounts on business offers do not fall below this value,
-   * thereby preserving the offer's value and profitability.
-   * 
- * - * .google.shopping.type.Price auto_pricing_min_price = 124; - * - * @return Whether the autoPricingMinPrice field is set. - */ - @java.lang.Override - public boolean hasAutoPricingMinPrice() { - return ((bitField2_ & 0x00000200) != 0); - } + public static Builder newBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - /** - * - * - *
-   * A safeguard in the [automated discounts]
-   * (https://support.google.com/merchants/answer/10295759) and
-   * "Dynamic Promotions"
-   * (https://support.google.com/merchants/answer/13949249) projects,
-   * ensuring that discounts on business offers do not fall below this value,
-   * thereby preserving the offer's value and profitability.
-   * 
- * - * .google.shopping.type.Price auto_pricing_min_price = 124; - * - * @return The autoPricingMinPrice. - */ - @java.lang.Override - public com.google.shopping.type.Price getAutoPricingMinPrice() { - return autoPricingMinPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : autoPricingMinPrice_; - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - /** - * - * - *
-   * A safeguard in the [automated discounts]
-   * (https://support.google.com/merchants/answer/10295759) and
-   * "Dynamic Promotions"
-   * (https://support.google.com/merchants/answer/13949249) projects,
-   * ensuring that discounts on business offers do not fall below this value,
-   * thereby preserving the offer's value and profitability.
-   * 
- * - * .google.shopping.type.Price auto_pricing_min_price = 124; - */ - @java.lang.Override - public com.google.shopping.type.PriceOrBuilder getAutoPricingMinPriceOrBuilder() { - return autoPricingMinPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : autoPricingMinPrice_; - } + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - public static final int SUSTAINABILITY_INCENTIVES_FIELD_NUMBER = 138; + /** + * + * + *
+     * The energy consumption of the vehicle.
+     * 
+ * + * Protobuf type {@code + * google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumptionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_descriptor; + } - @SuppressWarnings("serial") - private java.util.List - sustainabilityIncentives_; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.class, + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Builder + .class); + } - /** - * - * - *
-   * The list of sustainability incentive programs.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; - * - */ - @java.lang.Override - public java.util.List - getSustainabilityIncentivesList() { - return sustainabilityIncentives_; - } + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.newBuilder() + private Builder() {} - /** - * - * - *
-   * The list of sustainability incentive programs.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; - * - */ - @java.lang.Override - public java.util.List< - ? extends - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> - getSustainabilityIncentivesOrBuilderList() { - return sustainabilityIncentives_; - } + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } - /** - * - * - *
-   * The list of sustainability incentive programs.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; - * - */ - @java.lang.Override - public int getSustainabilityIncentivesCount() { - return sustainabilityIncentives_.size(); - } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + value_ = 0D; + unit_ = 0; + return this; + } - /** - * - * - *
-   * The list of sustainability incentive programs.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive - getSustainabilityIncentives(int index) { - return sustainabilityIncentives_.get(index); - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_descriptor; + } - /** - * - * - *
-   * The list of sustainability incentive programs.
-   * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; - * - */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder - getSustainabilityIncentivesOrBuilder(int index) { - return sustainabilityIncentives_.get(index); - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDefaultInstance(); + } - public static final int VIDEO_LINKS_FIELD_NUMBER = 169; + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption build() { + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList videoLinks_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption result = + new com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - /** - * - * - *
-   * Optional. A list of video URLs for the item. Use this attribute to provide
-   * more visuals for your product beyond your image attributes. See the [Help
-   * Center article](https://support.google.com/merchants/answer/15216925) for
-   * more information.
-   * 
- * - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; - * - * @return A list containing the videoLinks. - */ - public com.google.protobuf.ProtocolStringList getVideoLinksList() { - return videoLinks_; - } + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.value_ = value_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.unit_ = unit_; + } + result.bitField0_ |= to_bitField0_; + } - /** - * - * - *
-   * Optional. A list of video URLs for the item. Use this attribute to provide
-   * more visuals for your product beyond your image attributes. See the [Help
-   * Center article](https://support.google.com/merchants/answer/15216925) for
-   * more information.
-   * 
- * - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; - * - * @return The count of videoLinks. - */ - public int getVideoLinksCount() { - return videoLinks_.size(); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDefaultInstance()) return this; + if (other.hasValue()) { + setValue(other.getValue()); + } + if (other.unit_ != 0) { + setUnitValue(other.getUnitValue()); + } + 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 9: + { + value_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } // case 9 + case 16: + { + unit_ = 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 double value_; + + /** + * + * + *
+       * The energy consumption value.
+       * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * The energy consumption value.
+       * 
+ * + * optional double value = 1; + * + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; + } + + /** + * + * + *
+       * The energy consumption value.
+       * 
+ * + * optional double value = 1; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(double value) { + + value_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * The energy consumption value.
+       * 
+ * + * optional double value = 1; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000001); + value_ = 0D; + onChanged(); + return this; + } + + private int unit_ = 0; + + /** + * + * + *
+       * The unit of the energy consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; + } + + /** + * + * + *
+       * The unit of the energy consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @param value The enum numeric value on the wire for unit to set. + * @return This builder for chaining. + */ + public Builder setUnitValue(int value) { + unit_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * The unit of the energy consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + .forNumber(unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * The unit of the energy consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @param value The unit to set. + * @return This builder for chaining. + */ + public Builder setUnit( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + unit_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * The unit of the energy consumption.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit unit = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearUnit() { + bitField0_ = (bitField0_ & ~0x00000002); + unit_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption) + private static final com.google.shopping.merchant.products.v1.ProductAttributes + .EnergyConsumption + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EnergyConsumption 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.products.v1.ProductAttributes.EnergyConsumption + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - /** - * - * - *
-   * Optional. A list of video URLs for the item. Use this attribute to provide
-   * more visuals for your product beyond your image attributes. See the [Help
-   * Center article](https://support.google.com/merchants/answer/15216925) for
-   * more information.
-   * 
- * - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; - * - * @param index The index of the element to return. - * @return The videoLinks at the given index. - */ - public java.lang.String getVideoLinks(int index) { - return videoLinks_.get(index); + public interface Co2EmissionsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * The co2 emission value.
+     * 
+ * + * optional int64 value = 1; + * + * @return Whether the value field is set. + */ + boolean hasValue(); + + /** + * + * + *
+     * The co2 emission value.
+     * 
+ * + * optional int64 value = 1; + * + * @return The value. + */ + long getValue(); + + /** + * + * + *
+     * The unit of the co2 emission.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + int getUnitValue(); + + /** + * + * + *
+     * The unit of the co2 emission.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @return The unit. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit getUnit(); } /** * * *
-   * Optional. A list of video URLs for the item. Use this attribute to provide
-   * more visuals for your product beyond your image attributes. See the [Help
-   * Center article](https://support.google.com/merchants/answer/15216925) for
-   * more information.
+   * The co2 emission of the vehicle.
    * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; - * - * @param index The index of the value to return. - * @return The bytes of the videoLinks at the given index. + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions} */ - public com.google.protobuf.ByteString getVideoLinksBytes(int index) { - return videoLinks_.getByteString(index); - } - - private byte memoizedIsInitialized = -1; + public static final class Co2Emissions extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) + Co2EmissionsOrBuilder { + private static final long serialVersionUID = 0L; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Co2Emissions"); + } - memoizedIsInitialized = 1; - return true; - } + // Use Co2Emissions.newBuilder() to construct. + private Co2Emissions(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - getSerializedSize(); - if (((bitField2_ & 0x00000010) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 1, externalSellerId_); + private Co2Emissions() { + unit_ = 0; } - if (((bitField0_ & 0x00000001) != 0)) { - output.writeBool(4, identifierExists_); - } - if (((bitField0_ & 0x00000002) != 0)) { - output.writeBool(5, isBundle_); - } - if (((bitField0_ & 0x00000004) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 6, title_); - } - if (((bitField0_ & 0x00000008) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 7, description_); - } - if (((bitField0_ & 0x00000010) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 8, link_); - } - if (((bitField0_ & 0x00000020) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 9, mobileLink_); - } - if (((bitField0_ & 0x00000040) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 10, canonicalLink_); - } - if (((bitField0_ & 0x00000080) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 11, imageLink_); - } - for (int i = 0; i < additionalImageLinks_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 12, additionalImageLinks_.getRaw(i)); - } - if (((bitField2_ & 0x00000020) != 0)) { - output.writeEnum(13, pause_); - } - for (int i = 0; i < lifestyleImageLinks_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 14, lifestyleImageLinks_.getRaw(i)); - } - if (((bitField0_ & 0x00000100) != 0)) { - output.writeMessage(16, getExpirationDate()); - } - if (((bitField0_ & 0x00000400) != 0)) { - output.writeBool(17, adult_); - } - if (((bitField0_ & 0x00000800) != 0)) { - output.writeEnum(18, ageGroup_); - } - if (((bitField0_ & 0x00001000) != 0)) { - output.writeEnum(19, availability_); - } - if (((bitField0_ & 0x00002000) != 0)) { - output.writeMessage(20, getAvailabilityDate()); - } - if (((bitField0_ & 0x00004000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 21, brand_); - } - if (((bitField0_ & 0x00008000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 22, color_); - } - if (((bitField0_ & 0x00010000) != 0)) { - output.writeEnum(23, condition_); - } - if (((bitField0_ & 0x00020000) != 0)) { - output.writeEnum(24, gender_); - } - if (((bitField0_ & 0x00040000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 25, googleProductCategory_); - } - if (((bitField0_ & 0x00080000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 27, itemGroupId_); - } - if (((bitField0_ & 0x00100000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 28, material_); - } - if (((bitField0_ & 0x00200000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 29, mpn_); - } - if (((bitField0_ & 0x00400000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 30, pattern_); - } - if (((bitField0_ & 0x00800000) != 0)) { - output.writeMessage(31, getPrice()); - } - if (((bitField0_ & 0x02000000) != 0)) { - output.writeMessage(32, getInstallment()); - } - if (((bitField0_ & 0x04000000) != 0)) { - output.writeMessage(33, getSubscriptionCost()); - } - if (((bitField0_ & 0x08000000) != 0)) { - output.writeMessage(34, getLoyaltyPoints()); - } - for (int i = 0; i < productTypes_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 35, productTypes_.getRaw(i)); - } - if (((bitField0_ & 0x10000000) != 0)) { - output.writeMessage(36, getSalePrice()); - } - if (((bitField0_ & 0x20000000) != 0)) { - output.writeMessage(37, getSalePriceEffectiveDate()); - } - if (((bitField0_ & 0x40000000) != 0)) { - output.writeInt64(38, sellOnGoogleQuantity_); - } - for (int i = 0; i < shipping_.size(); i++) { - output.writeMessage(39, shipping_.get(i)); - } - if (((bitField1_ & 0x00000008) != 0)) { - output.writeMessage(40, getShippingWeight()); - } - if (((bitField1_ & 0x00000010) != 0)) { - output.writeMessage(41, getShippingLength()); - } - if (((bitField1_ & 0x00000020) != 0)) { - output.writeMessage(42, getShippingWidth()); - } - if (((bitField1_ & 0x00000040) != 0)) { - output.writeMessage(43, getShippingHeight()); - } - if (((bitField1_ & 0x00000080) != 0)) { - output.writeInt64(44, maxHandlingTime_); - } - if (((bitField1_ & 0x00000100) != 0)) { - output.writeInt64(45, minHandlingTime_); - } - if (((bitField1_ & 0x00000200) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 46, shippingLabel_); - } - if (((bitField1_ & 0x00000800) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 47, transitTimeLabel_); - } - if (((bitField1_ & 0x00001000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 48, size_); - } - if (((bitField1_ & 0x00002000) != 0)) { - output.writeEnum(49, sizeSystem_); - } - if (getSizeTypesList().size() > 0) { - output.writeUInt32NoTag(402); - output.writeUInt32NoTag(sizeTypesMemoizedSerializedSize); - } - for (int i = 0; i < sizeTypes_.size(); i++) { - output.writeEnumNoTag(sizeTypes_.getInt(i)); - } - if (((bitField1_ & 0x00004000) != 0)) { - output.writeEnum(53, energyEfficiencyClass_); - } - if (((bitField1_ & 0x00008000) != 0)) { - output.writeEnum(54, minEnergyEfficiencyClass_); - } - if (((bitField1_ & 0x00010000) != 0)) { - output.writeEnum(55, maxEnergyEfficiencyClass_); - } - if (((bitField1_ & 0x00020000) != 0)) { - output.writeMessage(56, getUnitPricingMeasure()); - } - if (((bitField1_ & 0x00040000) != 0)) { - output.writeMessage(57, getUnitPricingBaseMeasure()); - } - if (((bitField1_ & 0x00080000) != 0)) { - output.writeInt64(58, multipack_); - } - if (((bitField1_ & 0x00100000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 59, adsGrouping_); - } - for (int i = 0; i < adsLabels_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 60, adsLabels_.getRaw(i)); - } - if (((bitField1_ & 0x00200000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 61, adsRedirect_); - } - if (((bitField1_ & 0x00400000) != 0)) { - output.writeMessage(62, getCostOfGoodsSold()); - } - for (int i = 0; i < productDetails_.size(); i++) { - output.writeMessage(63, productDetails_.get(i)); - } - for (int i = 0; i < productHighlights_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 64, productHighlights_.getRaw(i)); - } - if (((bitField1_ & 0x00800000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 65, displayAdsId_); - } - for (int i = 0; i < displayAdsSimilarIds_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 66, displayAdsSimilarIds_.getRaw(i)); - } - if (((bitField1_ & 0x01000000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 67, displayAdsTitle_); - } - if (((bitField1_ & 0x02000000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 68, displayAdsLink_); - } - if (((bitField1_ & 0x04000000) != 0)) { - output.writeDouble(69, displayAdsValue_); - } - for (int i = 0; i < promotionIds_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 70, promotionIds_.getRaw(i)); - } - if (((bitField1_ & 0x80000000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 71, customLabel0_); - } - if (((bitField2_ & 0x00000001) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 72, customLabel1_); - } - if (((bitField2_ & 0x00000002) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 73, customLabel2_); - } - if (((bitField2_ & 0x00000004) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 74, customLabel3_); - } - if (((bitField2_ & 0x00000008) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 75, customLabel4_); - } - if (getIncludedDestinationsList().size() > 0) { - output.writeUInt32NoTag(610); - output.writeUInt32NoTag(includedDestinationsMemoizedSerializedSize); + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_descriptor; } - for (int i = 0; i < includedDestinations_.size(); i++) { - output.writeEnumNoTag(includedDestinations_.getInt(i)); + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.class, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Builder + .class); } - if (getExcludedDestinationsList().size() > 0) { - output.writeUInt32NoTag(618); - output.writeUInt32NoTag(excludedDestinationsMemoizedSerializedSize); + + /** + * + * + *
+     * The unit of the co2 emission.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit} + */ + public enum Unit implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + UNIT_UNSPECIFIED(0), + /** + * + * + *
+       * Grams per kilometer.
+       * 
+ * + * GPERKM = 1; + */ + GPERKM(1), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Unit"); + } + + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + public static final int UNIT_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Grams per kilometer.
+       * 
+ * + * GPERKM = 1; + */ + public static final int GPERKM_VALUE = 1; + + 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 Unit 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 Unit forNumber(int value) { + switch (value) { + case 0: + return UNIT_UNSPECIFIED; + case 1: + return GPERKM; + 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 Unit findValueByNumber(int number) { + return Unit.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final Unit[] VALUES = values(); + + public static Unit 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 Unit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit) } - for (int i = 0; i < excludedDestinations_.size(); i++) { - output.writeEnumNoTag(excludedDestinations_.getInt(i)); + + private int bitField0_; + public static final int VALUE_FIELD_NUMBER = 1; + private long value_ = 0L; + + /** + * + * + *
+     * The co2 emission value.
+     * 
+ * + * optional int64 value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); } - for (int i = 0; i < shoppingAdsExcludedCountries_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString( - output, 78, shoppingAdsExcludedCountries_.getRaw(i)); + + /** + * + * + *
+     * The co2 emission value.
+     * 
+ * + * optional int64 value = 1; + * + * @return The value. + */ + @java.lang.Override + public long getValue() { + return value_; } - if (((bitField0_ & 0x00000200) != 0)) { - output.writeMessage(79, getDisclosureDate()); + + public static final int UNIT_FIELD_NUMBER = 2; + private int unit_ = 0; + + /** + * + * + *
+     * The unit of the co2 emission.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; } - if (((bitField1_ & 0x08000000) != 0)) { - output.writeEnum(80, pickupMethod_); + + /** + * + * + *
+     * The unit of the co2 emission.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit.forNumber( + unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit + .UNRECOGNIZED + : result; } - if (((bitField1_ & 0x10000000) != 0)) { - output.writeEnum(81, pickupSla_); + + 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; } - if (((bitField1_ & 0x20000000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 82, linkTemplate_); + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeInt64(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + output.writeEnum(2, unit_); + } + getUnknownFields().writeTo(output); } - if (((bitField1_ & 0x40000000) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 83, mobileLinkTemplate_); + + @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.computeInt64Size(1, value_); + } + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, unit_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - for (int i = 0; i < cloudExportAdditionalProperties_.size(); i++) { - output.writeMessage(84, cloudExportAdditionalProperties_.get(i)); + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions other = + (com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) obj; + + if (hasValue() != other.hasValue()) return false; + if (hasValue()) { + if (getValue() != other.getValue()) return false; + } + if (unit_ != other.unit_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; } - if (((bitField0_ & 0x80000000) != 0)) { - output.writeMessage(119, getProductHeight()); + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasValue()) { + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getValue()); + } + hash = (37 * hash) + UNIT_FIELD_NUMBER; + hash = (53 * hash) + unit_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - if (((bitField1_ & 0x00000001) != 0)) { - output.writeMessage(120, getProductLength()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (((bitField1_ & 0x00000002) != 0)) { - output.writeMessage(121, getProductWidth()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (((bitField1_ & 0x00000004) != 0)) { - output.writeMessage(122, getProductWeight()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - for (int i = 0; i < certifications_.size(); i++) { - output.writeMessage(123, certifications_.get(i)); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (((bitField2_ & 0x00000200) != 0)) { - output.writeMessage(124, getAutoPricingMinPrice()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (((bitField2_ & 0x00000040) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 130, virtualModelLink_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (((bitField2_ & 0x00000080) != 0)) { - output.writeMessage(132, getStructuredTitle()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - if (((bitField2_ & 0x00000100) != 0)) { - output.writeMessage(133, getStructuredDescription()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); } - for (int i = 0; i < freeShippingThreshold_.size(); i++) { - output.writeMessage(135, freeShippingThreshold_.get(i)); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); } - for (int i = 0; i < loyaltyPrograms_.size(); i++) { - output.writeMessage(136, loyaltyPrograms_.get(i)); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); } - for (int i = 0; i < sustainabilityIncentives_.size(); i++) { - output.writeMessage(138, sustainabilityIncentives_.get(i)); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - if (((bitField0_ & 0x01000000) != 0)) { - output.writeMessage(139, getMaximumRetailPrice()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); } - for (int i = 0; i < gtins_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 140, gtins_.getRaw(i)); + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); } - for (int i = 0; i < handlingCutoffTimes_.size(); i++) { - output.writeMessage(141, handlingCutoffTimes_.get(i)); + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); } - for (int i = 0; i < carrierShipping_.size(); i++) { - output.writeMessage(142, carrierShipping_.get(i)); + + public static Builder newBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - for (int i = 0; i < shippingHandlingBusinessDays_.size(); i++) { - output.writeMessage(143, shippingHandlingBusinessDays_.get(i)); + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - for (int i = 0; i < shippingTransitBusinessDays_.size(); i++) { - output.writeMessage(144, shippingTransitBusinessDays_.get(i)); + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; } - for (int i = 0; i < videoLinks_.size(); i++) { - com.google.protobuf.GeneratedMessage.writeString(output, 169, videoLinks_.getRaw(i)); - } - if (((bitField1_ & 0x00000400) != 0)) { - com.google.protobuf.GeneratedMessage.writeString(output, 170, returnPolicyLabel_); - } - getUnknownFields().writeTo(output); - } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + /** + * + * + *
+     * The co2 emission of the vehicle.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) + com.google.shopping.merchant.products.v1.ProductAttributes.Co2EmissionsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_descriptor; + } - size = 0; - if (((bitField2_ & 0x00000010) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(1, externalSellerId_); - } - if (((bitField0_ & 0x00000001) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, identifierExists_); - } - if (((bitField0_ & 0x00000002) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, isBundle_); - } - if (((bitField0_ & 0x00000004) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(6, title_); - } - if (((bitField0_ & 0x00000008) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(7, description_); - } - if (((bitField0_ & 0x00000010) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(8, link_); - } - if (((bitField0_ & 0x00000020) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(9, mobileLink_); - } - if (((bitField0_ & 0x00000040) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(10, canonicalLink_); - } - if (((bitField0_ & 0x00000080) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(11, imageLink_); - } - { - int dataSize = 0; - for (int i = 0; i < additionalImageLinks_.size(); i++) { - dataSize += computeStringSizeNoTag(additionalImageLinks_.getRaw(i)); + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.class, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Builder + .class); } - size += dataSize; - size += 1 * getAdditionalImageLinksList().size(); - } - if (((bitField2_ & 0x00000020) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(13, pause_); - } - { - int dataSize = 0; - for (int i = 0; i < lifestyleImageLinks_.size(); i++) { - dataSize += computeStringSizeNoTag(lifestyleImageLinks_.getRaw(i)); + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); } - size += dataSize; - size += 1 * getLifestyleImageLinksList().size(); + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + value_ = 0L; + unit_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions build() { + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions result = + new com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.value_ = value_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.unit_ = unit_; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDefaultInstance()) return this; + if (other.hasValue()) { + setValue(other.getValue()); + } + if (other.unit_ != 0) { + setUnitValue(other.getUnitValue()); + } + 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: + { + value_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + unit_ = 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 long value_; + + /** + * + * + *
+       * The co2 emission value.
+       * 
+ * + * optional int64 value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+       * The co2 emission value.
+       * 
+ * + * optional int64 value = 1; + * + * @return The value. + */ + @java.lang.Override + public long getValue() { + return value_; + } + + /** + * + * + *
+       * The co2 emission value.
+       * 
+ * + * optional int64 value = 1; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(long value) { + + value_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * The co2 emission value.
+       * 
+ * + * optional int64 value = 1; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000001); + value_ = 0L; + onChanged(); + return this; + } + + private int unit_ = 0; + + /** + * + * + *
+       * The unit of the co2 emission.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; + } + + /** + * + * + *
+       * The unit of the co2 emission.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @param value The enum numeric value on the wire for unit to set. + * @return This builder for chaining. + */ + public Builder setUnitValue(int value) { + unit_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * The unit of the co2 emission.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit + getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit.forNumber( + unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * The unit of the co2 emission.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @param value The unit to set. + * @return This builder for chaining. + */ + public Builder setUnit( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + unit_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * The unit of the co2 emission.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Unit unit = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearUnit() { + bitField0_ = (bitField0_ & ~0x00000002); + unit_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) } - if (((bitField0_ & 0x00000100) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getExpirationDate()); + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions(); } - if (((bitField0_ & 0x00000400) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(17, adult_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + getDefaultInstance() { + return DEFAULT_INSTANCE; } - if (((bitField0_ & 0x00000800) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(18, ageGroup_); + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Co2Emissions 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; } - if (((bitField0_ & 0x00001000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(19, availability_); + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; } - if (((bitField0_ & 0x00002000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(20, getAvailabilityDate()); + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; } - if (((bitField0_ & 0x00004000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(21, brand_); + } + + public interface WarrantyOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.Warranty) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * The warranty duration in months.
+     * 
+ * + * int64 duration = 1; + * + * @return The duration. + */ + long getDuration(); + + /** + * + * + *
+     * The warranty mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + * + * @return Whether the mileage field is set. + */ + boolean hasMileage(); + + /** + * + * + *
+     * The warranty mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + * + * @return The mileage. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getMileage(); + + /** + * + * + *
+     * The warranty mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getMileageOrBuilder(); + } + + /** + * + * + *
+   * The warranty of the vehicle.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.Warranty} + */ + public static final class Warranty extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.Warranty) + WarrantyOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Warranty"); } - if (((bitField0_ & 0x00008000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(22, color_); + + // Use Warranty.newBuilder() to construct. + private Warranty(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); } - if (((bitField0_ & 0x00010000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(23, condition_); + + private Warranty() {} + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_descriptor; } - if (((bitField0_ & 0x00020000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(24, gender_); + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.class, + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.Builder.class); } - if (((bitField0_ & 0x00040000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(25, googleProductCategory_); + + private int bitField0_; + public static final int DURATION_FIELD_NUMBER = 1; + private long duration_ = 0L; + + /** + * + * + *
+     * The warranty duration in months.
+     * 
+ * + * int64 duration = 1; + * + * @return The duration. + */ + @java.lang.Override + public long getDuration() { + return duration_; } - if (((bitField0_ & 0x00080000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(27, itemGroupId_); + + public static final int MILEAGE_FIELD_NUMBER = 2; + private com.google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage_; + + /** + * + * + *
+     * The warranty mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + * + * @return Whether the mileage field is set. + */ + @java.lang.Override + public boolean hasMileage() { + return ((bitField0_ & 0x00000001) != 0); } - if (((bitField0_ & 0x00100000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(28, material_); + + /** + * + * + *
+     * The warranty mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + * + * @return The mileage. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getMileage() { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.getDefaultInstance() + : mileage_; } - if (((bitField0_ & 0x00200000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(29, mpn_); + + /** + * + * + *
+     * The warranty mileage.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getMileageOrBuilder() { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.getDefaultInstance() + : mileage_; } - if (((bitField0_ & 0x00400000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(30, pattern_); + + 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; } - if (((bitField0_ & 0x00800000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(31, getPrice()); - } - if (((bitField0_ & 0x02000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(32, getInstallment()); - } - if (((bitField0_ & 0x04000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(33, getSubscriptionCost()); - } - if (((bitField0_ & 0x08000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(34, getLoyaltyPoints()); - } - { - int dataSize = 0; - for (int i = 0; i < productTypes_.size(); i++) { - dataSize += computeStringSizeNoTag(productTypes_.getRaw(i)); + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (duration_ != 0L) { + output.writeInt64(1, duration_); } - size += dataSize; - size += 2 * getProductTypesList().size(); - } - if (((bitField0_ & 0x10000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(36, getSalePrice()); - } - if (((bitField0_ & 0x20000000) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(37, getSalePriceEffectiveDate()); + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(2, getMileage()); + } + getUnknownFields().writeTo(output); } - if (((bitField0_ & 0x40000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(38, sellOnGoogleQuantity_); + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (duration_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(1, duration_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getMileage()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - for (int i = 0; i < shipping_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(39, shipping_.get(i)); + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.shopping.merchant.products.v1.ProductAttributes.Warranty)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty other = + (com.google.shopping.merchant.products.v1.ProductAttributes.Warranty) obj; + + if (getDuration() != other.getDuration()) return false; + if (hasMileage() != other.hasMileage()) return false; + if (hasMileage()) { + if (!getMileage().equals(other.getMileage())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; } - if (((bitField1_ & 0x00000008) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(40, getShippingWeight()); + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getDuration()); + if (hasMileage()) { + hash = (37 * hash) + MILEAGE_FIELD_NUMBER; + hash = (53 * hash) + getMileage().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - if (((bitField1_ & 0x00000010) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(41, getShippingLength()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (((bitField1_ & 0x00000020) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(42, getShippingWidth()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (((bitField1_ & 0x00000040) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(43, getShippingHeight()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (((bitField1_ & 0x00000080) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(44, maxHandlingTime_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (((bitField1_ & 0x00000100) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(45, minHandlingTime_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (((bitField1_ & 0x00000200) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(46, shippingLabel_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (((bitField1_ & 0x00000800) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(47, transitTimeLabel_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - if (((bitField1_ & 0x00001000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(48, size_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); } - if (((bitField1_ & 0x00002000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(49, sizeSystem_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); } - { - int dataSize = 0; - for (int i = 0; i < sizeTypes_.size(); i++) { - dataSize += - com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(sizeTypes_.getInt(i)); - } - size += dataSize; - if (!getSizeTypesList().isEmpty()) { - size += 2; - size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); - } - sizeTypesMemoizedSerializedSize = dataSize; + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); } - if (((bitField1_ & 0x00004000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(53, energyEfficiencyClass_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - if (((bitField1_ & 0x00008000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(54, minEnergyEfficiencyClass_); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); } - if (((bitField1_ & 0x00010000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(55, maxEnergyEfficiencyClass_); + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); } - if (((bitField1_ & 0x00020000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(56, getUnitPricingMeasure()); + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); } - if (((bitField1_ & 0x00040000) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(57, getUnitPricingBaseMeasure()); + + public static Builder newBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - if (((bitField1_ & 0x00080000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeInt64Size(58, multipack_); + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - if (((bitField1_ & 0x00100000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(59, adsGrouping_); + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; } - { - int dataSize = 0; - for (int i = 0; i < adsLabels_.size(); i++) { - dataSize += computeStringSizeNoTag(adsLabels_.getRaw(i)); + + /** + * + * + *
+     * The warranty of the vehicle.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.Warranty} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.Warranty) + com.google.shopping.merchant.products.v1.ProductAttributes.WarrantyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_descriptor; } - size += dataSize; - size += 2 * getAdsLabelsList().size(); - } - if (((bitField1_ & 0x00200000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(61, adsRedirect_); - } - if (((bitField1_ & 0x00400000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(62, getCostOfGoodsSold()); - } - for (int i = 0; i < productDetails_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(63, productDetails_.get(i)); - } - { - int dataSize = 0; - for (int i = 0; i < productHighlights_.size(); i++) { - dataSize += computeStringSizeNoTag(productHighlights_.getRaw(i)); + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.class, + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.Builder.class); } - size += dataSize; - size += 2 * getProductHighlightsList().size(); - } - if (((bitField1_ & 0x00800000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(65, displayAdsId_); - } - { - int dataSize = 0; - for (int i = 0; i < displayAdsSimilarIds_.size(); i++) { - dataSize += computeStringSizeNoTag(displayAdsSimilarIds_.getRaw(i)); + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); } - size += dataSize; - size += 2 * getDisplayAdsSimilarIdsList().size(); - } - if (((bitField1_ & 0x01000000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(67, displayAdsTitle_); - } - if (((bitField1_ & 0x02000000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(68, displayAdsLink_); - } - if (((bitField1_ & 0x04000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeDoubleSize(69, displayAdsValue_); - } - { - int dataSize = 0; - for (int i = 0; i < promotionIds_.size(); i++) { - dataSize += computeStringSizeNoTag(promotionIds_.getRaw(i)); + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); } - size += dataSize; - size += 2 * getPromotionIdsList().size(); - } - if (((bitField1_ & 0x80000000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(71, customLabel0_); - } - if (((bitField2_ & 0x00000001) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(72, customLabel1_); - } - if (((bitField2_ & 0x00000002) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(73, customLabel2_); - } - if (((bitField2_ & 0x00000004) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(74, customLabel3_); - } - if (((bitField2_ & 0x00000008) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(75, customLabel4_); - } - { - int dataSize = 0; - for (int i = 0; i < includedDestinations_.size(); i++) { - dataSize += - com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag( - includedDestinations_.getInt(i)); + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetMileageFieldBuilder(); + } } - size += dataSize; - if (!getIncludedDestinationsList().isEmpty()) { - size += 2; - size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + duration_ = 0L; + mileage_ = null; + if (mileageBuilder_ != null) { + mileageBuilder_.dispose(); + mileageBuilder_ = null; + } + return this; } - includedDestinationsMemoizedSerializedSize = dataSize; - } - { - int dataSize = 0; - for (int i = 0; i < excludedDestinations_.size(); i++) { - dataSize += - com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag( - excludedDestinations_.getInt(i)); + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_descriptor; } - size += dataSize; - if (!getExcludedDestinationsList().isEmpty()) { - size += 2; - size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + .getDefaultInstance(); } - excludedDestinationsMemoizedSerializedSize = dataSize; - } - { - int dataSize = 0; - for (int i = 0; i < shoppingAdsExcludedCountries_.size(); i++) { - dataSize += computeStringSizeNoTag(shoppingAdsExcludedCountries_.getRaw(i)); + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Warranty build() { + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; } - size += dataSize; - size += 2 * getShoppingAdsExcludedCountriesList().size(); - } - if (((bitField0_ & 0x00000200) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(79, getDisclosureDate()); - } - if (((bitField1_ & 0x08000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(80, pickupMethod_); - } - if (((bitField1_ & 0x10000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(81, pickupSla_); - } - if (((bitField1_ & 0x20000000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(82, linkTemplate_); - } - if (((bitField1_ & 0x40000000) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(83, mobileLinkTemplate_); - } - for (int i = 0; i < cloudExportAdditionalProperties_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 84, cloudExportAdditionalProperties_.get(i)); - } - if (((bitField0_ & 0x80000000) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(119, getProductHeight()); - } - if (((bitField1_ & 0x00000001) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(120, getProductLength()); - } - if (((bitField1_ & 0x00000002) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(121, getProductWidth()); - } - if (((bitField1_ & 0x00000004) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(122, getProductWeight()); - } - for (int i = 0; i < certifications_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(123, certifications_.get(i)); - } - if (((bitField2_ & 0x00000200) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(124, getAutoPricingMinPrice()); - } - if (((bitField2_ & 0x00000040) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(130, virtualModelLink_); - } - if (((bitField2_ & 0x00000080) != 0)) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(132, getStructuredTitle()); - } - if (((bitField2_ & 0x00000100) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(133, getStructuredDescription()); - } - for (int i = 0; i < freeShippingThreshold_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 135, freeShippingThreshold_.get(i)); - } - for (int i = 0; i < loyaltyPrograms_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(136, loyaltyPrograms_.get(i)); - } - for (int i = 0; i < sustainabilityIncentives_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 138, sustainabilityIncentives_.get(i)); - } - if (((bitField0_ & 0x01000000) != 0)) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(139, getMaximumRetailPrice()); - } - { - int dataSize = 0; - for (int i = 0; i < gtins_.size(); i++) { - dataSize += computeStringSizeNoTag(gtins_.getRaw(i)); + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Warranty buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty result = + new com.google.shopping.merchant.products.v1.ProductAttributes.Warranty(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; } - size += dataSize; - size += 2 * getGtinsList().size(); - } - for (int i = 0; i < handlingCutoffTimes_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 141, handlingCutoffTimes_.get(i)); - } - for (int i = 0; i < carrierShipping_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize(142, carrierShipping_.get(i)); - } - for (int i = 0; i < shippingHandlingBusinessDays_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 143, shippingHandlingBusinessDays_.get(i)); - } - for (int i = 0; i < shippingTransitBusinessDays_.size(); i++) { - size += - com.google.protobuf.CodedOutputStream.computeMessageSize( - 144, shippingTransitBusinessDays_.get(i)); - } - { - int dataSize = 0; - for (int i = 0; i < videoLinks_.size(); i++) { - dataSize += computeStringSizeNoTag(videoLinks_.getRaw(i)); + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.duration_ = duration_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.mileage_ = mileageBuilder_ == null ? mileage_ : mileageBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; } - size += dataSize; - size += 2 * getVideoLinksList().size(); - } - if (((bitField1_ & 0x00000400) != 0)) { - size += com.google.protobuf.GeneratedMessage.computeStringSize(170, returnPolicyLabel_); - } - 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.products.v1.ProductAttributes)) { - return super.equals(obj); - } - com.google.shopping.merchant.products.v1.ProductAttributes other = - (com.google.shopping.merchant.products.v1.ProductAttributes) obj; + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.shopping.merchant.products.v1.ProductAttributes.Warranty) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.Warranty) other); + } else { + super.mergeFrom(other); + return this; + } + } - if (hasIdentifierExists() != other.hasIdentifierExists()) return false; - if (hasIdentifierExists()) { - if (getIdentifierExists() != other.getIdentifierExists()) return false; - } - if (hasIsBundle() != other.hasIsBundle()) return false; - if (hasIsBundle()) { - if (getIsBundle() != other.getIsBundle()) return false; - } - if (hasTitle() != other.hasTitle()) return false; - if (hasTitle()) { - if (!getTitle().equals(other.getTitle())) return false; - } - if (hasDescription() != other.hasDescription()) return false; - if (hasDescription()) { - if (!getDescription().equals(other.getDescription())) return false; - } - if (hasLink() != other.hasLink()) return false; - if (hasLink()) { - if (!getLink().equals(other.getLink())) return false; - } - if (hasMobileLink() != other.hasMobileLink()) return false; - if (hasMobileLink()) { - if (!getMobileLink().equals(other.getMobileLink())) return false; - } - if (hasCanonicalLink() != other.hasCanonicalLink()) return false; - if (hasCanonicalLink()) { - if (!getCanonicalLink().equals(other.getCanonicalLink())) return false; - } - if (hasImageLink() != other.hasImageLink()) return false; - if (hasImageLink()) { - if (!getImageLink().equals(other.getImageLink())) return false; - } - if (!getAdditionalImageLinksList().equals(other.getAdditionalImageLinksList())) return false; - if (hasExpirationDate() != other.hasExpirationDate()) return false; - if (hasExpirationDate()) { - if (!getExpirationDate().equals(other.getExpirationDate())) return false; - } - if (hasDisclosureDate() != other.hasDisclosureDate()) return false; - if (hasDisclosureDate()) { - if (!getDisclosureDate().equals(other.getDisclosureDate())) return false; - } - if (hasAdult() != other.hasAdult()) return false; - if (hasAdult()) { - if (getAdult() != other.getAdult()) return false; - } - if (hasAgeGroup() != other.hasAgeGroup()) return false; - if (hasAgeGroup()) { - if (ageGroup_ != other.ageGroup_) return false; - } - if (hasAvailability() != other.hasAvailability()) return false; - if (hasAvailability()) { - if (availability_ != other.availability_) return false; - } - if (hasAvailabilityDate() != other.hasAvailabilityDate()) return false; - if (hasAvailabilityDate()) { - if (!getAvailabilityDate().equals(other.getAvailabilityDate())) return false; + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + .getDefaultInstance()) return this; + if (other.getDuration() != 0L) { + setDuration(other.getDuration()); + } + if (other.hasMileage()) { + mergeMileage(other.getMileage()); + } + 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: + { + duration_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + input.readMessage( + internalGetMileageFieldBuilder().getBuilder(), extensionRegistry); + 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 long duration_; + + /** + * + * + *
+       * The warranty duration in months.
+       * 
+ * + * int64 duration = 1; + * + * @return The duration. + */ + @java.lang.Override + public long getDuration() { + return duration_; + } + + /** + * + * + *
+       * The warranty duration in months.
+       * 
+ * + * int64 duration = 1; + * + * @param value The duration to set. + * @return This builder for chaining. + */ + public Builder setDuration(long value) { + + duration_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * The warranty duration in months.
+       * 
+ * + * int64 duration = 1; + * + * @return This builder for chaining. + */ + public Builder clearDuration() { + bitField0_ = (bitField0_ & ~0x00000001); + duration_ = 0L; + onChanged(); + return this; + } + + private com.google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder> + mileageBuilder_; + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + * + * @return Whether the mileage field is set. + */ + public boolean hasMileage() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + * + * @return The mileage. + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getMileage() { + if (mileageBuilder_ == null) { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance() + : mileage_; + } else { + return mileageBuilder_.getMessage(); + } + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + public Builder setMileage( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage value) { + if (mileageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mileage_ = value; + } else { + mileageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + public Builder setMileage( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder + builderForValue) { + if (mileageBuilder_ == null) { + mileage_ = builderForValue.build(); + } else { + mileageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + public Builder mergeMileage( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage value) { + if (mileageBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && mileage_ != null + && mileage_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance()) { + getMileageBuilder().mergeFrom(value); + } else { + mileage_ = value; + } + } else { + mileageBuilder_.mergeFrom(value); + } + if (mileage_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + public Builder clearMileage() { + bitField0_ = (bitField0_ & ~0x00000002); + mileage_ = null; + if (mileageBuilder_ != null) { + mileageBuilder_.dispose(); + mileageBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder + getMileageBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return internalGetMileageFieldBuilder().getBuilder(); + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getMileageOrBuilder() { + if (mileageBuilder_ != null) { + return mileageBuilder_.getMessageOrBuilder(); + } else { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance() + : mileage_; + } + } + + /** + * + * + *
+       * The warranty mileage.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 2; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder> + internalGetMileageFieldBuilder() { + if (mileageBuilder_ == null) { + mileageBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder>( + getMileage(), getParentForChildren(), isClean()); + mileage_ = null; + } + return mileageBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.Warranty) } - if (hasBrand() != other.hasBrand()) return false; - if (hasBrand()) { - if (!getBrand().equals(other.getBrand())) return false; + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.Warranty) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.products.v1.ProductAttributes.Warranty(); } - if (hasColor() != other.hasColor()) return false; - if (hasColor()) { - if (!getColor().equals(other.getColor())) return false; + + public static com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + getDefaultInstance() { + return DEFAULT_INSTANCE; } - if (hasCondition() != other.hasCondition()) return false; - if (hasCondition()) { - if (condition_ != other.condition_) return false; + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Warranty 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; } - if (hasGender() != other.hasGender()) return false; - if (hasGender()) { - if (gender_ != other.gender_) return false; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; } - if (hasGoogleProductCategory() != other.hasGoogleProductCategory()) return false; - if (hasGoogleProductCategory()) { - if (!getGoogleProductCategory().equals(other.getGoogleProductCategory())) return false; + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; } - if (!getGtinsList().equals(other.getGtinsList())) return false; - if (hasItemGroupId() != other.hasItemGroupId()) return false; - if (hasItemGroupId()) { - if (!getItemGroupId().equals(other.getItemGroupId())) return false; + } + + public interface ProductFeeOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.ProductFee) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * The type of product fee.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + + /** + * + * + *
+     * The type of product fee.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @return The type. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType getType(); + + /** + * + * + *
+     * The amount of product fee.
+     * 
+ * + * .google.shopping.type.Price amount = 2; + * + * @return Whether the amount field is set. + */ + boolean hasAmount(); + + /** + * + * + *
+     * The amount of product fee.
+     * 
+ * + * .google.shopping.type.Price amount = 2; + * + * @return The amount. + */ + com.google.shopping.type.Price getAmount(); + + /** + * + * + *
+     * The amount of product fee.
+     * 
+ * + * .google.shopping.type.Price amount = 2; + */ + com.google.shopping.type.PriceOrBuilder getAmountOrBuilder(); + } + + /** + * + * + *
+   * The product fee attribute containing type and amount.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.ProductFee} + */ + public static final class ProductFee extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.ProductFee) + ProductFeeOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "ProductFee"); } - if (hasMaterial() != other.hasMaterial()) return false; - if (hasMaterial()) { - if (!getMaterial().equals(other.getMaterial())) return false; + + // Use ProductFee.newBuilder() to construct. + private ProductFee(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); } - if (hasMpn() != other.hasMpn()) return false; - if (hasMpn()) { - if (!getMpn().equals(other.getMpn())) return false; + + private ProductFee() { + type_ = 0; } - if (hasPattern() != other.hasPattern()) return false; - if (hasPattern()) { - if (!getPattern().equals(other.getPattern())) return false; + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_descriptor; } - if (hasPrice() != other.hasPrice()) return false; - if (hasPrice()) { - if (!getPrice().equals(other.getPrice())) return false; + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.class, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder.class); } - if (hasMaximumRetailPrice() != other.hasMaximumRetailPrice()) return false; - if (hasMaximumRetailPrice()) { - if (!getMaximumRetailPrice().equals(other.getMaximumRetailPrice())) return false; + + /** + * + * + *
+     * The type of product fee.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType} + */ + public enum FeeType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified fee type.
+       * 
+ * + * FEE_TYPE_UNSPECIFIED = 0; + */ + FEE_TYPE_UNSPECIFIED(0), + /** + * + * + *
+       * Admin fee.
+       * 
+ * + * ADMIN_FEE = 1; + */ + ADMIN_FEE(1), + /** + * + * + *
+       * Application fee.
+       * 
+ * + * APPLICATION_FEE = 2; + */ + APPLICATION_FEE(2), + /** + * + * + *
+       * Security deposit.
+       * 
+ * + * SECURITY_DEPOSIT = 3; + */ + SECURITY_DEPOSIT(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "FeeType"); + } + + /** + * + * + *
+       * Unspecified fee type.
+       * 
+ * + * FEE_TYPE_UNSPECIFIED = 0; + */ + public static final int FEE_TYPE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Admin fee.
+       * 
+ * + * ADMIN_FEE = 1; + */ + public static final int ADMIN_FEE_VALUE = 1; + + /** + * + * + *
+       * Application fee.
+       * 
+ * + * APPLICATION_FEE = 2; + */ + public static final int APPLICATION_FEE_VALUE = 2; + + /** + * + * + *
+       * Security deposit.
+       * 
+ * + * SECURITY_DEPOSIT = 3; + */ + public static final int SECURITY_DEPOSIT_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 FeeType 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 FeeType forNumber(int value) { + switch (value) { + case 0: + return FEE_TYPE_UNSPECIFIED; + case 1: + return ADMIN_FEE; + case 2: + return APPLICATION_FEE; + case 3: + return SECURITY_DEPOSIT; + 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 FeeType findValueByNumber(int number) { + return FeeType.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final FeeType[] VALUES = values(); + + public static FeeType 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 FeeType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType) } - if (hasInstallment() != other.hasInstallment()) return false; - if (hasInstallment()) { - if (!getInstallment().equals(other.getInstallment())) return false; + + private int bitField0_; + public static final int TYPE_FIELD_NUMBER = 1; + private int type_ = 0; + + /** + * + * + *
+     * The type of product fee.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override + public int getTypeValue() { + return type_; } - if (hasSubscriptionCost() != other.hasSubscriptionCost()) return false; - if (hasSubscriptionCost()) { - if (!getSubscriptionCost().equals(other.getSubscriptionCost())) return false; + + /** + * + * + *
+     * The type of product fee.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @return The type. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType getType() { + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType result = + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType.forNumber( + type_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType + .UNRECOGNIZED + : result; } - if (hasLoyaltyPoints() != other.hasLoyaltyPoints()) return false; - if (hasLoyaltyPoints()) { - if (!getLoyaltyPoints().equals(other.getLoyaltyPoints())) return false; - } - if (!getLoyaltyProgramsList().equals(other.getLoyaltyProgramsList())) return false; - if (!getProductTypesList().equals(other.getProductTypesList())) return false; - if (hasSalePrice() != other.hasSalePrice()) return false; - if (hasSalePrice()) { - if (!getSalePrice().equals(other.getSalePrice())) return false; - } - if (hasSalePriceEffectiveDate() != other.hasSalePriceEffectiveDate()) return false; - if (hasSalePriceEffectiveDate()) { - if (!getSalePriceEffectiveDate().equals(other.getSalePriceEffectiveDate())) return false; - } - if (hasSellOnGoogleQuantity() != other.hasSellOnGoogleQuantity()) return false; - if (hasSellOnGoogleQuantity()) { - if (getSellOnGoogleQuantity() != other.getSellOnGoogleQuantity()) return false; - } - if (hasProductHeight() != other.hasProductHeight()) return false; - if (hasProductHeight()) { - if (!getProductHeight().equals(other.getProductHeight())) return false; - } - if (hasProductLength() != other.hasProductLength()) return false; - if (hasProductLength()) { - if (!getProductLength().equals(other.getProductLength())) return false; - } - if (hasProductWidth() != other.hasProductWidth()) return false; - if (hasProductWidth()) { - if (!getProductWidth().equals(other.getProductWidth())) return false; - } - if (hasProductWeight() != other.hasProductWeight()) return false; - if (hasProductWeight()) { - if (!getProductWeight().equals(other.getProductWeight())) return false; - } - if (!getShippingList().equals(other.getShippingList())) return false; - if (!getCarrierShippingList().equals(other.getCarrierShippingList())) return false; - if (!getFreeShippingThresholdList().equals(other.getFreeShippingThresholdList())) return false; - if (hasShippingWeight() != other.hasShippingWeight()) return false; - if (hasShippingWeight()) { - if (!getShippingWeight().equals(other.getShippingWeight())) return false; - } - if (hasShippingLength() != other.hasShippingLength()) return false; - if (hasShippingLength()) { - if (!getShippingLength().equals(other.getShippingLength())) return false; - } - if (hasShippingWidth() != other.hasShippingWidth()) return false; - if (hasShippingWidth()) { - if (!getShippingWidth().equals(other.getShippingWidth())) return false; - } - if (hasShippingHeight() != other.hasShippingHeight()) return false; - if (hasShippingHeight()) { - if (!getShippingHeight().equals(other.getShippingHeight())) return false; - } - if (hasMaxHandlingTime() != other.hasMaxHandlingTime()) return false; - if (hasMaxHandlingTime()) { - if (getMaxHandlingTime() != other.getMaxHandlingTime()) return false; - } - if (hasMinHandlingTime() != other.hasMinHandlingTime()) return false; - if (hasMinHandlingTime()) { - if (getMinHandlingTime() != other.getMinHandlingTime()) return false; - } - if (!getShippingHandlingBusinessDaysList().equals(other.getShippingHandlingBusinessDaysList())) - return false; - if (!getShippingTransitBusinessDaysList().equals(other.getShippingTransitBusinessDaysList())) - return false; - if (!getHandlingCutoffTimesList().equals(other.getHandlingCutoffTimesList())) return false; - if (hasShippingLabel() != other.hasShippingLabel()) return false; - if (hasShippingLabel()) { - if (!getShippingLabel().equals(other.getShippingLabel())) return false; - } - if (hasReturnPolicyLabel() != other.hasReturnPolicyLabel()) return false; - if (hasReturnPolicyLabel()) { - if (!getReturnPolicyLabel().equals(other.getReturnPolicyLabel())) return false; - } - if (hasTransitTimeLabel() != other.hasTransitTimeLabel()) return false; - if (hasTransitTimeLabel()) { - if (!getTransitTimeLabel().equals(other.getTransitTimeLabel())) return false; - } - if (hasSize() != other.hasSize()) return false; - if (hasSize()) { - if (!getSize().equals(other.getSize())) return false; - } - if (hasSizeSystem() != other.hasSizeSystem()) return false; - if (hasSizeSystem()) { - if (sizeSystem_ != other.sizeSystem_) return false; - } - if (!sizeTypes_.equals(other.sizeTypes_)) return false; - if (hasEnergyEfficiencyClass() != other.hasEnergyEfficiencyClass()) return false; - if (hasEnergyEfficiencyClass()) { - if (energyEfficiencyClass_ != other.energyEfficiencyClass_) return false; - } - if (hasMinEnergyEfficiencyClass() != other.hasMinEnergyEfficiencyClass()) return false; - if (hasMinEnergyEfficiencyClass()) { - if (minEnergyEfficiencyClass_ != other.minEnergyEfficiencyClass_) return false; - } - if (hasMaxEnergyEfficiencyClass() != other.hasMaxEnergyEfficiencyClass()) return false; - if (hasMaxEnergyEfficiencyClass()) { - if (maxEnergyEfficiencyClass_ != other.maxEnergyEfficiencyClass_) return false; - } - if (hasUnitPricingMeasure() != other.hasUnitPricingMeasure()) return false; - if (hasUnitPricingMeasure()) { - if (!getUnitPricingMeasure().equals(other.getUnitPricingMeasure())) return false; - } - if (hasUnitPricingBaseMeasure() != other.hasUnitPricingBaseMeasure()) return false; - if (hasUnitPricingBaseMeasure()) { - if (!getUnitPricingBaseMeasure().equals(other.getUnitPricingBaseMeasure())) return false; - } - if (hasMultipack() != other.hasMultipack()) return false; - if (hasMultipack()) { - if (getMultipack() != other.getMultipack()) return false; - } - if (hasAdsGrouping() != other.hasAdsGrouping()) return false; - if (hasAdsGrouping()) { - if (!getAdsGrouping().equals(other.getAdsGrouping())) return false; - } - if (!getAdsLabelsList().equals(other.getAdsLabelsList())) return false; - if (hasAdsRedirect() != other.hasAdsRedirect()) return false; - if (hasAdsRedirect()) { - if (!getAdsRedirect().equals(other.getAdsRedirect())) return false; - } - if (hasCostOfGoodsSold() != other.hasCostOfGoodsSold()) return false; - if (hasCostOfGoodsSold()) { - if (!getCostOfGoodsSold().equals(other.getCostOfGoodsSold())) return false; - } - if (!getProductDetailsList().equals(other.getProductDetailsList())) return false; - if (!getProductHighlightsList().equals(other.getProductHighlightsList())) return false; - if (hasDisplayAdsId() != other.hasDisplayAdsId()) return false; - if (hasDisplayAdsId()) { - if (!getDisplayAdsId().equals(other.getDisplayAdsId())) return false; - } - if (!getDisplayAdsSimilarIdsList().equals(other.getDisplayAdsSimilarIdsList())) return false; - if (hasDisplayAdsTitle() != other.hasDisplayAdsTitle()) return false; - if (hasDisplayAdsTitle()) { - if (!getDisplayAdsTitle().equals(other.getDisplayAdsTitle())) return false; - } - if (hasDisplayAdsLink() != other.hasDisplayAdsLink()) return false; - if (hasDisplayAdsLink()) { - if (!getDisplayAdsLink().equals(other.getDisplayAdsLink())) return false; - } - if (hasDisplayAdsValue() != other.hasDisplayAdsValue()) return false; - if (hasDisplayAdsValue()) { - if (java.lang.Double.doubleToLongBits(getDisplayAdsValue()) - != java.lang.Double.doubleToLongBits(other.getDisplayAdsValue())) return false; - } - if (!getPromotionIdsList().equals(other.getPromotionIdsList())) return false; - if (hasPickupMethod() != other.hasPickupMethod()) return false; - if (hasPickupMethod()) { - if (pickupMethod_ != other.pickupMethod_) return false; - } - if (hasPickupSla() != other.hasPickupSla()) return false; - if (hasPickupSla()) { - if (pickupSla_ != other.pickupSla_) return false; - } - if (hasLinkTemplate() != other.hasLinkTemplate()) return false; - if (hasLinkTemplate()) { - if (!getLinkTemplate().equals(other.getLinkTemplate())) return false; - } - if (hasMobileLinkTemplate() != other.hasMobileLinkTemplate()) return false; - if (hasMobileLinkTemplate()) { - if (!getMobileLinkTemplate().equals(other.getMobileLinkTemplate())) 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 (!includedDestinations_.equals(other.includedDestinations_)) return false; - if (!excludedDestinations_.equals(other.excludedDestinations_)) return false; - if (!getShoppingAdsExcludedCountriesList().equals(other.getShoppingAdsExcludedCountriesList())) - return false; - if (hasExternalSellerId() != other.hasExternalSellerId()) return false; - if (hasExternalSellerId()) { - if (!getExternalSellerId().equals(other.getExternalSellerId())) return false; - } - if (hasPause() != other.hasPause()) return false; - if (hasPause()) { - if (pause_ != other.pause_) return false; - } - if (!getLifestyleImageLinksList().equals(other.getLifestyleImageLinksList())) return false; - if (!getCloudExportAdditionalPropertiesList() - .equals(other.getCloudExportAdditionalPropertiesList())) return false; - if (hasVirtualModelLink() != other.hasVirtualModelLink()) return false; - if (hasVirtualModelLink()) { - if (!getVirtualModelLink().equals(other.getVirtualModelLink())) return false; - } - if (!getCertificationsList().equals(other.getCertificationsList())) return false; - if (hasStructuredTitle() != other.hasStructuredTitle()) return false; - if (hasStructuredTitle()) { - if (!getStructuredTitle().equals(other.getStructuredTitle())) return false; - } - if (hasStructuredDescription() != other.hasStructuredDescription()) return false; - if (hasStructuredDescription()) { - if (!getStructuredDescription().equals(other.getStructuredDescription())) return false; - } - if (hasAutoPricingMinPrice() != other.hasAutoPricingMinPrice()) return false; - if (hasAutoPricingMinPrice()) { - if (!getAutoPricingMinPrice().equals(other.getAutoPricingMinPrice())) return false; - } - if (!getSustainabilityIncentivesList().equals(other.getSustainabilityIncentivesList())) - return false; - if (!getVideoLinksList().equals(other.getVideoLinksList())) 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 (hasIdentifierExists()) { - hash = (37 * hash) + IDENTIFIER_EXISTS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIdentifierExists()); - } - if (hasIsBundle()) { - hash = (37 * hash) + IS_BUNDLE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsBundle()); - } - if (hasTitle()) { - hash = (37 * hash) + TITLE_FIELD_NUMBER; - hash = (53 * hash) + getTitle().hashCode(); - } - if (hasDescription()) { - hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER; - hash = (53 * hash) + getDescription().hashCode(); - } - if (hasLink()) { - hash = (37 * hash) + LINK_FIELD_NUMBER; - hash = (53 * hash) + getLink().hashCode(); - } - if (hasMobileLink()) { - hash = (37 * hash) + MOBILE_LINK_FIELD_NUMBER; - hash = (53 * hash) + getMobileLink().hashCode(); - } - if (hasCanonicalLink()) { - hash = (37 * hash) + CANONICAL_LINK_FIELD_NUMBER; - hash = (53 * hash) + getCanonicalLink().hashCode(); - } - if (hasImageLink()) { - hash = (37 * hash) + IMAGE_LINK_FIELD_NUMBER; - hash = (53 * hash) + getImageLink().hashCode(); - } - if (getAdditionalImageLinksCount() > 0) { - hash = (37 * hash) + ADDITIONAL_IMAGE_LINKS_FIELD_NUMBER; - hash = (53 * hash) + getAdditionalImageLinksList().hashCode(); - } - if (hasExpirationDate()) { - hash = (37 * hash) + EXPIRATION_DATE_FIELD_NUMBER; - hash = (53 * hash) + getExpirationDate().hashCode(); - } - if (hasDisclosureDate()) { - hash = (37 * hash) + DISCLOSURE_DATE_FIELD_NUMBER; - hash = (53 * hash) + getDisclosureDate().hashCode(); - } - if (hasAdult()) { - hash = (37 * hash) + ADULT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAdult()); - } - if (hasAgeGroup()) { - hash = (37 * hash) + AGE_GROUP_FIELD_NUMBER; - hash = (53 * hash) + ageGroup_; - } - if (hasAvailability()) { - hash = (37 * hash) + AVAILABILITY_FIELD_NUMBER; - hash = (53 * hash) + availability_; - } - if (hasAvailabilityDate()) { - hash = (37 * hash) + AVAILABILITY_DATE_FIELD_NUMBER; - hash = (53 * hash) + getAvailabilityDate().hashCode(); - } - if (hasBrand()) { - hash = (37 * hash) + BRAND_FIELD_NUMBER; - hash = (53 * hash) + getBrand().hashCode(); - } - if (hasColor()) { - hash = (37 * hash) + COLOR_FIELD_NUMBER; - hash = (53 * hash) + getColor().hashCode(); - } - if (hasCondition()) { - hash = (37 * hash) + CONDITION_FIELD_NUMBER; - hash = (53 * hash) + condition_; + public static final int AMOUNT_FIELD_NUMBER = 2; + private com.google.shopping.type.Price amount_; + + /** + * + * + *
+     * The amount of product fee.
+     * 
+ * + * .google.shopping.type.Price amount = 2; + * + * @return Whether the amount field is set. + */ + @java.lang.Override + public boolean hasAmount() { + return ((bitField0_ & 0x00000001) != 0); } - if (hasGender()) { - hash = (37 * hash) + GENDER_FIELD_NUMBER; - hash = (53 * hash) + gender_; + + /** + * + * + *
+     * The amount of product fee.
+     * 
+ * + * .google.shopping.type.Price amount = 2; + * + * @return The amount. + */ + @java.lang.Override + public com.google.shopping.type.Price getAmount() { + return amount_ == null ? com.google.shopping.type.Price.getDefaultInstance() : amount_; } - if (hasGoogleProductCategory()) { - hash = (37 * hash) + GOOGLE_PRODUCT_CATEGORY_FIELD_NUMBER; - hash = (53 * hash) + getGoogleProductCategory().hashCode(); + + /** + * + * + *
+     * The amount of product fee.
+     * 
+ * + * .google.shopping.type.Price amount = 2; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getAmountOrBuilder() { + return amount_ == null ? com.google.shopping.type.Price.getDefaultInstance() : amount_; } - if (getGtinsCount() > 0) { - hash = (37 * hash) + GTINS_FIELD_NUMBER; - hash = (53 * hash) + getGtinsList().hashCode(); + + 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; } - if (hasItemGroupId()) { - hash = (37 * hash) + ITEM_GROUP_ID_FIELD_NUMBER; - hash = (53 * hash) + getItemGroupId().hashCode(); + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (type_ + != com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType + .FEE_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, type_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(2, getAmount()); + } + getUnknownFields().writeTo(output); } - if (hasMaterial()) { - hash = (37 * hash) + MATERIAL_FIELD_NUMBER; - hash = (53 * hash) + getMaterial().hashCode(); + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (type_ + != com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType + .FEE_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, type_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getAmount()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - if (hasMpn()) { - hash = (37 * hash) + MPN_FIELD_NUMBER; - hash = (53 * hash) + getMpn().hashCode(); + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee other = + (com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee) obj; + + if (type_ != other.type_) return false; + if (hasAmount() != other.hasAmount()) return false; + if (hasAmount()) { + if (!getAmount().equals(other.getAmount())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; } - if (hasPattern()) { - hash = (37 * hash) + PATTERN_FIELD_NUMBER; - hash = (53 * hash) + getPattern().hashCode(); + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + if (hasAmount()) { + hash = (37 * hash) + AMOUNT_FIELD_NUMBER; + hash = (53 * hash) + getAmount().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - if (hasPrice()) { - hash = (37 * hash) + PRICE_FIELD_NUMBER; - hash = (53 * hash) + getPrice().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (hasMaximumRetailPrice()) { - hash = (37 * hash) + MAXIMUM_RETAIL_PRICE_FIELD_NUMBER; - hash = (53 * hash) + getMaximumRetailPrice().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (hasInstallment()) { - hash = (37 * hash) + INSTALLMENT_FIELD_NUMBER; - hash = (53 * hash) + getInstallment().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (hasSubscriptionCost()) { - hash = (37 * hash) + SUBSCRIPTION_COST_FIELD_NUMBER; - hash = (53 * hash) + getSubscriptionCost().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (hasLoyaltyPoints()) { - hash = (37 * hash) + LOYALTY_POINTS_FIELD_NUMBER; - hash = (53 * hash) + getLoyaltyPoints().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - if (getLoyaltyProgramsCount() > 0) { - hash = (37 * hash) + LOYALTY_PROGRAMS_FIELD_NUMBER; - hash = (53 * hash) + getLoyaltyProgramsList().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - if (getProductTypesCount() > 0) { - hash = (37 * hash) + PRODUCT_TYPES_FIELD_NUMBER; - hash = (53 * hash) + getProductTypesList().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - if (hasSalePrice()) { - hash = (37 * hash) + SALE_PRICE_FIELD_NUMBER; - hash = (53 * hash) + getSalePrice().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); } - if (hasSalePriceEffectiveDate()) { - hash = (37 * hash) + SALE_PRICE_EFFECTIVE_DATE_FIELD_NUMBER; - hash = (53 * hash) + getSalePriceEffectiveDate().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); } - if (hasSellOnGoogleQuantity()) { - hash = (37 * hash) + SELL_ON_GOOGLE_QUANTITY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getSellOnGoogleQuantity()); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); } - if (hasProductHeight()) { - hash = (37 * hash) + PRODUCT_HEIGHT_FIELD_NUMBER; - hash = (53 * hash) + getProductHeight().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); } - if (hasProductLength()) { - hash = (37 * hash) + PRODUCT_LENGTH_FIELD_NUMBER; - hash = (53 * hash) + getProductLength().hashCode(); + + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); } - if (hasProductWidth()) { - hash = (37 * hash) + PRODUCT_WIDTH_FIELD_NUMBER; - hash = (53 * hash) + getProductWidth().hashCode(); + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); } - if (hasProductWeight()) { - hash = (37 * hash) + PRODUCT_WEIGHT_FIELD_NUMBER; - hash = (53 * hash) + getProductWeight().hashCode(); + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); } - if (getShippingCount() > 0) { - hash = (37 * hash) + SHIPPING_FIELD_NUMBER; - hash = (53 * hash) + getShippingList().hashCode(); + + public static Builder newBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } - if (getCarrierShippingCount() > 0) { - hash = (37 * hash) + CARRIER_SHIPPING_FIELD_NUMBER; - hash = (53 * hash) + getCarrierShippingList().hashCode(); + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - if (getFreeShippingThresholdCount() > 0) { - hash = (37 * hash) + FREE_SHIPPING_THRESHOLD_FIELD_NUMBER; - hash = (53 * hash) + getFreeShippingThresholdList().hashCode(); + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; } - if (hasShippingWeight()) { - hash = (37 * hash) + SHIPPING_WEIGHT_FIELD_NUMBER; - hash = (53 * hash) + getShippingWeight().hashCode(); - } - if (hasShippingLength()) { - hash = (37 * hash) + SHIPPING_LENGTH_FIELD_NUMBER; - hash = (53 * hash) + getShippingLength().hashCode(); - } - if (hasShippingWidth()) { - hash = (37 * hash) + SHIPPING_WIDTH_FIELD_NUMBER; - hash = (53 * hash) + getShippingWidth().hashCode(); - } - if (hasShippingHeight()) { - hash = (37 * hash) + SHIPPING_HEIGHT_FIELD_NUMBER; - hash = (53 * hash) + getShippingHeight().hashCode(); - } - if (hasMaxHandlingTime()) { - hash = (37 * hash) + MAX_HANDLING_TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxHandlingTime()); - } - if (hasMinHandlingTime()) { - hash = (37 * hash) + MIN_HANDLING_TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMinHandlingTime()); - } - if (getShippingHandlingBusinessDaysCount() > 0) { - hash = (37 * hash) + SHIPPING_HANDLING_BUSINESS_DAYS_FIELD_NUMBER; - hash = (53 * hash) + getShippingHandlingBusinessDaysList().hashCode(); - } - if (getShippingTransitBusinessDaysCount() > 0) { - hash = (37 * hash) + SHIPPING_TRANSIT_BUSINESS_DAYS_FIELD_NUMBER; - hash = (53 * hash) + getShippingTransitBusinessDaysList().hashCode(); - } - if (getHandlingCutoffTimesCount() > 0) { - hash = (37 * hash) + HANDLING_CUTOFF_TIMES_FIELD_NUMBER; - hash = (53 * hash) + getHandlingCutoffTimesList().hashCode(); - } - if (hasShippingLabel()) { - hash = (37 * hash) + SHIPPING_LABEL_FIELD_NUMBER; - hash = (53 * hash) + getShippingLabel().hashCode(); - } - if (hasReturnPolicyLabel()) { - hash = (37 * hash) + RETURN_POLICY_LABEL_FIELD_NUMBER; - hash = (53 * hash) + getReturnPolicyLabel().hashCode(); - } - if (hasTransitTimeLabel()) { - hash = (37 * hash) + TRANSIT_TIME_LABEL_FIELD_NUMBER; - hash = (53 * hash) + getTransitTimeLabel().hashCode(); - } - if (hasSize()) { - hash = (37 * hash) + SIZE_FIELD_NUMBER; - hash = (53 * hash) + getSize().hashCode(); - } - if (hasSizeSystem()) { - hash = (37 * hash) + SIZE_SYSTEM_FIELD_NUMBER; - hash = (53 * hash) + sizeSystem_; - } - if (getSizeTypesCount() > 0) { - hash = (37 * hash) + SIZE_TYPES_FIELD_NUMBER; - hash = (53 * hash) + sizeTypes_.hashCode(); - } - if (hasEnergyEfficiencyClass()) { - hash = (37 * hash) + ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER; - hash = (53 * hash) + energyEfficiencyClass_; - } - if (hasMinEnergyEfficiencyClass()) { - hash = (37 * hash) + MIN_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER; - hash = (53 * hash) + minEnergyEfficiencyClass_; - } - if (hasMaxEnergyEfficiencyClass()) { - hash = (37 * hash) + MAX_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER; - hash = (53 * hash) + maxEnergyEfficiencyClass_; - } - if (hasUnitPricingMeasure()) { - hash = (37 * hash) + UNIT_PRICING_MEASURE_FIELD_NUMBER; - hash = (53 * hash) + getUnitPricingMeasure().hashCode(); - } - if (hasUnitPricingBaseMeasure()) { - hash = (37 * hash) + UNIT_PRICING_BASE_MEASURE_FIELD_NUMBER; - hash = (53 * hash) + getUnitPricingBaseMeasure().hashCode(); - } - if (hasMultipack()) { - hash = (37 * hash) + MULTIPACK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMultipack()); - } - if (hasAdsGrouping()) { - hash = (37 * hash) + ADS_GROUPING_FIELD_NUMBER; - hash = (53 * hash) + getAdsGrouping().hashCode(); - } - if (getAdsLabelsCount() > 0) { - hash = (37 * hash) + ADS_LABELS_FIELD_NUMBER; - hash = (53 * hash) + getAdsLabelsList().hashCode(); - } - if (hasAdsRedirect()) { - hash = (37 * hash) + ADS_REDIRECT_FIELD_NUMBER; - hash = (53 * hash) + getAdsRedirect().hashCode(); - } - if (hasCostOfGoodsSold()) { - hash = (37 * hash) + COST_OF_GOODS_SOLD_FIELD_NUMBER; - hash = (53 * hash) + getCostOfGoodsSold().hashCode(); - } - if (getProductDetailsCount() > 0) { - hash = (37 * hash) + PRODUCT_DETAILS_FIELD_NUMBER; - hash = (53 * hash) + getProductDetailsList().hashCode(); - } - if (getProductHighlightsCount() > 0) { - hash = (37 * hash) + PRODUCT_HIGHLIGHTS_FIELD_NUMBER; - hash = (53 * hash) + getProductHighlightsList().hashCode(); - } - if (hasDisplayAdsId()) { - hash = (37 * hash) + DISPLAY_ADS_ID_FIELD_NUMBER; - hash = (53 * hash) + getDisplayAdsId().hashCode(); - } - if (getDisplayAdsSimilarIdsCount() > 0) { - hash = (37 * hash) + DISPLAY_ADS_SIMILAR_IDS_FIELD_NUMBER; - hash = (53 * hash) + getDisplayAdsSimilarIdsList().hashCode(); - } - if (hasDisplayAdsTitle()) { - hash = (37 * hash) + DISPLAY_ADS_TITLE_FIELD_NUMBER; - hash = (53 * hash) + getDisplayAdsTitle().hashCode(); - } - if (hasDisplayAdsLink()) { - hash = (37 * hash) + DISPLAY_ADS_LINK_FIELD_NUMBER; - hash = (53 * hash) + getDisplayAdsLink().hashCode(); - } - if (hasDisplayAdsValue()) { - hash = (37 * hash) + DISPLAY_ADS_VALUE_FIELD_NUMBER; - hash = - (53 * hash) - + com.google.protobuf.Internal.hashLong( - java.lang.Double.doubleToLongBits(getDisplayAdsValue())); - } - if (getPromotionIdsCount() > 0) { - hash = (37 * hash) + PROMOTION_IDS_FIELD_NUMBER; - hash = (53 * hash) + getPromotionIdsList().hashCode(); - } - if (hasPickupMethod()) { - hash = (37 * hash) + PICKUP_METHOD_FIELD_NUMBER; - hash = (53 * hash) + pickupMethod_; - } - if (hasPickupSla()) { - hash = (37 * hash) + PICKUP_SLA_FIELD_NUMBER; - hash = (53 * hash) + pickupSla_; - } - if (hasLinkTemplate()) { - hash = (37 * hash) + LINK_TEMPLATE_FIELD_NUMBER; - hash = (53 * hash) + getLinkTemplate().hashCode(); - } - if (hasMobileLinkTemplate()) { - hash = (37 * hash) + MOBILE_LINK_TEMPLATE_FIELD_NUMBER; - hash = (53 * hash) + getMobileLinkTemplate().hashCode(); - } - if (hasCustomLabel0()) { - hash = (37 * hash) + CUSTOM_LABEL_0_FIELD_NUMBER; - hash = (53 * hash) + getCustomLabel0().hashCode(); - } - if (hasCustomLabel1()) { - hash = (37 * hash) + CUSTOM_LABEL_1_FIELD_NUMBER; - hash = (53 * hash) + getCustomLabel1().hashCode(); - } - if (hasCustomLabel2()) { - hash = (37 * hash) + CUSTOM_LABEL_2_FIELD_NUMBER; - hash = (53 * hash) + getCustomLabel2().hashCode(); - } - if (hasCustomLabel3()) { - hash = (37 * hash) + CUSTOM_LABEL_3_FIELD_NUMBER; - hash = (53 * hash) + getCustomLabel3().hashCode(); - } - if (hasCustomLabel4()) { - hash = (37 * hash) + CUSTOM_LABEL_4_FIELD_NUMBER; - hash = (53 * hash) + getCustomLabel4().hashCode(); - } - if (getIncludedDestinationsCount() > 0) { - hash = (37 * hash) + INCLUDED_DESTINATIONS_FIELD_NUMBER; - hash = (53 * hash) + includedDestinations_.hashCode(); - } - if (getExcludedDestinationsCount() > 0) { - hash = (37 * hash) + EXCLUDED_DESTINATIONS_FIELD_NUMBER; - hash = (53 * hash) + excludedDestinations_.hashCode(); - } - if (getShoppingAdsExcludedCountriesCount() > 0) { - hash = (37 * hash) + SHOPPING_ADS_EXCLUDED_COUNTRIES_FIELD_NUMBER; - hash = (53 * hash) + getShoppingAdsExcludedCountriesList().hashCode(); - } - if (hasExternalSellerId()) { - hash = (37 * hash) + EXTERNAL_SELLER_ID_FIELD_NUMBER; - hash = (53 * hash) + getExternalSellerId().hashCode(); - } - if (hasPause()) { - hash = (37 * hash) + PAUSE_FIELD_NUMBER; - hash = (53 * hash) + pause_; - } - if (getLifestyleImageLinksCount() > 0) { - hash = (37 * hash) + LIFESTYLE_IMAGE_LINKS_FIELD_NUMBER; - hash = (53 * hash) + getLifestyleImageLinksList().hashCode(); - } - if (getCloudExportAdditionalPropertiesCount() > 0) { - hash = (37 * hash) + CLOUD_EXPORT_ADDITIONAL_PROPERTIES_FIELD_NUMBER; - hash = (53 * hash) + getCloudExportAdditionalPropertiesList().hashCode(); - } - if (hasVirtualModelLink()) { - hash = (37 * hash) + VIRTUAL_MODEL_LINK_FIELD_NUMBER; - hash = (53 * hash) + getVirtualModelLink().hashCode(); - } - if (getCertificationsCount() > 0) { - hash = (37 * hash) + CERTIFICATIONS_FIELD_NUMBER; - hash = (53 * hash) + getCertificationsList().hashCode(); - } - if (hasStructuredTitle()) { - hash = (37 * hash) + STRUCTURED_TITLE_FIELD_NUMBER; - hash = (53 * hash) + getStructuredTitle().hashCode(); - } - if (hasStructuredDescription()) { - hash = (37 * hash) + STRUCTURED_DESCRIPTION_FIELD_NUMBER; - hash = (53 * hash) + getStructuredDescription().hashCode(); - } - if (hasAutoPricingMinPrice()) { - hash = (37 * hash) + AUTO_PRICING_MIN_PRICE_FIELD_NUMBER; - hash = (53 * hash) + getAutoPricingMinPrice().hashCode(); - } - if (getSustainabilityIncentivesCount() > 0) { - hash = (37 * hash) + SUSTAINABILITY_INCENTIVES_FIELD_NUMBER; - hash = (53 * hash) + getSustainabilityIncentivesList().hashCode(); - } - if (getVideoLinksCount() > 0) { - hash = (37 * hash) + VIDEO_LINKS_FIELD_NUMBER; - hash = (53 * hash) + getVideoLinksList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + /** + * + * + *
+     * The product fee attribute containing type and amount.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.ProductFee} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.ProductFee) + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_descriptor; + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.class, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder + .class); + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetAmountFieldBuilder(); + } + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + type_ = 0; + amount_ = null; + if (amountBuilder_ != null) { + amountBuilder_.dispose(); + amountBuilder_ = null; + } + return this; + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_descriptor; + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException( - PARSER, input, extensionRegistry); - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + .getDefaultInstance(); + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseDelimitedFrom( - java.io.InputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee build() { + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseDelimitedFrom( - java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( - PARSER, input, extensionRegistry); - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee result = + new com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - com.google.protobuf.CodedInputStream input) throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); - } + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.type_ = type_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.amount_ = amountBuilder_ == null ? amount_ : amountBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; + } - public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessage.parseWithIOException( - PARSER, input, extensionRegistry); - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee) other); + } else { + super.mergeFrom(other); + return this; + } + } - @java.lang.Override - public Builder newBuilderForType() { - return newBuilder(); - } + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + .getDefaultInstance()) return this; + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + if (other.hasAmount()) { + mergeAmount(other.getAmount()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - public static Builder newBuilder( - com.google.shopping.merchant.products.v1.ProductAttributes prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } + @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: + { + type_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: + { + input.readMessage( + internalGetAmountFieldBuilder().getBuilder(), extensionRegistry); + 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; + } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); - } + private int bitField0_; - @java.lang.Override - protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } + private int type_ = 0; - /** - * - * - *
-   * Product attributes.
-   * 
- * - * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes} - */ - public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder - implements - // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes) - com.google.shopping.merchant.products.v1.ProductAttributesOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor; - } + /** + * + * + *
+       * The type of product fee.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override + public int getTypeValue() { + return type_; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.google.shopping.merchant.products.v1.ProductAttributes.class, - com.google.shopping.merchant.products.v1.ProductAttributes.Builder.class); - } + /** + * + * + *
+       * The type of product fee.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - // Construct using com.google.shopping.merchant.products.v1.ProductAttributes.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } + /** + * + * + *
+       * The type of product fee.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @return The type. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType + getType() { + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType result = + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType.forNumber( + type_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType + .UNRECOGNIZED + : result; + } - private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - internalGetExpirationDateFieldBuilder(); - internalGetDisclosureDateFieldBuilder(); - internalGetAvailabilityDateFieldBuilder(); - internalGetPriceFieldBuilder(); - internalGetMaximumRetailPriceFieldBuilder(); - internalGetInstallmentFieldBuilder(); - internalGetSubscriptionCostFieldBuilder(); - internalGetLoyaltyPointsFieldBuilder(); - internalGetLoyaltyProgramsFieldBuilder(); - internalGetSalePriceFieldBuilder(); - internalGetSalePriceEffectiveDateFieldBuilder(); - internalGetProductHeightFieldBuilder(); - internalGetProductLengthFieldBuilder(); - internalGetProductWidthFieldBuilder(); - internalGetProductWeightFieldBuilder(); - internalGetShippingFieldBuilder(); - internalGetCarrierShippingFieldBuilder(); - internalGetFreeShippingThresholdFieldBuilder(); - internalGetShippingWeightFieldBuilder(); - internalGetShippingLengthFieldBuilder(); - internalGetShippingWidthFieldBuilder(); - internalGetShippingHeightFieldBuilder(); - internalGetShippingHandlingBusinessDaysFieldBuilder(); - internalGetShippingTransitBusinessDaysFieldBuilder(); - internalGetHandlingCutoffTimesFieldBuilder(); - internalGetUnitPricingMeasureFieldBuilder(); - internalGetUnitPricingBaseMeasureFieldBuilder(); - internalGetCostOfGoodsSoldFieldBuilder(); - internalGetProductDetailsFieldBuilder(); - internalGetCloudExportAdditionalPropertiesFieldBuilder(); - internalGetCertificationsFieldBuilder(); - internalGetStructuredTitleFieldBuilder(); - internalGetStructuredDescriptionFieldBuilder(); - internalGetAutoPricingMinPriceFieldBuilder(); - internalGetSustainabilityIncentivesFieldBuilder(); + /** + * + * + *
+       * The type of product fee.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + type_ = value.getNumber(); + onChanged(); + return this; } - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - bitField1_ = 0; - bitField2_ = 0; - bitField3_ = 0; - identifierExists_ = false; - isBundle_ = false; - title_ = ""; - description_ = ""; - link_ = ""; - mobileLink_ = ""; - canonicalLink_ = ""; - imageLink_ = ""; - additionalImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); - expirationDate_ = null; - if (expirationDateBuilder_ != null) { - expirationDateBuilder_.dispose(); - expirationDateBuilder_ = null; - } - disclosureDate_ = null; - if (disclosureDateBuilder_ != null) { - disclosureDateBuilder_.dispose(); - disclosureDateBuilder_ = null; - } - adult_ = false; - ageGroup_ = 0; - availability_ = 0; - availabilityDate_ = null; - if (availabilityDateBuilder_ != null) { - availabilityDateBuilder_.dispose(); - availabilityDateBuilder_ = null; - } - brand_ = ""; - color_ = ""; - condition_ = 0; - gender_ = 0; - googleProductCategory_ = ""; - gtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); - itemGroupId_ = ""; - material_ = ""; - mpn_ = ""; - pattern_ = ""; - price_ = null; - if (priceBuilder_ != null) { - priceBuilder_.dispose(); - priceBuilder_ = null; - } - maximumRetailPrice_ = null; - if (maximumRetailPriceBuilder_ != null) { - maximumRetailPriceBuilder_.dispose(); - maximumRetailPriceBuilder_ = null; - } - installment_ = null; - if (installmentBuilder_ != null) { - installmentBuilder_.dispose(); - installmentBuilder_ = null; - } - subscriptionCost_ = null; - if (subscriptionCostBuilder_ != null) { - subscriptionCostBuilder_.dispose(); - subscriptionCostBuilder_ = null; - } - loyaltyPoints_ = null; - if (loyaltyPointsBuilder_ != null) { - loyaltyPointsBuilder_.dispose(); - loyaltyPointsBuilder_ = null; - } - if (loyaltyProgramsBuilder_ == null) { - loyaltyPrograms_ = java.util.Collections.emptyList(); - } else { - loyaltyPrograms_ = null; - loyaltyProgramsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x40000000); - productTypes_ = com.google.protobuf.LazyStringArrayList.emptyList(); - salePrice_ = null; - if (salePriceBuilder_ != null) { - salePriceBuilder_.dispose(); - salePriceBuilder_ = null; - } - salePriceEffectiveDate_ = null; - if (salePriceEffectiveDateBuilder_ != null) { - salePriceEffectiveDateBuilder_.dispose(); - salePriceEffectiveDateBuilder_ = null; - } - sellOnGoogleQuantity_ = 0L; - productHeight_ = null; - if (productHeightBuilder_ != null) { - productHeightBuilder_.dispose(); - productHeightBuilder_ = null; - } - productLength_ = null; - if (productLengthBuilder_ != null) { - productLengthBuilder_.dispose(); - productLengthBuilder_ = null; - } - productWidth_ = null; - if (productWidthBuilder_ != null) { - productWidthBuilder_.dispose(); - productWidthBuilder_ = null; - } - productWeight_ = null; - if (productWeightBuilder_ != null) { - productWeightBuilder_.dispose(); - productWeightBuilder_ = null; - } - if (shippingBuilder_ == null) { - shipping_ = java.util.Collections.emptyList(); - } else { - shipping_ = null; - shippingBuilder_.clear(); - } - bitField1_ = (bitField1_ & ~0x00000080); - if (carrierShippingBuilder_ == null) { - carrierShipping_ = java.util.Collections.emptyList(); - } else { - carrierShipping_ = null; - carrierShippingBuilder_.clear(); - } - bitField1_ = (bitField1_ & ~0x00000100); - if (freeShippingThresholdBuilder_ == null) { - freeShippingThreshold_ = java.util.Collections.emptyList(); - } else { - freeShippingThreshold_ = null; - freeShippingThresholdBuilder_.clear(); - } - bitField1_ = (bitField1_ & ~0x00000200); - shippingWeight_ = null; - if (shippingWeightBuilder_ != null) { - shippingWeightBuilder_.dispose(); - shippingWeightBuilder_ = null; - } - shippingLength_ = null; - if (shippingLengthBuilder_ != null) { - shippingLengthBuilder_.dispose(); - shippingLengthBuilder_ = null; - } - shippingWidth_ = null; - if (shippingWidthBuilder_ != null) { - shippingWidthBuilder_.dispose(); - shippingWidthBuilder_ = null; - } - shippingHeight_ = null; - if (shippingHeightBuilder_ != null) { - shippingHeightBuilder_.dispose(); - shippingHeightBuilder_ = null; - } - maxHandlingTime_ = 0L; - minHandlingTime_ = 0L; - if (shippingHandlingBusinessDaysBuilder_ == null) { - shippingHandlingBusinessDays_ = java.util.Collections.emptyList(); - } else { - shippingHandlingBusinessDays_ = null; - shippingHandlingBusinessDaysBuilder_.clear(); - } - bitField1_ = (bitField1_ & ~0x00010000); - if (shippingTransitBusinessDaysBuilder_ == null) { - shippingTransitBusinessDays_ = java.util.Collections.emptyList(); - } else { - shippingTransitBusinessDays_ = null; - shippingTransitBusinessDaysBuilder_.clear(); - } - bitField1_ = (bitField1_ & ~0x00020000); - if (handlingCutoffTimesBuilder_ == null) { - handlingCutoffTimes_ = java.util.Collections.emptyList(); - } else { - handlingCutoffTimes_ = null; - handlingCutoffTimesBuilder_.clear(); - } - bitField1_ = (bitField1_ & ~0x00040000); - shippingLabel_ = ""; - returnPolicyLabel_ = ""; - transitTimeLabel_ = ""; - size_ = ""; - sizeSystem_ = 0; - sizeTypes_ = emptyIntList(); - energyEfficiencyClass_ = 0; - minEnergyEfficiencyClass_ = 0; - maxEnergyEfficiencyClass_ = 0; - unitPricingMeasure_ = null; - if (unitPricingMeasureBuilder_ != null) { - unitPricingMeasureBuilder_.dispose(); - unitPricingMeasureBuilder_ = null; + /** + * + * + *
+       * The type of product fee.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.ProductFee.FeeType type = 1; + * + * + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000001); + type_ = 0; + onChanged(); + return this; } - unitPricingBaseMeasure_ = null; - if (unitPricingBaseMeasureBuilder_ != null) { - unitPricingBaseMeasureBuilder_.dispose(); - unitPricingBaseMeasureBuilder_ = null; + + private com.google.shopping.type.Price amount_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + amountBuilder_; + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + * + * @return Whether the amount field is set. + */ + public boolean hasAmount() { + return ((bitField0_ & 0x00000002) != 0); } - multipack_ = 0L; - adsGrouping_ = ""; - adsLabels_ = com.google.protobuf.LazyStringArrayList.emptyList(); - adsRedirect_ = ""; - costOfGoodsSold_ = null; - if (costOfGoodsSoldBuilder_ != null) { - costOfGoodsSoldBuilder_.dispose(); - costOfGoodsSoldBuilder_ = null; + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + * + * @return The amount. + */ + public com.google.shopping.type.Price getAmount() { + if (amountBuilder_ == null) { + return amount_ == null ? com.google.shopping.type.Price.getDefaultInstance() : amount_; + } else { + return amountBuilder_.getMessage(); + } } - if (productDetailsBuilder_ == null) { - productDetails_ = java.util.Collections.emptyList(); - } else { - productDetails_ = null; - productDetailsBuilder_.clear(); + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + */ + public Builder setAmount(com.google.shopping.type.Price value) { + if (amountBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + amount_ = value; + } else { + amountBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; } - bitField2_ = (bitField2_ & ~0x00000008); - productHighlights_ = com.google.protobuf.LazyStringArrayList.emptyList(); - displayAdsId_ = ""; - displayAdsSimilarIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); - displayAdsTitle_ = ""; - displayAdsLink_ = ""; - displayAdsValue_ = 0D; - promotionIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); - pickupMethod_ = 0; - pickupSla_ = 0; - linkTemplate_ = ""; - mobileLinkTemplate_ = ""; - customLabel0_ = ""; - customLabel1_ = ""; - customLabel2_ = ""; - customLabel3_ = ""; - customLabel4_ = ""; - includedDestinations_ = emptyIntList(); - excludedDestinations_ = emptyIntList(); - shoppingAdsExcludedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); - externalSellerId_ = ""; - pause_ = 0; - lifestyleImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); - if (cloudExportAdditionalPropertiesBuilder_ == null) { - cloudExportAdditionalProperties_ = java.util.Collections.emptyList(); - } else { - cloudExportAdditionalProperties_ = null; - cloudExportAdditionalPropertiesBuilder_.clear(); + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + */ + public Builder setAmount(com.google.shopping.type.Price.Builder builderForValue) { + if (amountBuilder_ == null) { + amount_ = builderForValue.build(); + } else { + amountBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; } - bitField2_ = (bitField2_ & ~0x04000000); - virtualModelLink_ = ""; - if (certificationsBuilder_ == null) { - certifications_ = java.util.Collections.emptyList(); - } else { - certifications_ = null; - certificationsBuilder_.clear(); + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + */ + public Builder mergeAmount(com.google.shopping.type.Price value) { + if (amountBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && amount_ != null + && amount_ != com.google.shopping.type.Price.getDefaultInstance()) { + getAmountBuilder().mergeFrom(value); + } else { + amount_ = value; + } + } else { + amountBuilder_.mergeFrom(value); + } + if (amount_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; } - bitField2_ = (bitField2_ & ~0x10000000); - structuredTitle_ = null; - if (structuredTitleBuilder_ != null) { - structuredTitleBuilder_.dispose(); - structuredTitleBuilder_ = null; + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + */ + public Builder clearAmount() { + bitField0_ = (bitField0_ & ~0x00000002); + amount_ = null; + if (amountBuilder_ != null) { + amountBuilder_.dispose(); + amountBuilder_ = null; + } + onChanged(); + return this; } - structuredDescription_ = null; - if (structuredDescriptionBuilder_ != null) { - structuredDescriptionBuilder_.dispose(); - structuredDescriptionBuilder_ = null; + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + */ + public com.google.shopping.type.Price.Builder getAmountBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return internalGetAmountFieldBuilder().getBuilder(); } - autoPricingMinPrice_ = null; - if (autoPricingMinPriceBuilder_ != null) { - autoPricingMinPriceBuilder_.dispose(); - autoPricingMinPriceBuilder_ = null; + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + */ + public com.google.shopping.type.PriceOrBuilder getAmountOrBuilder() { + if (amountBuilder_ != null) { + return amountBuilder_.getMessageOrBuilder(); + } else { + return amount_ == null ? com.google.shopping.type.Price.getDefaultInstance() : amount_; + } } - if (sustainabilityIncentivesBuilder_ == null) { - sustainabilityIncentives_ = java.util.Collections.emptyList(); - } else { - sustainabilityIncentives_ = null; - sustainabilityIncentivesBuilder_.clear(); + + /** + * + * + *
+       * The amount of product fee.
+       * 
+ * + * .google.shopping.type.Price amount = 2; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetAmountFieldBuilder() { + if (amountBuilder_ == null) { + amountBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getAmount(), getParentForChildren(), isClean()); + amount_ = null; + } + return amountBuilder_; } - bitField3_ = (bitField3_ & ~0x00000001); - videoLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); - return this; + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.ProductFee) } - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return com.google.shopping.merchant.products.v1.ProductsCommonProto - .internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor; + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.ProductFee) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee(); } - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes getDefaultInstanceForType() { - return com.google.shopping.merchant.products.v1.ProductAttributes.getDefaultInstance(); + public static com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + getDefaultInstance() { + return DEFAULT_INSTANCE; } - @java.lang.Override - public com.google.shopping.merchant.products.v1.ProductAttributes build() { - com.google.shopping.merchant.products.v1.ProductAttributes result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProductFee 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.shopping.merchant.products.v1.ProductAttributes buildPartial() { - com.google.shopping.merchant.products.v1.ProductAttributes result = - new com.google.shopping.merchant.products.v1.ProductAttributes(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { - buildPartial0(result); - } - if (bitField1_ != 0) { - buildPartial1(result); - } - if (bitField2_ != 0) { - buildPartial2(result); - } - if (bitField3_ != 0) { - buildPartial3(result); - } - onBuilt(); - return result; + public com.google.protobuf.Parser getParserForType() { + return PARSER; } - private void buildPartialRepeatedFields( - com.google.shopping.merchant.products.v1.ProductAttributes result) { - if (loyaltyProgramsBuilder_ == null) { - if (((bitField0_ & 0x40000000) != 0)) { - loyaltyPrograms_ = java.util.Collections.unmodifiableList(loyaltyPrograms_); - bitField0_ = (bitField0_ & ~0x40000000); - } - result.loyaltyPrograms_ = loyaltyPrograms_; - } else { - result.loyaltyPrograms_ = loyaltyProgramsBuilder_.build(); - } - if (shippingBuilder_ == null) { - if (((bitField1_ & 0x00000080) != 0)) { - shipping_ = java.util.Collections.unmodifiableList(shipping_); - bitField1_ = (bitField1_ & ~0x00000080); - } - result.shipping_ = shipping_; + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DisplayAddressOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * The street number.
+     * 
+ * + * string street_number = 1; + * + * @return The streetNumber. + */ + java.lang.String getStreetNumber(); + + /** + * + * + *
+     * The street number.
+     * 
+ * + * string street_number = 1; + * + * @return The bytes for streetNumber. + */ + com.google.protobuf.ByteString getStreetNumberBytes(); + + /** + * + * + *
+     * The street name.
+     * 
+ * + * string street_name = 2; + * + * @return The streetName. + */ + java.lang.String getStreetName(); + + /** + * + * + *
+     * The street name.
+     * 
+ * + * string street_name = 2; + * + * @return The bytes for streetName. + */ + com.google.protobuf.ByteString getStreetNameBytes(); + + /** + * + * + *
+     * The city such as Seattle, New York, etc.
+     * 
+ * + * string city = 3; + * + * @return The city. + */ + java.lang.String getCity(); + + /** + * + * + *
+     * The city such as Seattle, New York, etc.
+     * 
+ * + * string city = 3; + * + * @return The bytes for city. + */ + com.google.protobuf.ByteString getCityBytes(); + + /** + * + * + *
+     * The region(state), such as WA, OH, etc.
+     * 
+ * + * string region = 4; + * + * @return The region. + */ + java.lang.String getRegion(); + + /** + * + * + *
+     * The region(state), such as WA, OH, etc.
+     * 
+ * + * string region = 4; + * + * @return The bytes for region. + */ + com.google.protobuf.ByteString getRegionBytes(); + + /** + * + * + *
+     * The postal code, such as 94043.
+     * 
+ * + * string postal_code = 5; + * + * @return The postalCode. + */ + java.lang.String getPostalCode(); + + /** + * + * + *
+     * The postal code, such as 94043.
+     * 
+ * + * string postal_code = 5; + * + * @return The bytes for postalCode. + */ + com.google.protobuf.ByteString getPostalCodeBytes(); + } + + /** + * + * + *
+   * The display address of the property.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress} + */ + public static final class DisplayAddress extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) + DisplayAddressOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "DisplayAddress"); + } + + // Use DisplayAddress.newBuilder() to construct. + private DisplayAddress(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private DisplayAddress() { + streetNumber_ = ""; + streetName_ = ""; + city_ = ""; + region_ = ""; + postalCode_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.class, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.Builder + .class); + } + + public static final int STREET_NUMBER_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object streetNumber_ = ""; + + /** + * + * + *
+     * The street number.
+     * 
+ * + * string street_number = 1; + * + * @return The streetNumber. + */ + @java.lang.Override + public java.lang.String getStreetNumber() { + java.lang.Object ref = streetNumber_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - result.shipping_ = shippingBuilder_.build(); + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streetNumber_ = s; + return s; } - if (carrierShippingBuilder_ == null) { - if (((bitField1_ & 0x00000100) != 0)) { - carrierShipping_ = java.util.Collections.unmodifiableList(carrierShipping_); - bitField1_ = (bitField1_ & ~0x00000100); - } - result.carrierShipping_ = carrierShipping_; + } + + /** + * + * + *
+     * The street number.
+     * 
+ * + * string street_number = 1; + * + * @return The bytes for streetNumber. + */ + @java.lang.Override + public com.google.protobuf.ByteString getStreetNumberBytes() { + java.lang.Object ref = streetNumber_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streetNumber_ = b; + return b; } else { - result.carrierShipping_ = carrierShippingBuilder_.build(); + return (com.google.protobuf.ByteString) ref; } - if (freeShippingThresholdBuilder_ == null) { - if (((bitField1_ & 0x00000200) != 0)) { - freeShippingThreshold_ = java.util.Collections.unmodifiableList(freeShippingThreshold_); - bitField1_ = (bitField1_ & ~0x00000200); - } - result.freeShippingThreshold_ = freeShippingThreshold_; + } + + public static final int STREET_NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object streetName_ = ""; + + /** + * + * + *
+     * The street name.
+     * 
+ * + * string street_name = 2; + * + * @return The streetName. + */ + @java.lang.Override + public java.lang.String getStreetName() { + java.lang.Object ref = streetName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - result.freeShippingThreshold_ = freeShippingThresholdBuilder_.build(); + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streetName_ = s; + return s; } - if (shippingHandlingBusinessDaysBuilder_ == null) { - if (((bitField1_ & 0x00010000) != 0)) { - shippingHandlingBusinessDays_ = - java.util.Collections.unmodifiableList(shippingHandlingBusinessDays_); - bitField1_ = (bitField1_ & ~0x00010000); - } - result.shippingHandlingBusinessDays_ = shippingHandlingBusinessDays_; + } + + /** + * + * + *
+     * The street name.
+     * 
+ * + * string street_name = 2; + * + * @return The bytes for streetName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getStreetNameBytes() { + java.lang.Object ref = streetName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streetName_ = b; + return b; } else { - result.shippingHandlingBusinessDays_ = shippingHandlingBusinessDaysBuilder_.build(); + return (com.google.protobuf.ByteString) ref; } - if (shippingTransitBusinessDaysBuilder_ == null) { - if (((bitField1_ & 0x00020000) != 0)) { - shippingTransitBusinessDays_ = - java.util.Collections.unmodifiableList(shippingTransitBusinessDays_); - bitField1_ = (bitField1_ & ~0x00020000); - } - result.shippingTransitBusinessDays_ = shippingTransitBusinessDays_; + } + + public static final int CITY_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object city_ = ""; + + /** + * + * + *
+     * The city such as Seattle, New York, etc.
+     * 
+ * + * string city = 3; + * + * @return The city. + */ + @java.lang.Override + public java.lang.String getCity() { + java.lang.Object ref = city_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - result.shippingTransitBusinessDays_ = shippingTransitBusinessDaysBuilder_.build(); + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + city_ = s; + return s; } - if (handlingCutoffTimesBuilder_ == null) { - if (((bitField1_ & 0x00040000) != 0)) { - handlingCutoffTimes_ = java.util.Collections.unmodifiableList(handlingCutoffTimes_); - bitField1_ = (bitField1_ & ~0x00040000); - } - result.handlingCutoffTimes_ = handlingCutoffTimes_; + } + + /** + * + * + *
+     * The city such as Seattle, New York, etc.
+     * 
+ * + * string city = 3; + * + * @return The bytes for city. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCityBytes() { + java.lang.Object ref = city_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + city_ = b; + return b; } else { - result.handlingCutoffTimes_ = handlingCutoffTimesBuilder_.build(); + return (com.google.protobuf.ByteString) ref; } - if (productDetailsBuilder_ == null) { - if (((bitField2_ & 0x00000008) != 0)) { - productDetails_ = java.util.Collections.unmodifiableList(productDetails_); - bitField2_ = (bitField2_ & ~0x00000008); - } - result.productDetails_ = productDetails_; + } + + public static final int REGION_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object region_ = ""; + + /** + * + * + *
+     * The region(state), such as WA, OH, etc.
+     * 
+ * + * string region = 4; + * + * @return The region. + */ + @java.lang.Override + public java.lang.String getRegion() { + java.lang.Object ref = region_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - result.productDetails_ = productDetailsBuilder_.build(); + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + region_ = s; + return s; } - if (cloudExportAdditionalPropertiesBuilder_ == null) { - if (((bitField2_ & 0x04000000) != 0)) { - cloudExportAdditionalProperties_ = - java.util.Collections.unmodifiableList(cloudExportAdditionalProperties_); - bitField2_ = (bitField2_ & ~0x04000000); - } - result.cloudExportAdditionalProperties_ = cloudExportAdditionalProperties_; + } + + /** + * + * + *
+     * The region(state), such as WA, OH, etc.
+     * 
+ * + * string region = 4; + * + * @return The bytes for region. + */ + @java.lang.Override + public com.google.protobuf.ByteString getRegionBytes() { + java.lang.Object ref = region_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + region_ = b; + return b; } else { - result.cloudExportAdditionalProperties_ = cloudExportAdditionalPropertiesBuilder_.build(); + return (com.google.protobuf.ByteString) ref; } - if (certificationsBuilder_ == null) { - if (((bitField2_ & 0x10000000) != 0)) { - certifications_ = java.util.Collections.unmodifiableList(certifications_); - bitField2_ = (bitField2_ & ~0x10000000); - } - result.certifications_ = certifications_; + } + + public static final int POSTAL_CODE_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object postalCode_ = ""; + + /** + * + * + *
+     * The postal code, such as 94043.
+     * 
+ * + * string postal_code = 5; + * + * @return The postalCode. + */ + @java.lang.Override + public java.lang.String getPostalCode() { + java.lang.Object ref = postalCode_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { - result.certifications_ = certificationsBuilder_.build(); + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + postalCode_ = s; + return s; } - if (sustainabilityIncentivesBuilder_ == null) { - if (((bitField3_ & 0x00000001) != 0)) { - sustainabilityIncentives_ = - java.util.Collections.unmodifiableList(sustainabilityIncentives_); - bitField3_ = (bitField3_ & ~0x00000001); - } - result.sustainabilityIncentives_ = sustainabilityIncentives_; + } + + /** + * + * + *
+     * The postal code, such as 94043.
+     * 
+ * + * string postal_code = 5; + * + * @return The bytes for postalCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPostalCodeBytes() { + java.lang.Object ref = postalCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + postalCode_ = b; + return b; } else { - result.sustainabilityIncentives_ = sustainabilityIncentivesBuilder_.build(); + return (com.google.protobuf.ByteString) ref; } } - private void buildPartial0(com.google.shopping.merchant.products.v1.ProductAttributes result) { - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.identifierExists_ = identifierExists_; - to_bitField0_ |= 0x00000001; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.isBundle_ = isBundle_; - to_bitField0_ |= 0x00000002; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.title_ = title_; - to_bitField0_ |= 0x00000004; + 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.GeneratedMessage.isStringEmpty(streetNumber_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, streetNumber_); } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.description_ = description_; - to_bitField0_ |= 0x00000008; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(streetName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, streetName_); } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.link_ = link_; - to_bitField0_ |= 0x00000010; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(city_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, city_); } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.mobileLink_ = mobileLink_; - to_bitField0_ |= 0x00000020; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(region_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, region_); } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.canonicalLink_ = canonicalLink_; - to_bitField0_ |= 0x00000040; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(postalCode_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, postalCode_); } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.imageLink_ = imageLink_; - to_bitField0_ |= 0x00000080; + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(streetNumber_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, streetNumber_); } - if (((from_bitField0_ & 0x00000100) != 0)) { - additionalImageLinks_.makeImmutable(); - result.additionalImageLinks_ = additionalImageLinks_; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(streetName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, streetName_); } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.expirationDate_ = - expirationDateBuilder_ == null ? expirationDate_ : expirationDateBuilder_.build(); - to_bitField0_ |= 0x00000100; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(city_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, city_); } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.disclosureDate_ = - disclosureDateBuilder_ == null ? disclosureDate_ : disclosureDateBuilder_.build(); - to_bitField0_ |= 0x00000200; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(region_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, region_); } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.adult_ = adult_; - to_bitField0_ |= 0x00000400; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(postalCode_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, postalCode_); } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.ageGroup_ = ageGroup_; - to_bitField0_ |= 0x00000800; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.availability_ = availability_; - to_bitField0_ |= 0x00001000; + if (!(obj + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress)) { + return super.equals(obj); } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.availabilityDate_ = - availabilityDateBuilder_ == null ? availabilityDate_ : availabilityDateBuilder_.build(); - to_bitField0_ |= 0x00002000; + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress other = + (com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) obj; + + if (!getStreetNumber().equals(other.getStreetNumber())) return false; + if (!getStreetName().equals(other.getStreetName())) return false; + if (!getCity().equals(other.getCity())) return false; + if (!getRegion().equals(other.getRegion())) return false; + if (!getPostalCode().equals(other.getPostalCode())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.brand_ = brand_; - to_bitField0_ |= 0x00004000; + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + STREET_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getStreetNumber().hashCode(); + hash = (37 * hash) + STREET_NAME_FIELD_NUMBER; + hash = (53 * hash) + getStreetName().hashCode(); + hash = (37 * hash) + CITY_FIELD_NUMBER; + hash = (53 * hash) + getCity().hashCode(); + hash = (37 * hash) + REGION_FIELD_NUMBER; + hash = (53 * hash) + getRegion().hashCode(); + hash = (37 * hash) + POSTAL_CODE_FIELD_NUMBER; + hash = (53 * hash) + getPostalCode().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + 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.products.v1.ProductAttributes.DisplayAddress + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + 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.products.v1.ProductAttributes.DisplayAddress + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes.DisplayAddress 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * The display address of the property.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddressOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_descriptor; } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.color_ = color_; - to_bitField0_ |= 0x00008000; + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.class, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.Builder + .class); } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.condition_ = condition_; - to_bitField0_ |= 0x00010000; + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); } - if (((from_bitField0_ & 0x00040000) != 0)) { - result.gender_ = gender_; - to_bitField0_ |= 0x00020000; + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + streetNumber_ = ""; + streetName_ = ""; + city_ = ""; + region_ = ""; + postalCode_ = ""; + return this; } - if (((from_bitField0_ & 0x00080000) != 0)) { - result.googleProductCategory_ = googleProductCategory_; - to_bitField0_ |= 0x00040000; + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_descriptor; } - if (((from_bitField0_ & 0x00100000) != 0)) { - gtins_.makeImmutable(); - result.gtins_ = gtins_; + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + .getDefaultInstance(); } - if (((from_bitField0_ & 0x00200000) != 0)) { - result.itemGroupId_ = itemGroupId_; - to_bitField0_ |= 0x00080000; + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress build() { + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; } - if (((from_bitField0_ & 0x00400000) != 0)) { - result.material_ = material_; - to_bitField0_ |= 0x00100000; + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress result = + new com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; } - if (((from_bitField0_ & 0x00800000) != 0)) { - result.mpn_ = mpn_; - to_bitField0_ |= 0x00200000; + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.streetNumber_ = streetNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.streetName_ = streetName_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.city_ = city_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.region_ = region_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.postalCode_ = postalCode_; + } } - if (((from_bitField0_ & 0x01000000) != 0)) { - result.pattern_ = pattern_; - to_bitField0_ |= 0x00400000; + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) other); + } else { + super.mergeFrom(other); + return this; + } } - if (((from_bitField0_ & 0x02000000) != 0)) { - result.price_ = priceBuilder_ == null ? price_ : priceBuilder_.build(); - to_bitField0_ |= 0x00800000; + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + .getDefaultInstance()) return this; + if (!other.getStreetNumber().isEmpty()) { + streetNumber_ = other.streetNumber_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getStreetName().isEmpty()) { + streetName_ = other.streetName_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getCity().isEmpty()) { + city_ = other.city_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getRegion().isEmpty()) { + region_ = other.region_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getPostalCode().isEmpty()) { + postalCode_ = other.postalCode_; + bitField0_ |= 0x00000010; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; } - if (((from_bitField0_ & 0x04000000) != 0)) { - result.maximumRetailPrice_ = - maximumRetailPriceBuilder_ == null - ? maximumRetailPrice_ - : maximumRetailPriceBuilder_.build(); - to_bitField0_ |= 0x01000000; + + @java.lang.Override + public final boolean isInitialized() { + return true; } - if (((from_bitField0_ & 0x08000000) != 0)) { - result.installment_ = - installmentBuilder_ == null ? installment_ : installmentBuilder_.build(); - to_bitField0_ |= 0x02000000; + + @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: + { + streetNumber_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + streetName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: + { + city_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: + { + region_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: + { + postalCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + 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; } - if (((from_bitField0_ & 0x10000000) != 0)) { - result.subscriptionCost_ = - subscriptionCostBuilder_ == null ? subscriptionCost_ : subscriptionCostBuilder_.build(); - to_bitField0_ |= 0x04000000; + + private int bitField0_; + + private java.lang.Object streetNumber_ = ""; + + /** + * + * + *
+       * The street number.
+       * 
+ * + * string street_number = 1; + * + * @return The streetNumber. + */ + public java.lang.String getStreetNumber() { + java.lang.Object ref = streetNumber_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streetNumber_ = s; + return s; + } else { + return (java.lang.String) ref; + } } - if (((from_bitField0_ & 0x20000000) != 0)) { - result.loyaltyPoints_ = - loyaltyPointsBuilder_ == null ? loyaltyPoints_ : loyaltyPointsBuilder_.build(); - to_bitField0_ |= 0x08000000; + + /** + * + * + *
+       * The street number.
+       * 
+ * + * string street_number = 1; + * + * @return The bytes for streetNumber. + */ + public com.google.protobuf.ByteString getStreetNumberBytes() { + java.lang.Object ref = streetNumber_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streetNumber_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - if (((from_bitField0_ & 0x80000000) != 0)) { - productTypes_.makeImmutable(); - result.productTypes_ = productTypes_; + + /** + * + * + *
+       * The street number.
+       * 
+ * + * string street_number = 1; + * + * @param value The streetNumber to set. + * @return This builder for chaining. + */ + public Builder setStreetNumber(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + streetNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; } - result.bitField0_ |= to_bitField0_; - } - private void buildPartial1(com.google.shopping.merchant.products.v1.ProductAttributes result) { - int from_bitField1_ = bitField1_; - int to_bitField0_ = 0; - if (((from_bitField1_ & 0x00000001) != 0)) { - result.salePrice_ = salePriceBuilder_ == null ? salePrice_ : salePriceBuilder_.build(); - to_bitField0_ |= 0x10000000; + /** + * + * + *
+       * The street number.
+       * 
+ * + * string street_number = 1; + * + * @return This builder for chaining. + */ + public Builder clearStreetNumber() { + streetNumber_ = getDefaultInstance().getStreetNumber(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; } - if (((from_bitField1_ & 0x00000002) != 0)) { - result.salePriceEffectiveDate_ = - salePriceEffectiveDateBuilder_ == null - ? salePriceEffectiveDate_ - : salePriceEffectiveDateBuilder_.build(); - to_bitField0_ |= 0x20000000; + + /** + * + * + *
+       * The street number.
+       * 
+ * + * string street_number = 1; + * + * @param value The bytes for streetNumber to set. + * @return This builder for chaining. + */ + public Builder setStreetNumberBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + streetNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; } - if (((from_bitField1_ & 0x00000004) != 0)) { - result.sellOnGoogleQuantity_ = sellOnGoogleQuantity_; - to_bitField0_ |= 0x40000000; + + private java.lang.Object streetName_ = ""; + + /** + * + * + *
+       * The street name.
+       * 
+ * + * string street_name = 2; + * + * @return The streetName. + */ + public java.lang.String getStreetName() { + java.lang.Object ref = streetName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streetName_ = s; + return s; + } else { + return (java.lang.String) ref; + } } - if (((from_bitField1_ & 0x00000008) != 0)) { - result.productHeight_ = - productHeightBuilder_ == null ? productHeight_ : productHeightBuilder_.build(); - to_bitField0_ |= 0x80000000; + + /** + * + * + *
+       * The street name.
+       * 
+ * + * string street_name = 2; + * + * @return The bytes for streetName. + */ + public com.google.protobuf.ByteString getStreetNameBytes() { + java.lang.Object ref = streetName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + streetName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - int to_bitField1_ = 0; - if (((from_bitField1_ & 0x00000010) != 0)) { - result.productLength_ = - productLengthBuilder_ == null ? productLength_ : productLengthBuilder_.build(); - to_bitField1_ |= 0x00000001; + + /** + * + * + *
+       * The street name.
+       * 
+ * + * string street_name = 2; + * + * @param value The streetName to set. + * @return This builder for chaining. + */ + public Builder setStreetName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + streetName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; } - if (((from_bitField1_ & 0x00000020) != 0)) { - result.productWidth_ = - productWidthBuilder_ == null ? productWidth_ : productWidthBuilder_.build(); - to_bitField1_ |= 0x00000002; + + /** + * + * + *
+       * The street name.
+       * 
+ * + * string street_name = 2; + * + * @return This builder for chaining. + */ + public Builder clearStreetName() { + streetName_ = getDefaultInstance().getStreetName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; } - if (((from_bitField1_ & 0x00000040) != 0)) { - result.productWeight_ = - productWeightBuilder_ == null ? productWeight_ : productWeightBuilder_.build(); - to_bitField1_ |= 0x00000004; + + /** + * + * + *
+       * The street name.
+       * 
+ * + * string street_name = 2; + * + * @param value The bytes for streetName to set. + * @return This builder for chaining. + */ + public Builder setStreetNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + streetName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; } - if (((from_bitField1_ & 0x00000400) != 0)) { - result.shippingWeight_ = - shippingWeightBuilder_ == null ? shippingWeight_ : shippingWeightBuilder_.build(); - to_bitField1_ |= 0x00000008; - } - if (((from_bitField1_ & 0x00000800) != 0)) { - result.shippingLength_ = - shippingLengthBuilder_ == null ? shippingLength_ : shippingLengthBuilder_.build(); - to_bitField1_ |= 0x00000010; - } - if (((from_bitField1_ & 0x00001000) != 0)) { - result.shippingWidth_ = - shippingWidthBuilder_ == null ? shippingWidth_ : shippingWidthBuilder_.build(); - to_bitField1_ |= 0x00000020; - } - if (((from_bitField1_ & 0x00002000) != 0)) { - result.shippingHeight_ = - shippingHeightBuilder_ == null ? shippingHeight_ : shippingHeightBuilder_.build(); - to_bitField1_ |= 0x00000040; - } - if (((from_bitField1_ & 0x00004000) != 0)) { - result.maxHandlingTime_ = maxHandlingTime_; - to_bitField1_ |= 0x00000080; - } - if (((from_bitField1_ & 0x00008000) != 0)) { - result.minHandlingTime_ = minHandlingTime_; - to_bitField1_ |= 0x00000100; - } - if (((from_bitField1_ & 0x00080000) != 0)) { - result.shippingLabel_ = shippingLabel_; - to_bitField1_ |= 0x00000200; - } - if (((from_bitField1_ & 0x00100000) != 0)) { - result.returnPolicyLabel_ = returnPolicyLabel_; - to_bitField1_ |= 0x00000400; - } - if (((from_bitField1_ & 0x00200000) != 0)) { - result.transitTimeLabel_ = transitTimeLabel_; - to_bitField1_ |= 0x00000800; - } - if (((from_bitField1_ & 0x00400000) != 0)) { - result.size_ = size_; - to_bitField1_ |= 0x00001000; - } - if (((from_bitField1_ & 0x00800000) != 0)) { - result.sizeSystem_ = sizeSystem_; - to_bitField1_ |= 0x00002000; - } - if (((from_bitField1_ & 0x01000000) != 0)) { - sizeTypes_.makeImmutable(); - result.sizeTypes_ = sizeTypes_; - } - if (((from_bitField1_ & 0x02000000) != 0)) { - result.energyEfficiencyClass_ = energyEfficiencyClass_; - to_bitField1_ |= 0x00004000; - } - if (((from_bitField1_ & 0x04000000) != 0)) { - result.minEnergyEfficiencyClass_ = minEnergyEfficiencyClass_; - to_bitField1_ |= 0x00008000; - } - if (((from_bitField1_ & 0x08000000) != 0)) { - result.maxEnergyEfficiencyClass_ = maxEnergyEfficiencyClass_; - to_bitField1_ |= 0x00010000; - } - if (((from_bitField1_ & 0x10000000) != 0)) { - result.unitPricingMeasure_ = - unitPricingMeasureBuilder_ == null - ? unitPricingMeasure_ - : unitPricingMeasureBuilder_.build(); - to_bitField1_ |= 0x00020000; - } - if (((from_bitField1_ & 0x20000000) != 0)) { - result.unitPricingBaseMeasure_ = - unitPricingBaseMeasureBuilder_ == null - ? unitPricingBaseMeasure_ - : unitPricingBaseMeasureBuilder_.build(); - to_bitField1_ |= 0x00040000; - } - if (((from_bitField1_ & 0x40000000) != 0)) { - result.multipack_ = multipack_; - to_bitField1_ |= 0x00080000; - } - if (((from_bitField1_ & 0x80000000) != 0)) { - result.adsGrouping_ = adsGrouping_; - to_bitField1_ |= 0x00100000; - } - result.bitField0_ |= to_bitField0_; - result.bitField1_ |= to_bitField1_; - } - private void buildPartial2(com.google.shopping.merchant.products.v1.ProductAttributes result) { - int from_bitField2_ = bitField2_; - if (((from_bitField2_ & 0x00000001) != 0)) { - adsLabels_.makeImmutable(); - result.adsLabels_ = adsLabels_; - } - int to_bitField1_ = 0; - if (((from_bitField2_ & 0x00000002) != 0)) { - result.adsRedirect_ = adsRedirect_; - to_bitField1_ |= 0x00200000; - } - if (((from_bitField2_ & 0x00000004) != 0)) { - result.costOfGoodsSold_ = - costOfGoodsSoldBuilder_ == null ? costOfGoodsSold_ : costOfGoodsSoldBuilder_.build(); - to_bitField1_ |= 0x00400000; - } - if (((from_bitField2_ & 0x00000010) != 0)) { - productHighlights_.makeImmutable(); - result.productHighlights_ = productHighlights_; - } - if (((from_bitField2_ & 0x00000020) != 0)) { - result.displayAdsId_ = displayAdsId_; - to_bitField1_ |= 0x00800000; - } - if (((from_bitField2_ & 0x00000040) != 0)) { - displayAdsSimilarIds_.makeImmutable(); - result.displayAdsSimilarIds_ = displayAdsSimilarIds_; - } - if (((from_bitField2_ & 0x00000080) != 0)) { - result.displayAdsTitle_ = displayAdsTitle_; - to_bitField1_ |= 0x01000000; - } - if (((from_bitField2_ & 0x00000100) != 0)) { - result.displayAdsLink_ = displayAdsLink_; - to_bitField1_ |= 0x02000000; - } - if (((from_bitField2_ & 0x00000200) != 0)) { - result.displayAdsValue_ = displayAdsValue_; - to_bitField1_ |= 0x04000000; - } - if (((from_bitField2_ & 0x00000400) != 0)) { - promotionIds_.makeImmutable(); - result.promotionIds_ = promotionIds_; - } - if (((from_bitField2_ & 0x00000800) != 0)) { - result.pickupMethod_ = pickupMethod_; - to_bitField1_ |= 0x08000000; - } - if (((from_bitField2_ & 0x00001000) != 0)) { - result.pickupSla_ = pickupSla_; - to_bitField1_ |= 0x10000000; - } - if (((from_bitField2_ & 0x00002000) != 0)) { - result.linkTemplate_ = linkTemplate_; - to_bitField1_ |= 0x20000000; - } - if (((from_bitField2_ & 0x00004000) != 0)) { - result.mobileLinkTemplate_ = mobileLinkTemplate_; - to_bitField1_ |= 0x40000000; - } - if (((from_bitField2_ & 0x00008000) != 0)) { - result.customLabel0_ = customLabel0_; - to_bitField1_ |= 0x80000000; - } - int to_bitField2_ = 0; - if (((from_bitField2_ & 0x00010000) != 0)) { - result.customLabel1_ = customLabel1_; - to_bitField2_ |= 0x00000001; - } - if (((from_bitField2_ & 0x00020000) != 0)) { - result.customLabel2_ = customLabel2_; - to_bitField2_ |= 0x00000002; - } - if (((from_bitField2_ & 0x00040000) != 0)) { - result.customLabel3_ = customLabel3_; - to_bitField2_ |= 0x00000004; - } - if (((from_bitField2_ & 0x00080000) != 0)) { - result.customLabel4_ = customLabel4_; - to_bitField2_ |= 0x00000008; - } - if (((from_bitField2_ & 0x00100000) != 0)) { - includedDestinations_.makeImmutable(); - result.includedDestinations_ = includedDestinations_; - } - if (((from_bitField2_ & 0x00200000) != 0)) { - excludedDestinations_.makeImmutable(); - result.excludedDestinations_ = excludedDestinations_; - } - if (((from_bitField2_ & 0x00400000) != 0)) { - shoppingAdsExcludedCountries_.makeImmutable(); - result.shoppingAdsExcludedCountries_ = shoppingAdsExcludedCountries_; - } - if (((from_bitField2_ & 0x00800000) != 0)) { - result.externalSellerId_ = externalSellerId_; - to_bitField2_ |= 0x00000010; - } - if (((from_bitField2_ & 0x01000000) != 0)) { - result.pause_ = pause_; - to_bitField2_ |= 0x00000020; - } - if (((from_bitField2_ & 0x02000000) != 0)) { - lifestyleImageLinks_.makeImmutable(); - result.lifestyleImageLinks_ = lifestyleImageLinks_; - } - if (((from_bitField2_ & 0x08000000) != 0)) { - result.virtualModelLink_ = virtualModelLink_; - to_bitField2_ |= 0x00000040; - } - if (((from_bitField2_ & 0x20000000) != 0)) { - result.structuredTitle_ = - structuredTitleBuilder_ == null ? structuredTitle_ : structuredTitleBuilder_.build(); - to_bitField2_ |= 0x00000080; - } - if (((from_bitField2_ & 0x40000000) != 0)) { - result.structuredDescription_ = - structuredDescriptionBuilder_ == null - ? structuredDescription_ - : structuredDescriptionBuilder_.build(); - to_bitField2_ |= 0x00000100; - } - if (((from_bitField2_ & 0x80000000) != 0)) { - result.autoPricingMinPrice_ = - autoPricingMinPriceBuilder_ == null - ? autoPricingMinPrice_ - : autoPricingMinPriceBuilder_.build(); - to_bitField2_ |= 0x00000200; - } - result.bitField1_ |= to_bitField1_; - result.bitField2_ |= to_bitField2_; - } + private java.lang.Object city_ = ""; - private void buildPartial3(com.google.shopping.merchant.products.v1.ProductAttributes result) { - int from_bitField3_ = bitField3_; - if (((from_bitField3_ & 0x00000002) != 0)) { - videoLinks_.makeImmutable(); - result.videoLinks_ = videoLinks_; + /** + * + * + *
+       * The city such as Seattle, New York, etc.
+       * 
+ * + * string city = 3; + * + * @return The city. + */ + public java.lang.String getCity() { + java.lang.Object ref = city_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + city_ = s; + return s; + } else { + return (java.lang.String) ref; + } } - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof com.google.shopping.merchant.products.v1.ProductAttributes) { - return mergeFrom((com.google.shopping.merchant.products.v1.ProductAttributes) other); - } else { - super.mergeFrom(other); - return this; + /** + * + * + *
+       * The city such as Seattle, New York, etc.
+       * 
+ * + * string city = 3; + * + * @return The bytes for city. + */ + public com.google.protobuf.ByteString getCityBytes() { + java.lang.Object ref = city_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + city_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - } - public Builder mergeFrom(com.google.shopping.merchant.products.v1.ProductAttributes other) { - if (other == com.google.shopping.merchant.products.v1.ProductAttributes.getDefaultInstance()) - return this; - if (other.hasIdentifierExists()) { - setIdentifierExists(other.getIdentifierExists()); - } - if (other.hasIsBundle()) { - setIsBundle(other.getIsBundle()); - } - if (other.hasTitle()) { - title_ = other.title_; + /** + * + * + *
+       * The city such as Seattle, New York, etc.
+       * 
+ * + * string city = 3; + * + * @param value The city to set. + * @return This builder for chaining. + */ + public Builder setCity(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + city_ = value; bitField0_ |= 0x00000004; onChanged(); + return this; } - if (other.hasDescription()) { - description_ = other.description_; - bitField0_ |= 0x00000008; - onChanged(); - } - if (other.hasLink()) { - link_ = other.link_; - bitField0_ |= 0x00000010; - onChanged(); - } - if (other.hasMobileLink()) { - mobileLink_ = other.mobileLink_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (other.hasCanonicalLink()) { - canonicalLink_ = other.canonicalLink_; - bitField0_ |= 0x00000040; + + /** + * + * + *
+       * The city such as Seattle, New York, etc.
+       * 
+ * + * string city = 3; + * + * @return This builder for chaining. + */ + public Builder clearCity() { + city_ = getDefaultInstance().getCity(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); + return this; } - if (other.hasImageLink()) { - imageLink_ = other.imageLink_; - bitField0_ |= 0x00000080; + + /** + * + * + *
+       * The city such as Seattle, New York, etc.
+       * 
+ * + * string city = 3; + * + * @param value The bytes for city to set. + * @return This builder for chaining. + */ + public Builder setCityBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + city_ = value; + bitField0_ |= 0x00000004; onChanged(); + return this; } - if (!other.additionalImageLinks_.isEmpty()) { - if (additionalImageLinks_.isEmpty()) { - additionalImageLinks_ = other.additionalImageLinks_; - bitField0_ |= 0x00000100; + + private java.lang.Object region_ = ""; + + /** + * + * + *
+       * The region(state), such as WA, OH, etc.
+       * 
+ * + * string region = 4; + * + * @return The region. + */ + public java.lang.String getRegion() { + java.lang.Object ref = region_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + region_ = s; + return s; } else { - ensureAdditionalImageLinksIsMutable(); - additionalImageLinks_.addAll(other.additionalImageLinks_); + return (java.lang.String) ref; } - onChanged(); - } - if (other.hasExpirationDate()) { - mergeExpirationDate(other.getExpirationDate()); - } - if (other.hasDisclosureDate()) { - mergeDisclosureDate(other.getDisclosureDate()); - } - if (other.hasAdult()) { - setAdult(other.getAdult()); - } - if (other.hasAgeGroup()) { - setAgeGroupValue(other.getAgeGroupValue()); - } - if (other.hasAvailability()) { - setAvailabilityValue(other.getAvailabilityValue()); } - if (other.hasAvailabilityDate()) { - mergeAvailabilityDate(other.getAvailabilityDate()); + + /** + * + * + *
+       * The region(state), such as WA, OH, etc.
+       * 
+ * + * string region = 4; + * + * @return The bytes for region. + */ + public com.google.protobuf.ByteString getRegionBytes() { + java.lang.Object ref = region_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + region_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - if (other.hasBrand()) { - brand_ = other.brand_; - bitField0_ |= 0x00008000; + + /** + * + * + *
+       * The region(state), such as WA, OH, etc.
+       * 
+ * + * string region = 4; + * + * @param value The region to set. + * @return This builder for chaining. + */ + public Builder setRegion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + region_ = value; + bitField0_ |= 0x00000008; onChanged(); + return this; } - if (other.hasColor()) { - color_ = other.color_; - bitField0_ |= 0x00010000; + + /** + * + * + *
+       * The region(state), such as WA, OH, etc.
+       * 
+ * + * string region = 4; + * + * @return This builder for chaining. + */ + public Builder clearRegion() { + region_ = getDefaultInstance().getRegion(); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); + return this; } - if (other.hasCondition()) { - setConditionValue(other.getConditionValue()); - } - if (other.hasGender()) { - setGenderValue(other.getGenderValue()); - } - if (other.hasGoogleProductCategory()) { - googleProductCategory_ = other.googleProductCategory_; - bitField0_ |= 0x00080000; + + /** + * + * + *
+       * The region(state), such as WA, OH, etc.
+       * 
+ * + * string region = 4; + * + * @param value The bytes for region to set. + * @return This builder for chaining. + */ + public Builder setRegionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + region_ = value; + bitField0_ |= 0x00000008; onChanged(); + return this; } - if (!other.gtins_.isEmpty()) { - if (gtins_.isEmpty()) { - gtins_ = other.gtins_; - bitField0_ |= 0x00100000; + + private java.lang.Object postalCode_ = ""; + + /** + * + * + *
+       * The postal code, such as 94043.
+       * 
+ * + * string postal_code = 5; + * + * @return The postalCode. + */ + public java.lang.String getPostalCode() { + java.lang.Object ref = postalCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + postalCode_ = s; + return s; } else { - ensureGtinsIsMutable(); - gtins_.addAll(other.gtins_); + return (java.lang.String) ref; } - onChanged(); } - if (other.hasItemGroupId()) { - itemGroupId_ = other.itemGroupId_; - bitField0_ |= 0x00200000; - onChanged(); + + /** + * + * + *
+       * The postal code, such as 94043.
+       * 
+ * + * string postal_code = 5; + * + * @return The bytes for postalCode. + */ + public com.google.protobuf.ByteString getPostalCodeBytes() { + java.lang.Object ref = postalCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + postalCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - if (other.hasMaterial()) { - material_ = other.material_; - bitField0_ |= 0x00400000; + + /** + * + * + *
+       * The postal code, such as 94043.
+       * 
+ * + * string postal_code = 5; + * + * @param value The postalCode to set. + * @return This builder for chaining. + */ + public Builder setPostalCode(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + postalCode_ = value; + bitField0_ |= 0x00000010; onChanged(); + return this; } - if (other.hasMpn()) { - mpn_ = other.mpn_; - bitField0_ |= 0x00800000; + + /** + * + * + *
+       * The postal code, such as 94043.
+       * 
+ * + * string postal_code = 5; + * + * @return This builder for chaining. + */ + public Builder clearPostalCode() { + postalCode_ = getDefaultInstance().getPostalCode(); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); + return this; } - if (other.hasPattern()) { - pattern_ = other.pattern_; - bitField0_ |= 0x01000000; + + /** + * + * + *
+       * The postal code, such as 94043.
+       * 
+ * + * string postal_code = 5; + * + * @param value The bytes for postalCode to set. + * @return This builder for chaining. + */ + public Builder setPostalCodeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + postalCode_ = value; + bitField0_ |= 0x00000010; onChanged(); + return this; } - if (other.hasPrice()) { - mergePrice(other.getPrice()); - } - if (other.hasMaximumRetailPrice()) { - mergeMaximumRetailPrice(other.getMaximumRetailPrice()); - } - if (other.hasInstallment()) { - mergeInstallment(other.getInstallment()); - } - if (other.hasSubscriptionCost()) { - mergeSubscriptionCost(other.getSubscriptionCost()); - } - if (other.hasLoyaltyPoints()) { - mergeLoyaltyPoints(other.getLoyaltyPoints()); - } - if (loyaltyProgramsBuilder_ == null) { - if (!other.loyaltyPrograms_.isEmpty()) { - if (loyaltyPrograms_.isEmpty()) { - loyaltyPrograms_ = other.loyaltyPrograms_; - bitField0_ = (bitField0_ & ~0x40000000); - } else { - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.addAll(other.loyaltyPrograms_); - } - onChanged(); - } - } else { - if (!other.loyaltyPrograms_.isEmpty()) { - if (loyaltyProgramsBuilder_.isEmpty()) { - loyaltyProgramsBuilder_.dispose(); - loyaltyProgramsBuilder_ = null; - loyaltyPrograms_ = other.loyaltyPrograms_; - bitField0_ = (bitField0_ & ~0x40000000); - loyaltyProgramsBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetLoyaltyProgramsFieldBuilder() - : null; - } else { - loyaltyProgramsBuilder_.addAllMessages(other.loyaltyPrograms_); + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DisplayAddress 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.products.v1.ProductAttributes.DisplayAddress + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface UnitAreaOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.UnitArea) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * The area value.
+     * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + boolean hasValue(); + + /** + * + * + *
+     * The area value.
+     * 
+ * + * optional double value = 1; + * + * @return The value. + */ + double getValue(); + + /** + * + * + *
+     * The unit of area.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * @return The enum numeric value on the wire for unit. + */ + int getUnitValue(); + + /** + * + * + *
+     * The unit of area.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * @return The unit. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit getUnit(); + } + + /** + * + * + *
+   * The unit area of the property.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.UnitArea} + */ + public static final class UnitArea extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.UnitArea) + UnitAreaOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "UnitArea"); + } + + // Use UnitArea.newBuilder() to construct. + private UnitArea(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private UnitArea() { + unit_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.class, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Builder.class); + } + + /** + * + * + *
+     * The unit of area.
+     * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit} + */ + public enum Unit implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + UNIT_UNSPECIFIED(0), + /** + * + * + *
+       * Square meters.
+       * 
+ * + * SQM = 1; + */ + SQM(1), + /** + * + * + *
+       * Square feet.
+       * 
+ * + * SQFT = 2; + */ + SQFT(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Unit"); } - if (!other.productTypes_.isEmpty()) { - if (productTypes_.isEmpty()) { - productTypes_ = other.productTypes_; - bitField0_ |= 0x80000000; - } else { - ensureProductTypesIsMutable(); - productTypes_.addAll(other.productTypes_); + + /** + * + * + *
+       * Unspecified unit.
+       * 
+ * + * UNIT_UNSPECIFIED = 0; + */ + public static final int UNIT_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Square meters.
+       * 
+ * + * SQM = 1; + */ + public static final int SQM_VALUE = 1; + + /** + * + * + *
+       * Square feet.
+       * 
+ * + * SQFT = 2; + */ + public static final int SQFT_VALUE = 2; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); } - onChanged(); - } - if (other.hasSalePrice()) { - mergeSalePrice(other.getSalePrice()); + return value; } - if (other.hasSalePriceEffectiveDate()) { - mergeSalePriceEffectiveDate(other.getSalePriceEffectiveDate()); + + /** + * @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 Unit valueOf(int value) { + return forNumber(value); } - if (other.hasSellOnGoogleQuantity()) { - setSellOnGoogleQuantity(other.getSellOnGoogleQuantity()); + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Unit forNumber(int value) { + switch (value) { + case 0: + return UNIT_UNSPECIFIED; + case 1: + return SQM; + case 2: + return SQFT; + default: + return null; + } } - if (other.hasProductHeight()) { - mergeProductHeight(other.getProductHeight()); + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; } - if (other.hasProductLength()) { - mergeProductLength(other.getProductLength()); + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Unit findValueByNumber(int number) { + return Unit.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()); } - if (other.hasProductWidth()) { - mergeProductWidth(other.getProductWidth()); + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); } - if (other.hasProductWeight()) { - mergeProductWeight(other.getProductWeight()); + + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.getDescriptor() + .getEnumTypes() + .get(0); } - if (shippingBuilder_ == null) { - if (!other.shipping_.isEmpty()) { - if (shipping_.isEmpty()) { - shipping_ = other.shipping_; - bitField1_ = (bitField1_ & ~0x00000080); - } else { - ensureShippingIsMutable(); - shipping_.addAll(other.shipping_); - } - onChanged(); + + private static final Unit[] VALUES = values(); + + public static Unit valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); } - } else { - if (!other.shipping_.isEmpty()) { - if (shippingBuilder_.isEmpty()) { - shippingBuilder_.dispose(); - shippingBuilder_ = null; - shipping_ = other.shipping_; - bitField1_ = (bitField1_ & ~0x00000080); - shippingBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetShippingFieldBuilder() - : null; - } else { - shippingBuilder_.addAllMessages(other.shipping_); - } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; } + return VALUES[desc.getIndex()]; } - if (carrierShippingBuilder_ == null) { - if (!other.carrierShipping_.isEmpty()) { - if (carrierShipping_.isEmpty()) { - carrierShipping_ = other.carrierShipping_; - bitField1_ = (bitField1_ & ~0x00000100); - } else { - ensureCarrierShippingIsMutable(); - carrierShipping_.addAll(other.carrierShipping_); - } - onChanged(); - } - } else { - if (!other.carrierShipping_.isEmpty()) { - if (carrierShippingBuilder_.isEmpty()) { - carrierShippingBuilder_.dispose(); - carrierShippingBuilder_ = null; - carrierShipping_ = other.carrierShipping_; - bitField1_ = (bitField1_ & ~0x00000100); - carrierShippingBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetCarrierShippingFieldBuilder() - : null; - } else { - carrierShippingBuilder_.addAllMessages(other.carrierShipping_); - } - } + + private final int value; + + private Unit(int value) { + this.value = value; } - if (freeShippingThresholdBuilder_ == null) { - if (!other.freeShippingThreshold_.isEmpty()) { - if (freeShippingThreshold_.isEmpty()) { - freeShippingThreshold_ = other.freeShippingThreshold_; - bitField1_ = (bitField1_ & ~0x00000200); - } else { - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.addAll(other.freeShippingThreshold_); - } - onChanged(); - } - } else { - if (!other.freeShippingThreshold_.isEmpty()) { - if (freeShippingThresholdBuilder_.isEmpty()) { - freeShippingThresholdBuilder_.dispose(); - freeShippingThresholdBuilder_ = null; - freeShippingThreshold_ = other.freeShippingThreshold_; - bitField1_ = (bitField1_ & ~0x00000200); - freeShippingThresholdBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetFreeShippingThresholdFieldBuilder() - : null; - } else { - freeShippingThresholdBuilder_.addAllMessages(other.freeShippingThreshold_); - } - } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit) + } + + private int bitField0_; + public static final int VALUE_FIELD_NUMBER = 1; + private double value_ = 0D; + + /** + * + * + *
+     * The area value.
+     * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * The area value.
+     * 
+ * + * optional double value = 1; + * + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; + } + + public static final int UNIT_FIELD_NUMBER = 2; + private int unit_ = 0; + + /** + * + * + *
+     * The unit of area.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; + } + + /** + * + * + *
+     * The unit of area.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit.forNumber(unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit.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.writeDouble(1, value_); } - if (other.hasShippingWeight()) { - mergeShippingWeight(other.getShippingWeight()); + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + output.writeEnum(2, unit_); } - if (other.hasShippingLength()) { - mergeShippingLength(other.getShippingLength()); + 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.computeDoubleSize(1, value_); } - if (other.hasShippingWidth()) { - mergeShippingWidth(other.getShippingWidth()); + if (unit_ + != com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit + .UNIT_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, unit_); } - if (other.hasShippingHeight()) { - mergeShippingHeight(other.getShippingHeight()); + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; } - if (other.hasMaxHandlingTime()) { - setMaxHandlingTime(other.getMaxHandlingTime()); + if (!(obj instanceof com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea)) { + return super.equals(obj); } - if (other.hasMinHandlingTime()) { - setMinHandlingTime(other.getMinHandlingTime()); + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea other = + (com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea) obj; + + if (hasValue() != other.hasValue()) return false; + if (hasValue()) { + if (java.lang.Double.doubleToLongBits(getValue()) + != java.lang.Double.doubleToLongBits(other.getValue())) return false; } - if (shippingHandlingBusinessDaysBuilder_ == null) { - if (!other.shippingHandlingBusinessDays_.isEmpty()) { - if (shippingHandlingBusinessDays_.isEmpty()) { - shippingHandlingBusinessDays_ = other.shippingHandlingBusinessDays_; - bitField1_ = (bitField1_ & ~0x00010000); - } else { - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.addAll(other.shippingHandlingBusinessDays_); - } - onChanged(); - } - } else { - if (!other.shippingHandlingBusinessDays_.isEmpty()) { - if (shippingHandlingBusinessDaysBuilder_.isEmpty()) { - shippingHandlingBusinessDaysBuilder_.dispose(); - shippingHandlingBusinessDaysBuilder_ = null; - shippingHandlingBusinessDays_ = other.shippingHandlingBusinessDays_; - bitField1_ = (bitField1_ & ~0x00010000); - shippingHandlingBusinessDaysBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetShippingHandlingBusinessDaysFieldBuilder() - : null; - } else { - shippingHandlingBusinessDaysBuilder_.addAllMessages( - other.shippingHandlingBusinessDays_); - } - } + if (unit_ != other.unit_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; } - if (shippingTransitBusinessDaysBuilder_ == null) { - if (!other.shippingTransitBusinessDays_.isEmpty()) { - if (shippingTransitBusinessDays_.isEmpty()) { - shippingTransitBusinessDays_ = other.shippingTransitBusinessDays_; - bitField1_ = (bitField1_ & ~0x00020000); - } else { - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.addAll(other.shippingTransitBusinessDays_); - } - onChanged(); - } - } else { - if (!other.shippingTransitBusinessDays_.isEmpty()) { - if (shippingTransitBusinessDaysBuilder_.isEmpty()) { - shippingTransitBusinessDaysBuilder_.dispose(); - shippingTransitBusinessDaysBuilder_ = null; - shippingTransitBusinessDays_ = other.shippingTransitBusinessDays_; - bitField1_ = (bitField1_ & ~0x00020000); - shippingTransitBusinessDaysBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetShippingTransitBusinessDaysFieldBuilder() - : null; - } else { - shippingTransitBusinessDaysBuilder_.addAllMessages(other.shippingTransitBusinessDays_); - } - } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasValue()) { + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getValue())); } - if (handlingCutoffTimesBuilder_ == null) { - if (!other.handlingCutoffTimes_.isEmpty()) { - if (handlingCutoffTimes_.isEmpty()) { - handlingCutoffTimes_ = other.handlingCutoffTimes_; - bitField1_ = (bitField1_ & ~0x00040000); - } else { - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.addAll(other.handlingCutoffTimes_); - } - onChanged(); - } - } else { - if (!other.handlingCutoffTimes_.isEmpty()) { - if (handlingCutoffTimesBuilder_.isEmpty()) { - handlingCutoffTimesBuilder_.dispose(); - handlingCutoffTimesBuilder_ = null; - handlingCutoffTimes_ = other.handlingCutoffTimes_; - bitField1_ = (bitField1_ & ~0x00040000); - handlingCutoffTimesBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetHandlingCutoffTimesFieldBuilder() - : null; - } else { - handlingCutoffTimesBuilder_.addAllMessages(other.handlingCutoffTimes_); - } - } + hash = (37 * hash) + UNIT_FIELD_NUMBER; + hash = (53 * hash) + unit_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea 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.products.v1.ProductAttributes.UnitArea parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea 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.products.v1.ProductAttributes.UnitArea parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes.UnitArea 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * The unit area of the property.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.UnitArea} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.UnitArea) + com.google.shopping.merchant.products.v1.ProductAttributes.UnitAreaOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_descriptor; } - if (other.hasShippingLabel()) { - shippingLabel_ = other.shippingLabel_; - bitField1_ |= 0x00080000; - onChanged(); + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.class, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Builder.class); } - if (other.hasReturnPolicyLabel()) { - returnPolicyLabel_ = other.returnPolicyLabel_; - bitField1_ |= 0x00100000; - onChanged(); + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); } - if (other.hasTransitTimeLabel()) { - transitTimeLabel_ = other.transitTimeLabel_; - bitField1_ |= 0x00200000; - onChanged(); + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + value_ = 0D; + unit_ = 0; + return this; } - if (other.hasSize()) { - size_ = other.size_; - bitField1_ |= 0x00400000; - onChanged(); + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_descriptor; } - if (other.hasSizeSystem()) { - setSizeSystemValue(other.getSizeSystemValue()); + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + .getDefaultInstance(); } - if (!other.sizeTypes_.isEmpty()) { - if (sizeTypes_.isEmpty()) { - sizeTypes_ = other.sizeTypes_; - sizeTypes_.makeImmutable(); - bitField1_ |= 0x01000000; - } else { - ensureSizeTypesIsMutable(); - sizeTypes_.addAll(other.sizeTypes_); + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea build() { + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); } - onChanged(); - } - if (other.hasEnergyEfficiencyClass()) { - setEnergyEfficiencyClassValue(other.getEnergyEfficiencyClassValue()); - } - if (other.hasMinEnergyEfficiencyClass()) { - setMinEnergyEfficiencyClassValue(other.getMinEnergyEfficiencyClassValue()); - } - if (other.hasMaxEnergyEfficiencyClass()) { - setMaxEnergyEfficiencyClassValue(other.getMaxEnergyEfficiencyClassValue()); - } - if (other.hasUnitPricingMeasure()) { - mergeUnitPricingMeasure(other.getUnitPricingMeasure()); - } - if (other.hasUnitPricingBaseMeasure()) { - mergeUnitPricingBaseMeasure(other.getUnitPricingBaseMeasure()); - } - if (other.hasMultipack()) { - setMultipack(other.getMultipack()); - } - if (other.hasAdsGrouping()) { - adsGrouping_ = other.adsGrouping_; - bitField1_ |= 0x80000000; - onChanged(); + return result; } - if (!other.adsLabels_.isEmpty()) { - if (adsLabels_.isEmpty()) { - adsLabels_ = other.adsLabels_; - bitField2_ |= 0x00000001; - } else { - ensureAdsLabelsIsMutable(); - adsLabels_.addAll(other.adsLabels_); + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea result = + new com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea(this); + if (bitField0_ != 0) { + buildPartial0(result); } - onChanged(); - } - if (other.hasAdsRedirect()) { - adsRedirect_ = other.adsRedirect_; - bitField2_ |= 0x00000002; - onChanged(); - } - if (other.hasCostOfGoodsSold()) { - mergeCostOfGoodsSold(other.getCostOfGoodsSold()); + onBuilt(); + return result; } - if (productDetailsBuilder_ == null) { - if (!other.productDetails_.isEmpty()) { - if (productDetails_.isEmpty()) { - productDetails_ = other.productDetails_; - bitField2_ = (bitField2_ & ~0x00000008); - } else { - ensureProductDetailsIsMutable(); - productDetails_.addAll(other.productDetails_); - } - onChanged(); + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.value_ = value_; + to_bitField0_ |= 0x00000001; } - } else { - if (!other.productDetails_.isEmpty()) { - if (productDetailsBuilder_.isEmpty()) { - productDetailsBuilder_.dispose(); - productDetailsBuilder_ = null; - productDetails_ = other.productDetails_; - bitField2_ = (bitField2_ & ~0x00000008); - productDetailsBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetProductDetailsFieldBuilder() - : null; - } else { - productDetailsBuilder_.addAllMessages(other.productDetails_); - } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.unit_ = unit_; } + result.bitField0_ |= to_bitField0_; } - if (!other.productHighlights_.isEmpty()) { - if (productHighlights_.isEmpty()) { - productHighlights_ = other.productHighlights_; - bitField2_ |= 0x00000010; + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea) other); } else { - ensureProductHighlightsIsMutable(); - productHighlights_.addAll(other.productHighlights_); + super.mergeFrom(other); + return this; } - onChanged(); - } - if (other.hasDisplayAdsId()) { - displayAdsId_ = other.displayAdsId_; - bitField2_ |= 0x00000020; - onChanged(); } - if (!other.displayAdsSimilarIds_.isEmpty()) { - if (displayAdsSimilarIds_.isEmpty()) { - displayAdsSimilarIds_ = other.displayAdsSimilarIds_; - bitField2_ |= 0x00000040; - } else { - ensureDisplayAdsSimilarIdsIsMutable(); - displayAdsSimilarIds_.addAll(other.displayAdsSimilarIds_); + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + .getDefaultInstance()) return this; + if (other.hasValue()) { + setValue(other.getValue()); } - onChanged(); - } - if (other.hasDisplayAdsTitle()) { - displayAdsTitle_ = other.displayAdsTitle_; - bitField2_ |= 0x00000080; - onChanged(); - } - if (other.hasDisplayAdsLink()) { - displayAdsLink_ = other.displayAdsLink_; - bitField2_ |= 0x00000100; - onChanged(); - } - if (other.hasDisplayAdsValue()) { - setDisplayAdsValue(other.getDisplayAdsValue()); - } - if (!other.promotionIds_.isEmpty()) { - if (promotionIds_.isEmpty()) { - promotionIds_ = other.promotionIds_; - bitField2_ |= 0x00000400; - } else { - ensurePromotionIdsIsMutable(); - promotionIds_.addAll(other.promotionIds_); + if (other.unit_ != 0) { + setUnitValue(other.getUnitValue()); } + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); + return this; } - if (other.hasPickupMethod()) { - setPickupMethodValue(other.getPickupMethodValue()); + + @java.lang.Override + public final boolean isInitialized() { + return true; } - if (other.hasPickupSla()) { - setPickupSlaValue(other.getPickupSlaValue()); + + @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 9: + { + value_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } // case 9 + case 16: + { + unit_ = 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; } - if (other.hasLinkTemplate()) { - linkTemplate_ = other.linkTemplate_; - bitField2_ |= 0x00002000; - onChanged(); + + private int bitField0_; + + private double value_; + + /** + * + * + *
+       * The area value.
+       * 
+ * + * optional double value = 1; + * + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); } - if (other.hasMobileLinkTemplate()) { - mobileLinkTemplate_ = other.mobileLinkTemplate_; - bitField2_ |= 0x00004000; - onChanged(); + + /** + * + * + *
+       * The area value.
+       * 
+ * + * optional double value = 1; + * + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; } - if (other.hasCustomLabel0()) { - customLabel0_ = other.customLabel0_; - bitField2_ |= 0x00008000; + + /** + * + * + *
+       * The area value.
+       * 
+ * + * optional double value = 1; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(double value) { + + value_ = value; + bitField0_ |= 0x00000001; onChanged(); + return this; } - if (other.hasCustomLabel1()) { - customLabel1_ = other.customLabel1_; - bitField2_ |= 0x00010000; + + /** + * + * + *
+       * The area value.
+       * 
+ * + * optional double value = 1; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000001); + value_ = 0D; onChanged(); + return this; } - if (other.hasCustomLabel2()) { - customLabel2_ = other.customLabel2_; - bitField2_ |= 0x00020000; - onChanged(); + + private int unit_ = 0; + + /** + * + * + *
+       * The unit of area.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * + * @return The enum numeric value on the wire for unit. + */ + @java.lang.Override + public int getUnitValue() { + return unit_; } - if (other.hasCustomLabel3()) { - customLabel3_ = other.customLabel3_; - bitField2_ |= 0x00040000; + + /** + * + * + *
+       * The unit of area.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * + * @param value The enum numeric value on the wire for unit to set. + * @return This builder for chaining. + */ + public Builder setUnitValue(int value) { + unit_ = value; + bitField0_ |= 0x00000002; onChanged(); + return this; } - if (other.hasCustomLabel4()) { - customLabel4_ = other.customLabel4_; - bitField2_ |= 0x00080000; - onChanged(); + + /** + * + * + *
+       * The unit of area.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * + * @return The unit. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit getUnit() { + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit result = + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit.forNumber( + unit_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit.UNRECOGNIZED + : result; } - if (!other.includedDestinations_.isEmpty()) { - if (includedDestinations_.isEmpty()) { - includedDestinations_ = other.includedDestinations_; - includedDestinations_.makeImmutable(); - bitField2_ |= 0x00100000; - } else { - ensureIncludedDestinationsIsMutable(); - includedDestinations_.addAll(other.includedDestinations_); - } - onChanged(); - } - if (!other.excludedDestinations_.isEmpty()) { - if (excludedDestinations_.isEmpty()) { - excludedDestinations_ = other.excludedDestinations_; - excludedDestinations_.makeImmutable(); - bitField2_ |= 0x00200000; - } else { - ensureExcludedDestinationsIsMutable(); - excludedDestinations_.addAll(other.excludedDestinations_); - } - onChanged(); - } - if (!other.shoppingAdsExcludedCountries_.isEmpty()) { - if (shoppingAdsExcludedCountries_.isEmpty()) { - shoppingAdsExcludedCountries_ = other.shoppingAdsExcludedCountries_; - bitField2_ |= 0x00400000; - } else { - ensureShoppingAdsExcludedCountriesIsMutable(); - shoppingAdsExcludedCountries_.addAll(other.shoppingAdsExcludedCountries_); + + /** + * + * + *
+       * The unit of area.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * + * @param value The unit to set. + * @return This builder for chaining. + */ + public Builder setUnit( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit value) { + if (value == null) { + throw new NullPointerException(); } + bitField0_ |= 0x00000002; + unit_ = value.getNumber(); onChanged(); + return this; } - if (other.hasExternalSellerId()) { - externalSellerId_ = other.externalSellerId_; - bitField2_ |= 0x00800000; + + /** + * + * + *
+       * The unit of area.
+       * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Unit unit = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearUnit() { + bitField0_ = (bitField0_ & ~0x00000002); + unit_ = 0; onChanged(); + return this; } - if (other.hasPause()) { - setPauseValue(other.getPauseValue()); + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.UnitArea) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.UnitArea) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UnitArea 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.products.v1.ProductAttributes.UnitArea + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface PetPolicyOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Whether pets are allowed.
+     * 
+ * + * bool pets_allowed = 1; + * + * @return The petsAllowed. + */ + boolean getPetsAllowed(); + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return A list containing the petTypes. + */ + java.util.List + getPetTypesList(); + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return The count of petTypes. + */ + int getPetTypesCount(); + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index of the element to return. + * @return The petTypes at the given index. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType getPetTypes( + int index); + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return A list containing the enum numeric values on the wire for petTypes. + */ + java.util.List getPetTypesValueList(); + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of petTypes at the given index. + */ + int getPetTypesValue(int index); + } + + /** + * + * + *
+   * The pet policy of the property.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.PetPolicy} + */ + public static final class PetPolicy extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) + PetPolicyOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "PetPolicy"); + } + + // Use PetPolicy.newBuilder() to construct. + private PetPolicy(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private PetPolicy() { + petTypes_ = emptyIntList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.class, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.Builder.class); + } + + /** + * + * + *
+     * The pet types.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType} + */ + public enum PetType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * Unspecified pet type.
+       * 
+ * + * PET_TYPE_UNSPECIFIED = 0; + */ + PET_TYPE_UNSPECIFIED(0), + /** + * + * + *
+       * Cats.
+       * 
+ * + * CATS = 1; + */ + CATS(1), + /** + * + * + *
+       * Large dogs.
+       * 
+ * + * LARGE_DOGS = 2; + */ + LARGE_DOGS(2), + /** + * + * + *
+       * Small dogs.
+       * 
+ * + * SMALL_DOGS = 3; + */ + SMALL_DOGS(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "PetType"); } - if (!other.lifestyleImageLinks_.isEmpty()) { - if (lifestyleImageLinks_.isEmpty()) { - lifestyleImageLinks_ = other.lifestyleImageLinks_; - bitField2_ |= 0x02000000; - } else { - ensureLifestyleImageLinksIsMutable(); - lifestyleImageLinks_.addAll(other.lifestyleImageLinks_); + + /** + * + * + *
+       * Unspecified pet type.
+       * 
+ * + * PET_TYPE_UNSPECIFIED = 0; + */ + public static final int PET_TYPE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Cats.
+       * 
+ * + * CATS = 1; + */ + public static final int CATS_VALUE = 1; + + /** + * + * + *
+       * Large dogs.
+       * 
+ * + * LARGE_DOGS = 2; + */ + public static final int LARGE_DOGS_VALUE = 2; + + /** + * + * + *
+       * Small dogs.
+       * 
+ * + * SMALL_DOGS = 3; + */ + public static final int SMALL_DOGS_VALUE = 3; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); } - onChanged(); + return value; } - if (cloudExportAdditionalPropertiesBuilder_ == null) { - if (!other.cloudExportAdditionalProperties_.isEmpty()) { - if (cloudExportAdditionalProperties_.isEmpty()) { - cloudExportAdditionalProperties_ = other.cloudExportAdditionalProperties_; - bitField2_ = (bitField2_ & ~0x04000000); - } else { - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.addAll(other.cloudExportAdditionalProperties_); - } - onChanged(); - } - } else { - if (!other.cloudExportAdditionalProperties_.isEmpty()) { - if (cloudExportAdditionalPropertiesBuilder_.isEmpty()) { - cloudExportAdditionalPropertiesBuilder_.dispose(); - cloudExportAdditionalPropertiesBuilder_ = null; - cloudExportAdditionalProperties_ = other.cloudExportAdditionalProperties_; - bitField2_ = (bitField2_ & ~0x04000000); - cloudExportAdditionalPropertiesBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetCloudExportAdditionalPropertiesFieldBuilder() - : null; - } else { - cloudExportAdditionalPropertiesBuilder_.addAllMessages( - other.cloudExportAdditionalProperties_); - } + + /** + * @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 PetType 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 PetType forNumber(int value) { + switch (value) { + case 0: + return PET_TYPE_UNSPECIFIED; + case 1: + return CATS; + case 2: + return LARGE_DOGS; + case 3: + return SMALL_DOGS; + default: + return null; } } - if (other.hasVirtualModelLink()) { - virtualModelLink_ = other.virtualModelLink_; - bitField2_ |= 0x08000000; - onChanged(); + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; } - if (certificationsBuilder_ == null) { - if (!other.certifications_.isEmpty()) { - if (certifications_.isEmpty()) { - certifications_ = other.certifications_; - bitField2_ = (bitField2_ & ~0x10000000); - } else { - ensureCertificationsIsMutable(); - certifications_.addAll(other.certifications_); - } - onChanged(); - } - } else { - if (!other.certifications_.isEmpty()) { - if (certificationsBuilder_.isEmpty()) { - certificationsBuilder_.dispose(); - certificationsBuilder_ = null; - certifications_ = other.certifications_; - bitField2_ = (bitField2_ & ~0x10000000); - certificationsBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetCertificationsFieldBuilder() - : null; - } else { - certificationsBuilder_.addAllMessages(other.certifications_); - } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public PetType findValueByNumber(int number) { + return PetType.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()); } - if (other.hasStructuredTitle()) { - mergeStructuredTitle(other.getStructuredTitle()); - } - if (other.hasStructuredDescription()) { - mergeStructuredDescription(other.getStructuredDescription()); + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); } - if (other.hasAutoPricingMinPrice()) { - mergeAutoPricingMinPrice(other.getAutoPricingMinPrice()); + + public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.getDescriptor() + .getEnumTypes() + .get(0); } - if (sustainabilityIncentivesBuilder_ == null) { - if (!other.sustainabilityIncentives_.isEmpty()) { - if (sustainabilityIncentives_.isEmpty()) { - sustainabilityIncentives_ = other.sustainabilityIncentives_; - bitField3_ = (bitField3_ & ~0x00000001); - } else { - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.addAll(other.sustainabilityIncentives_); - } - onChanged(); + + private static final PetType[] VALUES = values(); + + public static PetType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); } - } else { - if (!other.sustainabilityIncentives_.isEmpty()) { - if (sustainabilityIncentivesBuilder_.isEmpty()) { - sustainabilityIncentivesBuilder_.dispose(); - sustainabilityIncentivesBuilder_ = null; - sustainabilityIncentives_ = other.sustainabilityIncentives_; - bitField3_ = (bitField3_ & ~0x00000001); - sustainabilityIncentivesBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders - ? internalGetSustainabilityIncentivesFieldBuilder() - : null; - } else { - sustainabilityIncentivesBuilder_.addAllMessages(other.sustainabilityIncentives_); - } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; } + return VALUES[desc.getIndex()]; } - if (!other.videoLinks_.isEmpty()) { - if (videoLinks_.isEmpty()) { - videoLinks_ = other.videoLinks_; - bitField3_ |= 0x00000002; - } else { - ensureVideoLinksIsMutable(); - videoLinks_.addAll(other.videoLinks_); - } - onChanged(); + + private final int value; + + private PetType(int value) { + this.value = value; } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType) + } + + public static final int PETS_ALLOWED_FIELD_NUMBER = 1; + private boolean petsAllowed_ = false; + + /** + * + * + *
+     * Whether pets are allowed.
+     * 
+ * + * bool pets_allowed = 1; + * + * @return The petsAllowed. + */ + @java.lang.Override + public boolean getPetsAllowed() { + return petsAllowed_; + } + + public static final int PET_TYPES_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList petTypes_ = emptyIntList(); + + private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType> + petTypes_converter_ = + new com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType>() { + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType + convert(int from) { + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType + result = + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType + .forNumber(from); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType + .UNRECOGNIZED + : result; + } + }; + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return A list containing the petTypes. + */ + @java.lang.Override + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType> + getPetTypesList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType>( + petTypes_, petTypes_converter_); + } + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return The count of petTypes. + */ + @java.lang.Override + public int getPetTypesCount() { + return petTypes_.size(); + } + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index of the element to return. + * @return The petTypes at the given index. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType getPetTypes( + int index) { + return petTypes_converter_.convert(petTypes_.getInt(index)); + } + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return A list containing the enum numeric values on the wire for petTypes. + */ + @java.lang.Override + public java.util.List getPetTypesValueList() { + return petTypes_; + } + + /** + * + * + *
+     * The pet types allowed.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of petTypes at the given index. + */ + @java.lang.Override + public int getPetTypesValue(int index) { + return petTypes_.getInt(index); } + private int petTypesMemoizedSerializedSize; + + 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 Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + getSerializedSize(); + if (petsAllowed_ != false) { + output.writeBool(1, petsAllowed_); } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: - { - externalSellerId_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00800000; - break; - } // case 10 - case 32: - { - identifierExists_ = input.readBool(); - bitField0_ |= 0x00000001; - break; - } // case 32 - case 40: - { - isBundle_ = input.readBool(); - bitField0_ |= 0x00000002; - break; - } // case 40 - case 50: - { - title_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 50 - case 58: - { - description_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 58 - case 66: - { - link_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 66 - case 74: - { - mobileLink_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 74 - case 82: - { - canonicalLink_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000040; - break; - } // case 82 - case 90: - { - imageLink_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000080; - break; - } // case 90 - case 98: - { - java.lang.String s = input.readStringRequireUtf8(); - ensureAdditionalImageLinksIsMutable(); - additionalImageLinks_.add(s); - break; - } // case 98 - case 104: - { - pause_ = input.readEnum(); - bitField2_ |= 0x01000000; - break; - } // case 104 - case 114: - { - java.lang.String s = input.readStringRequireUtf8(); - ensureLifestyleImageLinksIsMutable(); - lifestyleImageLinks_.add(s); - break; - } // case 114 - case 130: - { - input.readMessage( - internalGetExpirationDateFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000200; - break; - } // case 130 - case 136: - { - adult_ = input.readBool(); - bitField0_ |= 0x00000800; - break; - } // case 136 - case 144: - { - ageGroup_ = input.readEnum(); - bitField0_ |= 0x00001000; - break; - } // case 144 - case 152: - { - availability_ = input.readEnum(); - bitField0_ |= 0x00002000; - break; - } // case 152 - case 162: - { - input.readMessage( - internalGetAvailabilityDateFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00004000; - break; - } // case 162 - case 170: - { - brand_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00008000; - break; - } // case 170 - case 178: - { - color_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00010000; - break; - } // case 178 - case 184: - { - condition_ = input.readEnum(); - bitField0_ |= 0x00020000; - break; - } // case 184 - case 192: - { - gender_ = input.readEnum(); - bitField0_ |= 0x00040000; - break; - } // case 192 - case 202: - { - googleProductCategory_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00080000; - break; - } // case 202 - case 218: - { - itemGroupId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00200000; - break; - } // case 218 - case 226: - { - material_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00400000; - break; - } // case 226 - case 234: - { - mpn_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00800000; - break; - } // case 234 - case 242: - { - pattern_ = input.readStringRequireUtf8(); - bitField0_ |= 0x01000000; - break; - } // case 242 - case 250: - { - input.readMessage(internalGetPriceFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x02000000; - break; - } // case 250 - case 258: - { - input.readMessage( - internalGetInstallmentFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x08000000; - break; - } // case 258 - case 266: - { - input.readMessage( - internalGetSubscriptionCostFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x10000000; - break; - } // case 266 - case 274: - { - input.readMessage( - internalGetLoyaltyPointsFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x20000000; - break; - } // case 274 - case 282: - { - java.lang.String s = input.readStringRequireUtf8(); - ensureProductTypesIsMutable(); - productTypes_.add(s); - break; - } // case 282 - case 290: - { - input.readMessage( - internalGetSalePriceFieldBuilder().getBuilder(), extensionRegistry); - bitField1_ |= 0x00000001; - break; - } // case 290 - case 298: - { - input.readMessage( - internalGetSalePriceEffectiveDateFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00000002; - break; - } // case 298 - case 304: - { - sellOnGoogleQuantity_ = input.readInt64(); - bitField1_ |= 0x00000004; - break; - } // case 304 - case 314: - { - com.google.shopping.merchant.products.v1.Shipping m = - input.readMessage( - com.google.shopping.merchant.products.v1.Shipping.parser(), - extensionRegistry); - if (shippingBuilder_ == null) { - ensureShippingIsMutable(); - shipping_.add(m); - } else { - shippingBuilder_.addMessage(m); - } - break; - } // case 314 - case 322: - { - input.readMessage( - internalGetShippingWeightFieldBuilder().getBuilder(), extensionRegistry); - bitField1_ |= 0x00000400; - break; - } // case 322 - case 330: - { - input.readMessage( - internalGetShippingLengthFieldBuilder().getBuilder(), extensionRegistry); - bitField1_ |= 0x00000800; - break; - } // case 330 - case 338: - { - input.readMessage( - internalGetShippingWidthFieldBuilder().getBuilder(), extensionRegistry); - bitField1_ |= 0x00001000; - break; - } // case 338 - case 346: - { - input.readMessage( - internalGetShippingHeightFieldBuilder().getBuilder(), extensionRegistry); - bitField1_ |= 0x00002000; - break; - } // case 346 - case 352: - { - maxHandlingTime_ = input.readInt64(); - bitField1_ |= 0x00004000; - break; - } // case 352 - case 360: - { - minHandlingTime_ = input.readInt64(); - bitField1_ |= 0x00008000; - break; - } // case 360 - case 370: - { - shippingLabel_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00080000; - break; - } // case 370 - case 378: - { - transitTimeLabel_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00200000; - break; - } // case 378 - case 386: - { - size_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00400000; - break; - } // case 386 - case 392: - { - sizeSystem_ = input.readEnum(); - bitField1_ |= 0x00800000; + if (getPetTypesList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(petTypesMemoizedSerializedSize); + } + for (int i = 0; i < petTypes_.size(); i++) { + output.writeEnumNoTag(petTypes_.getInt(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (petsAllowed_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, petsAllowed_); + } + { + int dataSize = 0; + for (int i = 0; i < petTypes_.size(); i++) { + dataSize += + com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(petTypes_.getInt(i)); + } + size += dataSize; + if (!getPetTypesList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + petTypesMemoizedSerializedSize = dataSize; + } + 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.products.v1.ProductAttributes.PetPolicy)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy other = + (com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) obj; + + if (getPetsAllowed() != other.getPetsAllowed()) return false; + if (!petTypes_.equals(other.petTypes_)) 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) + PETS_ALLOWED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getPetsAllowed()); + if (getPetTypesCount() > 0) { + hash = (37 * hash) + PET_TYPES_FIELD_NUMBER; + hash = (53 * hash) + petTypes_.hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy 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.products.v1.ProductAttributes.PetPolicy parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy 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.products.v1.ProductAttributes.PetPolicy parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes.PetPolicy 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * The pet policy of the property.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.PetPolicy} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.class, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + petsAllowed_ = false; + petTypes_ = emptyIntList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy build() { + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy result = + new com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.petsAllowed_ = petsAllowed_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + petTypes_.makeImmutable(); + result.petTypes_ = petTypes_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + .getDefaultInstance()) return this; + if (other.getPetsAllowed() != false) { + setPetsAllowed(other.getPetsAllowed()); + } + if (!other.petTypes_.isEmpty()) { + if (petTypes_.isEmpty()) { + petTypes_ = other.petTypes_; + petTypes_.makeImmutable(); + bitField0_ |= 0x00000002; + } else { + ensurePetTypesIsMutable(); + petTypes_.addAll(other.petTypes_); + } + 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 392 - case 400: - { - int tmpRaw = input.readEnum(); - ensureSizeTypesIsMutable(); - sizeTypes_.addInt(tmpRaw); + case 8: + { + petsAllowed_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + int tmpRaw = input.readEnum(); + ensurePetTypesIsMutable(); + petTypes_.addInt(tmpRaw); + break; + } // case 16 + case 18: + { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensurePetTypesIsMutable(); + while (input.getBytesUntilLimit() > 0) { + petTypes_.addInt(input.readEnum()); + } + input.popLimit(limit); + 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 boolean petsAllowed_; + + /** + * + * + *
+       * Whether pets are allowed.
+       * 
+ * + * bool pets_allowed = 1; + * + * @return The petsAllowed. + */ + @java.lang.Override + public boolean getPetsAllowed() { + return petsAllowed_; + } + + /** + * + * + *
+       * Whether pets are allowed.
+       * 
+ * + * bool pets_allowed = 1; + * + * @param value The petsAllowed to set. + * @return This builder for chaining. + */ + public Builder setPetsAllowed(boolean value) { + + petsAllowed_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Whether pets are allowed.
+       * 
+ * + * bool pets_allowed = 1; + * + * @return This builder for chaining. + */ + public Builder clearPetsAllowed() { + bitField0_ = (bitField0_ & ~0x00000001); + petsAllowed_ = false; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList petTypes_ = emptyIntList(); + + private void ensurePetTypesIsMutable() { + if (!petTypes_.isModifiable()) { + petTypes_ = makeMutableCopy(petTypes_); + } + bitField0_ |= 0x00000002; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return A list containing the petTypes. + */ + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType> + getPetTypesList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType>( + petTypes_, petTypes_converter_); + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return The count of petTypes. + */ + public int getPetTypesCount() { + return petTypes_.size(); + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index of the element to return. + * @return The petTypes at the given index. + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType + getPetTypes(int index) { + return petTypes_converter_.convert(petTypes_.getInt(index)); + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index to set the value at. + * @param value The petTypes to set. + * @return This builder for chaining. + */ + public Builder setPetTypes( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePetTypesIsMutable(); + petTypes_.setInt(index, value.getNumber()); + onChanged(); + return this; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param value The petTypes to add. + * @return This builder for chaining. + */ + public Builder addPetTypes( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType value) { + if (value == null) { + throw new NullPointerException(); + } + ensurePetTypesIsMutable(); + petTypes_.addInt(value.getNumber()); + onChanged(); + return this; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param values The petTypes to add. + * @return This builder for chaining. + */ + public Builder addAllPetTypes( + java.lang.Iterable< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType> + values) { + ensurePetTypesIsMutable(); + for (com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType value : + values) { + petTypes_.addInt(value.getNumber()); + } + onChanged(); + return this; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return This builder for chaining. + */ + public Builder clearPetTypes() { + petTypes_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @return A list containing the enum numeric values on the wire for petTypes. + */ + public java.util.List getPetTypesValueList() { + petTypes_.makeImmutable(); + return petTypes_; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of petTypes at the given index. + */ + public int getPetTypesValue(int index) { + return petTypes_.getInt(index); + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for petTypes to set. + * @return This builder for chaining. + */ + public Builder setPetTypesValue(int index, int value) { + ensurePetTypesIsMutable(); + petTypes_.setInt(index, value); + onChanged(); + return this; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param value The enum numeric value on the wire for petTypes to add. + * @return This builder for chaining. + */ + public Builder addPetTypesValue(int value) { + ensurePetTypesIsMutable(); + petTypes_.addInt(value); + onChanged(); + return this; + } + + /** + * + * + *
+       * The pet types allowed.
+       * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.PetType pet_types = 2; + * + * + * @param values The enum numeric values on the wire for petTypes to add. + * @return This builder for chaining. + */ + public Builder addAllPetTypesValue(java.lang.Iterable values) { + ensurePetTypesIsMutable(); + for (int value : values) { + petTypes_.addInt(value); + } + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.PetPolicy) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PetPolicy 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.products.v1.ProductAttributes.PetPolicy + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface QuestionAndAnswerOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Required. The question text.
+     * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The question. + */ + java.lang.String getQuestion(); + + /** + * + * + *
+     * Required. The question text.
+     * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for question. + */ + com.google.protobuf.ByteString getQuestionBytes(); + + /** + * + * + *
+     * Required. The answer text.
+     * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The answer. + */ + java.lang.String getAnswer(); + + /** + * + * + *
+     * Required. The answer text.
+     * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for answer. + */ + com.google.protobuf.ByteString getAnswerBytes(); + } + + /** + * + * + *
+   * The question and answer for the product.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer} + */ + public static final class QuestionAndAnswer extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) + QuestionAndAnswerOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "QuestionAndAnswer"); + } + + // Use QuestionAndAnswer.newBuilder() to construct. + private QuestionAndAnswer(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private QuestionAndAnswer() { + question_ = ""; + answer_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.class, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + .class); + } + + public static final int QUESTION_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object question_ = ""; + + /** + * + * + *
+     * Required. The question text.
+     * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The question. + */ + @java.lang.Override + public java.lang.String getQuestion() { + java.lang.Object ref = question_; + 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(); + question_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The question text.
+     * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for question. + */ + @java.lang.Override + public com.google.protobuf.ByteString getQuestionBytes() { + java.lang.Object ref = question_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + question_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ANSWER_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object answer_ = ""; + + /** + * + * + *
+     * Required. The answer text.
+     * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The answer. + */ + @java.lang.Override + public java.lang.String getAnswer() { + java.lang.Object ref = answer_; + 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(); + answer_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The answer text.
+     * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for answer. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAnswerBytes() { + java.lang.Object ref = answer_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + answer_ = 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.GeneratedMessage.isStringEmpty(question_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, question_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(answer_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, answer_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(question_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, question_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(answer_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, answer_); + } + 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.products.v1.ProductAttributes.QuestionAndAnswer)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer other = + (com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) obj; + + if (!getQuestion().equals(other.getQuestion())) return false; + if (!getAnswer().equals(other.getAnswer())) 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) + QUESTION_FIELD_NUMBER; + hash = (53 * hash) + getQuestion().hashCode(); + hash = (37 * hash) + ANSWER_FIELD_NUMBER; + hash = (53 * hash) + getAnswer().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + 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.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + 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.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes.QuestionAndAnswer 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * The question and answer for the product.
+     * 
+ * + * Protobuf type {@code + * google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.class, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + question_ = ""; + answer_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer build() { + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer result = + new com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.question_ = question_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.answer_ = answer_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + .getDefaultInstance()) return this; + if (!other.getQuestion().isEmpty()) { + question_ = other.question_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getAnswer().isEmpty()) { + answer_ = other.answer_; + 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: + { + question_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + answer_ = 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 question_ = ""; + + /** + * + * + *
+       * Required. The question text.
+       * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The question. + */ + public java.lang.String getQuestion() { + java.lang.Object ref = question_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + question_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The question text.
+       * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for question. + */ + public com.google.protobuf.ByteString getQuestionBytes() { + java.lang.Object ref = question_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + question_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The question text.
+       * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The question to set. + * @return This builder for chaining. + */ + public Builder setQuestion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + question_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The question text.
+       * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearQuestion() { + question_ = getDefaultInstance().getQuestion(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The question text.
+       * 
+ * + * string question = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for question to set. + * @return This builder for chaining. + */ + public Builder setQuestionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + question_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object answer_ = ""; + + /** + * + * + *
+       * Required. The answer text.
+       * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The answer. + */ + public java.lang.String getAnswer() { + java.lang.Object ref = answer_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + answer_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The answer text.
+       * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for answer. + */ + public com.google.protobuf.ByteString getAnswerBytes() { + java.lang.Object ref = answer_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + answer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The answer text.
+       * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The answer to set. + * @return This builder for chaining. + */ + public Builder setAnswer(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + answer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The answer text.
+       * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearAnswer() { + answer_ = getDefaultInstance().getAnswer(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The answer text.
+       * 
+ * + * string answer = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for answer to set. + * @return This builder for chaining. + */ + public Builder setAnswerBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + answer_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer) + private static final com.google.shopping.merchant.products.v1.ProductAttributes + .QuestionAndAnswer + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public QuestionAndAnswer 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.products.v1.ProductAttributes.QuestionAndAnswer + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface VariantOptionOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.VariantOption) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Required. The name of the variant. For example, "Color", "Memory",
+     * "Size", "Length"
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The name. + */ + java.lang.String getName(); + + /** + * + * + *
+     * Required. The name of the variant. For example, "Color", "Memory",
+     * "Size", "Length"
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * + * + *
+     * Required. The value of the variant. For example, "Red", "128GB", "XL",
+     * "100cm"
+     * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The value. + */ + java.lang.String getValue(); + + /** + * + * + *
+     * Required. The value of the variant. For example, "Red", "128GB", "XL",
+     * "100cm"
+     * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for value. + */ + com.google.protobuf.ByteString getValueBytes(); + } + + /** + * + * + *
+   * Additional product variants for the product.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.VariantOption} + */ + public static final class VariantOption extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.VariantOption) + VariantOptionOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "VariantOption"); + } + + // Use VariantOption.newBuilder() to construct. + private VariantOption(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private VariantOption() { + name_ = ""; + value_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.class, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder + .class); + } + + public static final int NAME_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * + * + *
+     * Required. The name of the variant. For example, "Color", "Memory",
+     * "Size", "Length"
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + 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(); + name_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The name of the variant. For example, "Color", "Memory",
+     * "Size", "Length"
+     * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VALUE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object value_ = ""; + + /** + * + * + *
+     * Required. The value of the variant. For example, "Red", "128GB", "XL",
+     * "100cm"
+     * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The value. + */ + @java.lang.Override + public java.lang.String getValue() { + java.lang.Object ref = value_; + 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(); + value_ = s; + return s; + } + } + + /** + * + * + *
+     * Required. The value of the variant. For example, "Red", "128GB", "XL",
+     * "100cm"
+     * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for value. + */ + @java.lang.Override + public com.google.protobuf.ByteString getValueBytes() { + java.lang.Object ref = value_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + value_ = 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.GeneratedMessage.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, name_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(value_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, value_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(value_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, value_); + } + 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.products.v1.ProductAttributes.VariantOption)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption other = + (com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption) obj; + + if (!getName().equals(other.getName())) return false; + if (!getValue().equals(other.getValue())) 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) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + getValue().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + 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.products.v1.ProductAttributes.VariantOption + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + 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.products.v1.ProductAttributes.VariantOption + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes.VariantOption 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * Additional product variants for the product.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.VariantOption} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.VariantOption) + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.class, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + value_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption build() { + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption result = + new com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.value_ = value_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + .getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getValue().isEmpty()) { + value_ = other.value_; + 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: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + value_ = 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 name_ = ""; + + /** + * + * + *
+       * Required. The name of the variant. For example, "Color", "Memory",
+       * "Size", "Length"
+       * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The name of the variant. For example, "Color", "Memory",
+       * "Size", "Length"
+       * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The name of the variant. For example, "Color", "Memory",
+       * "Size", "Length"
+       * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The name of the variant. For example, "Color", "Memory",
+       * "Size", "Length"
+       * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The name of the variant. For example, "Color", "Memory",
+       * "Size", "Length"
+       * 
+ * + * string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object value_ = ""; + + /** + * + * + *
+       * Required. The value of the variant. For example, "Red", "128GB", "XL",
+       * "100cm"
+       * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The value. + */ + public java.lang.String getValue() { + java.lang.Object ref = value_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + value_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+       * Required. The value of the variant. For example, "Red", "128GB", "XL",
+       * "100cm"
+       * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for value. + */ + public com.google.protobuf.ByteString getValueBytes() { + java.lang.Object ref = value_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + value_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+       * Required. The value of the variant. For example, "Red", "128GB", "XL",
+       * "100cm"
+       * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The value of the variant. For example, "Red", "128GB", "XL",
+       * "100cm"
+       * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearValue() { + value_ = getDefaultInstance().getValue(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The value of the variant. For example, "Red", "128GB", "XL",
+       * "100cm"
+       * 
+ * + * string value = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for value to set. + * @return This builder for chaining. + */ + public Builder setValueBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + value_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.VariantOption) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.VariantOption) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VariantOption 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.products.v1.ProductAttributes.VariantOption + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RelatedProductOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * Required. The type of the relationship between this product and the
+     * related product.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for relationshipType. + */ + int getRelationshipTypeValue(); + + /** + * + * + *
+     * Required. The type of the relationship between this product and the
+     * related product.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The relationshipType. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType + getRelationshipType(); + + /** + * + * + *
+     * Required. The type of the identifier of the related product.
+     * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+     * or [product ID](https://support.google.com/merchants/answer/6324405).
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for idType. + */ + int getIdTypeValue(); + + /** + * + * + *
+     * Required. The type of the identifier of the related product.
+     * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+     * or [product ID](https://support.google.com/merchants/answer/6324405).
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The idType. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType getIdType(); + + /** + * + * + *
+     * Required. The identifier of the related product.
+     * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The id. + */ + java.lang.String getId(); + + /** + * + * + *
+     * Required. The identifier of the related product.
+     * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for id. + */ + com.google.protobuf.ByteString getIdBytes(); + } + + /** + * + * + *
+   * Specifies how other products are related to this product.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct} + */ + public static final class RelatedProduct extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) + RelatedProductOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "RelatedProduct"); + } + + // Use RelatedProduct.newBuilder() to construct. + private RelatedProduct(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private RelatedProduct() { + relationshipType_ = 0; + idType_ = 0; + id_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.class, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + .class); + } + + /** + * + * + *
+     * The various types of the relationships between this product and the
+     * related product.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType} + */ + public enum RelationshipType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * The relationship type is unspecified.
+       * 
+ * + * RELATIONSHIP_TYPE_UNSPECIFIED = 0; + */ + RELATIONSHIP_TYPE_UNSPECIFIED(0), + /** + * + * + *
+       * Part of a set of products that are often purchased together.
+       * 
+ * + * PART_OF_SET = 1; + */ + PART_OF_SET(1), + /** + * + * + *
+       * Part that is necessary for the product to function, for example a
+       * battery for a battery-operated lamp.
+       * 
+ * + * REQUIRED_PART = 2; + */ + REQUIRED_PART(2), + /** + * + * + *
+       * A product that this product is often purchased together with, for
+       * example a phone case with a phone.
+       * 
+ * + * OFTEN_BOUGHT_WITH = 3; + */ + OFTEN_BOUGHT_WITH(3), + /** + * + * + *
+       * Product that this product can be substituted for. For example a printer
+       * comparable in function to another printer.
+       * 
+ * + * SUBSTITUTE = 4; + */ + SUBSTITUTE(4), + /** + * + * + *
+       * An identical product sold under a different brand, for example a
+       * cheaper house brand.
+       * 
+ * + * DIFFERENT_BRAND = 5; + */ + DIFFERENT_BRAND(5), + /** + * + * + *
+       * An accessory to this product, for example a side table that matches the
+       * style of a couch.
+       * 
+ * + * ACCESSORY = 6; + */ + ACCESSORY(6), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "RelationshipType"); + } + + /** + * + * + *
+       * The relationship type is unspecified.
+       * 
+ * + * RELATIONSHIP_TYPE_UNSPECIFIED = 0; + */ + public static final int RELATIONSHIP_TYPE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * Part of a set of products that are often purchased together.
+       * 
+ * + * PART_OF_SET = 1; + */ + public static final int PART_OF_SET_VALUE = 1; + + /** + * + * + *
+       * Part that is necessary for the product to function, for example a
+       * battery for a battery-operated lamp.
+       * 
+ * + * REQUIRED_PART = 2; + */ + public static final int REQUIRED_PART_VALUE = 2; + + /** + * + * + *
+       * A product that this product is often purchased together with, for
+       * example a phone case with a phone.
+       * 
+ * + * OFTEN_BOUGHT_WITH = 3; + */ + public static final int OFTEN_BOUGHT_WITH_VALUE = 3; + + /** + * + * + *
+       * Product that this product can be substituted for. For example a printer
+       * comparable in function to another printer.
+       * 
+ * + * SUBSTITUTE = 4; + */ + public static final int SUBSTITUTE_VALUE = 4; + + /** + * + * + *
+       * An identical product sold under a different brand, for example a
+       * cheaper house brand.
+       * 
+ * + * DIFFERENT_BRAND = 5; + */ + public static final int DIFFERENT_BRAND_VALUE = 5; + + /** + * + * + *
+       * An accessory to this product, for example a side table that matches the
+       * style of a couch.
+       * 
+ * + * ACCESSORY = 6; + */ + public static final int ACCESSORY_VALUE = 6; + + 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 RelationshipType 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 RelationshipType forNumber(int value) { + switch (value) { + case 0: + return RELATIONSHIP_TYPE_UNSPECIFIED; + case 1: + return PART_OF_SET; + case 2: + return REQUIRED_PART; + case 3: + return OFTEN_BOUGHT_WITH; + case 4: + return SUBSTITUTE; + case 5: + return DIFFERENT_BRAND; + case 6: + return ACCESSORY; + 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 RelationshipType findValueByNumber(int number) { + return RelationshipType.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final RelationshipType[] VALUES = values(); + + public static RelationshipType 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 RelationshipType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType) + } + + /** + * + * + *
+     * The type of the identifier of the related product.
+     * 
+ * + * Protobuf enum {@code + * google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType} + */ + public enum IdType implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+       * The identifier type is unspecified.
+       * 
+ * + * ID_TYPE_UNSPECIFIED = 0; + */ + ID_TYPE_UNSPECIFIED(0), + /** + * + * + *
+       * The identifier is a GTIN.
+       * 
+ * + * GTIN = 1; + */ + GTIN(1), + /** + * + * + *
+       * The identifier is a product ID in the feed.
+       * 
+ * + * ID = 2; + */ + ID(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "IdType"); + } + + /** + * + * + *
+       * The identifier type is unspecified.
+       * 
+ * + * ID_TYPE_UNSPECIFIED = 0; + */ + public static final int ID_TYPE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+       * The identifier is a GTIN.
+       * 
+ * + * GTIN = 1; + */ + public static final int GTIN_VALUE = 1; + + /** + * + * + *
+       * The identifier is a product ID in the feed.
+       * 
+ * + * ID = 2; + */ + public static final int ID_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 IdType 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 IdType forNumber(int value) { + switch (value) { + case 0: + return ID_TYPE_UNSPECIFIED; + case 1: + return GTIN; + case 2: + return ID; + 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 IdType findValueByNumber(int number) { + return IdType.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .getDescriptor() + .getEnumTypes() + .get(1); + } + + private static final IdType[] VALUES = values(); + + public static IdType 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 IdType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType) + } + + public static final int RELATIONSHIP_TYPE_FIELD_NUMBER = 1; + private int relationshipType_ = 0; + + /** + * + * + *
+     * Required. The type of the relationship between this product and the
+     * related product.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for relationshipType. + */ + @java.lang.Override + public int getRelationshipTypeValue() { + return relationshipType_; + } + + /** + * + * + *
+     * Required. The type of the relationship between this product and the
+     * related product.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The relationshipType. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType + getRelationshipType() { + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType + result = + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType.forNumber(relationshipType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType.UNRECOGNIZED + : result; + } + + public static final int ID_TYPE_FIELD_NUMBER = 2; + private int idType_ = 0; + + /** + * + * + *
+     * Required. The type of the identifier of the related product.
+     * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+     * or [product ID](https://support.google.com/merchants/answer/6324405).
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for idType. + */ + @java.lang.Override + public int getIdTypeValue() { + return idType_; + } + + /** + * + * + *
+     * Required. The type of the identifier of the related product.
+     * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+     * or [product ID](https://support.google.com/merchants/answer/6324405).
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The idType. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + getIdType() { + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType result = + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + .forNumber(idType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + .UNRECOGNIZED + : result; + } + + public static final int ID_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + + /** + * + * + *
+     * Required. The identifier of the related product.
+     * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @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; + } + } + + /** + * + * + *
+     * Required. The identifier of the related product.
+     * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @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; + } + } + + 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 (relationshipType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType.RELATIONSHIP_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(1, relationshipType_); + } + if (idType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + .ID_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(2, idType_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, id_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (relationshipType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType.RELATIONSHIP_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, relationshipType_); + } + if (idType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + .ID_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, idType_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, id_); + } + 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.products.v1.ProductAttributes.RelatedProduct)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct other = + (com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) obj; + + if (relationshipType_ != other.relationshipType_) return false; + if (idType_ != other.idType_) return false; + if (!getId().equals(other.getId())) 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) + RELATIONSHIP_TYPE_FIELD_NUMBER; + hash = (53 * hash) + relationshipType_; + hash = (37 * hash) + ID_TYPE_FIELD_NUMBER; + hash = (53 * hash) + idType_; + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + 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.products.v1.ProductAttributes.RelatedProduct + parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + 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.products.v1.ProductAttributes.RelatedProduct + parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes.RelatedProduct 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+     * Specifies how other products are related to this product.
+     * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.class, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + .class); + } + + // Construct using + // com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + relationshipType_ = 0; + idType_ = 0; + id_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct build() { + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct result = + buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct result = + new com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.relationshipType_ = relationshipType_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.idType_ = idType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.id_ = id_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other + instanceof com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) { + return mergeFrom( + (com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct other) { + if (other + == com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .getDefaultInstance()) return this; + if (other.relationshipType_ != 0) { + setRelationshipTypeValue(other.getRelationshipTypeValue()); + } + if (other.idType_ != 0) { + setIdTypeValue(other.getIdTypeValue()); + } + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000004; + 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: + { + relationshipType_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: + { + idType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: + { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + 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 relationshipType_ = 0; + + /** + * + * + *
+       * Required. The type of the relationship between this product and the
+       * related product.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for relationshipType. + */ + @java.lang.Override + public int getRelationshipTypeValue() { + return relationshipType_; + } + + /** + * + * + *
+       * Required. The type of the relationship between this product and the
+       * related product.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The enum numeric value on the wire for relationshipType to set. + * @return This builder for chaining. + */ + public Builder setRelationshipTypeValue(int value) { + relationshipType_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The type of the relationship between this product and the
+       * related product.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The relationshipType. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType + getRelationshipType() { + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType + result = + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType.forNumber(relationshipType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .RelationshipType.UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Required. The type of the relationship between this product and the
+       * related product.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The relationshipType to set. + * @return This builder for chaining. + */ + public Builder setRelationshipType( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType + value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + relationshipType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The type of the relationship between this product and the
+       * related product.
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.RelationshipType relationship_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return This builder for chaining. + */ + public Builder clearRelationshipType() { + bitField0_ = (bitField0_ & ~0x00000001); + relationshipType_ = 0; + onChanged(); + return this; + } + + private int idType_ = 0; + + /** + * + * + *
+       * Required. The type of the identifier of the related product.
+       * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+       * or [product ID](https://support.google.com/merchants/answer/6324405).
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The enum numeric value on the wire for idType. + */ + @java.lang.Override + public int getIdTypeValue() { + return idType_; + } + + /** + * + * + *
+       * Required. The type of the identifier of the related product.
+       * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+       * or [product ID](https://support.google.com/merchants/answer/6324405).
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The enum numeric value on the wire for idType to set. + * @return This builder for chaining. + */ + public Builder setIdTypeValue(int value) { + idType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The type of the identifier of the related product.
+       * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+       * or [product ID](https://support.google.com/merchants/answer/6324405).
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The idType. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + getIdType() { + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType result = + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + .forNumber(idType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+       * Required. The type of the identifier of the related product.
+       * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+       * or [product ID](https://support.google.com/merchants/answer/6324405).
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @param value The idType to set. + * @return This builder for chaining. + */ + public Builder setIdType( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + idType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The type of the identifier of the related product.
+       * For example, [GTIN](https://support.google.com/merchants/answer/6219078)
+       * or [product ID](https://support.google.com/merchants/answer/6324405).
+       * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.IdType id_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return This builder for chaining. + */ + public Builder clearIdType() { + bitField0_ = (bitField0_ & ~0x00000002); + idType_ = 0; + onChanged(); + return this; + } + + private java.lang.Object id_ = ""; + + /** + * + * + *
+       * Required. The identifier of the related product.
+       * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @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; + } + } + + /** + * + * + *
+       * Required. The identifier of the related product.
+       * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @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; + } + } + + /** + * + * + *
+       * Required. The identifier of the related product.
+       * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @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_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The identifier of the related product.
+       * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+       * Required. The identifier of the related product.
+       * 
+ * + * string id = 3 [(.google.api.field_behavior) = REQUIRED]; + * + * @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_ |= 0x00000004; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct) + private static final com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = + new com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct(); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RelatedProduct 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.products.v1.ProductAttributes.RelatedProduct + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private int bitField0_; + private int bitField1_; + private int bitField2_; + public static final int IDENTIFIER_EXISTS_FIELD_NUMBER = 4; + private boolean identifierExists_ = false; + + /** + * + * + *
+   * Set this value to false when the item does not have unique product
+   * identifiers appropriate to its category, such as GTIN, MPN, and brand.
+   * Defaults to true, if not provided.
+   * 
+ * + * optional bool identifier_exists = 4; + * + * @return Whether the identifierExists field is set. + */ + @java.lang.Override + public boolean hasIdentifierExists() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Set this value to false when the item does not have unique product
+   * identifiers appropriate to its category, such as GTIN, MPN, and brand.
+   * Defaults to true, if not provided.
+   * 
+ * + * optional bool identifier_exists = 4; + * + * @return The identifierExists. + */ + @java.lang.Override + public boolean getIdentifierExists() { + return identifierExists_; + } + + public static final int IS_BUNDLE_FIELD_NUMBER = 5; + private boolean isBundle_ = false; + + /** + * + * + *
+   * Whether the item is a business-defined sub-API. A [sub-API]
+   * (https://support.google.com/merchants/answer/6324449) is a custom
+   * grouping of different products sold by a business for a single price.
+   * 
+ * + * optional bool is_bundle = 5; + * + * @return Whether the isBundle field is set. + */ + @java.lang.Override + public boolean hasIsBundle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * Whether the item is a business-defined sub-API. A [sub-API]
+   * (https://support.google.com/merchants/answer/6324449) is a custom
+   * grouping of different products sold by a business for a single price.
+   * 
+ * + * optional bool is_bundle = 5; + * + * @return The isBundle. + */ + @java.lang.Override + public boolean getIsBundle() { + return isBundle_; + } + + public static final int TITLE_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + + /** + * + * + *
+   * Title of the item.
+   * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + @java.lang.Override + public boolean hasTitle() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * Title of the item.
+   * 
+ * + * 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 item.
+   * 
+ * + * 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 DESCRIPTION_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private volatile java.lang.Object description_ = ""; + + /** + * + * + *
+   * Description of the item.
+   * 
+ * + * optional string description = 7; + * + * @return Whether the description field is set. + */ + @java.lang.Override + public boolean hasDescription() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Description of the item.
+   * 
+ * + * optional string description = 7; + * + * @return The description. + */ + @java.lang.Override + public java.lang.String getDescription() { + java.lang.Object ref = description_; + 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(); + description_ = s; + return s; + } + } + + /** + * + * + *
+   * Description of the item.
+   * 
+ * + * optional string description = 7; + * + * @return The bytes for description. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDescriptionBytes() { + java.lang.Object ref = description_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + description_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LINK_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private volatile java.lang.Object link_ = ""; + + /** + * + * + *
+   * URL directly linking to your item's page on your online store.
+   * 
+ * + * optional string link = 8; + * + * @return Whether the link field is set. + */ + @java.lang.Override + public boolean hasLink() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * URL directly linking to your item's page on your online store.
+   * 
+ * + * optional string link = 8; + * + * @return The link. + */ + @java.lang.Override + public java.lang.String getLink() { + java.lang.Object ref = link_; + 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(); + link_ = s; + return s; + } + } + + /** + * + * + *
+   * URL directly linking to your item's page on your online store.
+   * 
+ * + * optional string link = 8; + * + * @return The bytes for link. + */ + @java.lang.Override + public com.google.protobuf.ByteString getLinkBytes() { + java.lang.Object ref = link_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + link_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MOBILE_LINK_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object mobileLink_ = ""; + + /** + * + * + *
+   * URL for the mobile-optimized version of your item's landing page.
+   * 
+ * + * optional string mobile_link = 9; + * + * @return Whether the mobileLink field is set. + */ + @java.lang.Override + public boolean hasMobileLink() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * URL for the mobile-optimized version of your item's landing page.
+   * 
+ * + * optional string mobile_link = 9; + * + * @return The mobileLink. + */ + @java.lang.Override + public java.lang.String getMobileLink() { + java.lang.Object ref = mobileLink_; + 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(); + mobileLink_ = s; + return s; + } + } + + /** + * + * + *
+   * URL for the mobile-optimized version of your item's landing page.
+   * 
+ * + * optional string mobile_link = 9; + * + * @return The bytes for mobileLink. + */ + @java.lang.Override + public com.google.protobuf.ByteString getMobileLinkBytes() { + java.lang.Object ref = mobileLink_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + mobileLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CANONICAL_LINK_FIELD_NUMBER = 10; + + @SuppressWarnings("serial") + private volatile java.lang.Object canonicalLink_ = ""; + + /** + * + * + *
+   * URL for the canonical version of your item's landing page.
+   * 
+ * + * optional string canonical_link = 10; + * + * @return Whether the canonicalLink field is set. + */ + @java.lang.Override + public boolean hasCanonicalLink() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * URL for the canonical version of your item's landing page.
+   * 
+ * + * optional string canonical_link = 10; + * + * @return The canonicalLink. + */ + @java.lang.Override + public java.lang.String getCanonicalLink() { + java.lang.Object ref = canonicalLink_; + 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(); + canonicalLink_ = s; + return s; + } + } + + /** + * + * + *
+   * URL for the canonical version of your item's landing page.
+   * 
+ * + * optional string canonical_link = 10; + * + * @return The bytes for canonicalLink. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCanonicalLinkBytes() { + java.lang.Object ref = canonicalLink_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + canonicalLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IMAGE_LINK_FIELD_NUMBER = 11; + + @SuppressWarnings("serial") + private volatile java.lang.Object imageLink_ = ""; + + /** + * + * + *
+   * URL of an image of the item.
+   * 
+ * + * optional string image_link = 11; + * + * @return Whether the imageLink field is set. + */ + @java.lang.Override + public boolean hasImageLink() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * URL of an image of the item.
+   * 
+ * + * optional string image_link = 11; + * + * @return The imageLink. + */ + @java.lang.Override + public java.lang.String getImageLink() { + java.lang.Object ref = imageLink_; + 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(); + imageLink_ = s; + return s; + } + } + + /** + * + * + *
+   * URL of an image of the item.
+   * 
+ * + * optional string image_link = 11; + * + * @return The bytes for imageLink. + */ + @java.lang.Override + public com.google.protobuf.ByteString getImageLinkBytes() { + java.lang.Object ref = imageLink_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + imageLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ADDITIONAL_IMAGE_LINKS_FIELD_NUMBER = 12; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList additionalImageLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Additional URLs of images of the item.
+   * 
+ * + * repeated string additional_image_links = 12; + * + * @return A list containing the additionalImageLinks. + */ + public com.google.protobuf.ProtocolStringList getAdditionalImageLinksList() { + return additionalImageLinks_; + } + + /** + * + * + *
+   * Additional URLs of images of the item.
+   * 
+ * + * repeated string additional_image_links = 12; + * + * @return The count of additionalImageLinks. + */ + public int getAdditionalImageLinksCount() { + return additionalImageLinks_.size(); + } + + /** + * + * + *
+   * Additional URLs of images of the item.
+   * 
+ * + * repeated string additional_image_links = 12; + * + * @param index The index of the element to return. + * @return The additionalImageLinks at the given index. + */ + public java.lang.String getAdditionalImageLinks(int index) { + return additionalImageLinks_.get(index); + } + + /** + * + * + *
+   * Additional URLs of images of the item.
+   * 
+ * + * repeated string additional_image_links = 12; + * + * @param index The index of the value to return. + * @return The bytes of the additionalImageLinks at the given index. + */ + public com.google.protobuf.ByteString getAdditionalImageLinksBytes(int index) { + return additionalImageLinks_.getByteString(index); + } + + public static final int EXPIRATION_DATE_FIELD_NUMBER = 16; + private com.google.protobuf.Timestamp expirationDate_; + + /** + * + * + *
+   * Date on which the item should expire, as specified upon insertion, in
+   * [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+   * expiration date is exposed in `productstatuses` as
+   * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+   * and might be earlier if `expirationDate` is too far in the future.
+   * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + * + * @return Whether the expirationDate field is set. + */ + @java.lang.Override + public boolean hasExpirationDate() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Date on which the item should expire, as specified upon insertion, in
+   * [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+   * expiration date is exposed in `productstatuses` as
+   * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+   * and might be earlier if `expirationDate` is too far in the future.
+   * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + * + * @return The expirationDate. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getExpirationDate() { + return expirationDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : expirationDate_; + } + + /** + * + * + *
+   * Date on which the item should expire, as specified upon insertion, in
+   * [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+   * expiration date is exposed in `productstatuses` as
+   * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+   * and might be earlier if `expirationDate` is too far in the future.
+   * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getExpirationDateOrBuilder() { + return expirationDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : expirationDate_; + } + + public static final int DISCLOSURE_DATE_FIELD_NUMBER = 79; + private com.google.protobuf.Timestamp disclosureDate_; + + /** + * + * + *
+   * The date time when an offer becomes visible in search results across
+   * Google’s YouTube surfaces, in [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+   * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+   * for more information.
+   * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + * + * @return Whether the disclosureDate field is set. + */ + @java.lang.Override + public boolean hasDisclosureDate() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * The date time when an offer becomes visible in search results across
+   * Google’s YouTube surfaces, in [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+   * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+   * for more information.
+   * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + * + * @return The disclosureDate. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getDisclosureDate() { + return disclosureDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : disclosureDate_; + } + + /** + * + * + *
+   * The date time when an offer becomes visible in search results across
+   * Google’s YouTube surfaces, in [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+   * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+   * for more information.
+   * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getDisclosureDateOrBuilder() { + return disclosureDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : disclosureDate_; + } + + public static final int ADULT_FIELD_NUMBER = 17; + private boolean adult_ = false; + + /** + * + * + *
+   * Set to true if the item is targeted towards adults.
+   * 
+ * + * optional bool adult = 17; + * + * @return Whether the adult field is set. + */ + @java.lang.Override + public boolean hasAdult() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * Set to true if the item is targeted towards adults.
+   * 
+ * + * optional bool adult = 17; + * + * @return The adult. + */ + @java.lang.Override + public boolean getAdult() { + return adult_; + } + + public static final int AGE_GROUP_FIELD_NUMBER = 18; + private int ageGroup_ = 0; + + /** + * + * + *
+   * Target [age group](https://support.google.com/merchants/answer/6324463) of
+   * the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @return Whether the ageGroup field is set. + */ + @java.lang.Override + public boolean hasAgeGroup() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * Target [age group](https://support.google.com/merchants/answer/6324463) of
+   * the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @return The enum numeric value on the wire for ageGroup. + */ + @java.lang.Override + public int getAgeGroupValue() { + return ageGroup_; + } + + /** + * + * + *
+   * Target [age group](https://support.google.com/merchants/answer/6324463) of
+   * the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @return The ageGroup. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.AgeGroup getAgeGroup() { + com.google.shopping.merchant.products.v1.AgeGroup result = + com.google.shopping.merchant.products.v1.AgeGroup.forNumber(ageGroup_); + return result == null ? com.google.shopping.merchant.products.v1.AgeGroup.UNRECOGNIZED : result; + } + + public static final int AVAILABILITY_FIELD_NUMBER = 19; + private int availability_ = 0; + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) status
+   * of the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @return Whether the availability field is set. + */ + @java.lang.Override + public boolean hasAvailability() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) status
+   * of the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @return The enum numeric value on the wire for availability. + */ + @java.lang.Override + public int getAvailabilityValue() { + return availability_; + } + + /** + * + * + *
+   * [Availability](https://support.google.com/merchants/answer/6324448) status
+   * of the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @return The availability. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Availability getAvailability() { + com.google.shopping.merchant.products.v1.Availability result = + com.google.shopping.merchant.products.v1.Availability.forNumber(availability_); + return result == null + ? com.google.shopping.merchant.products.v1.Availability.UNRECOGNIZED + : result; + } + + public static final int AVAILABILITY_DATE_FIELD_NUMBER = 20; + private com.google.protobuf.Timestamp availabilityDate_; + + /** + * + * + *
+   * The day a pre-ordered product becomes available for delivery, in [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+   * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + * + * @return Whether the availabilityDate field is set. + */ + @java.lang.Override + public boolean hasAvailabilityDate() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * The day a pre-ordered product becomes available for delivery, in [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+   * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + * + * @return The availabilityDate. + */ + @java.lang.Override + public com.google.protobuf.Timestamp getAvailabilityDate() { + return availabilityDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : availabilityDate_; + } + + /** + * + * + *
+   * The day a pre-ordered product becomes available for delivery, in [ISO
+   * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+   * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + @java.lang.Override + public com.google.protobuf.TimestampOrBuilder getAvailabilityDateOrBuilder() { + return availabilityDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : availabilityDate_; + } + + public static final int BRAND_FIELD_NUMBER = 21; + + @SuppressWarnings("serial") + private volatile java.lang.Object brand_ = ""; + + /** + * + * + *
+   * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
+   * For example, "Google".
+   * 
+ * + * optional string brand = 21; + * + * @return Whether the brand field is set. + */ + @java.lang.Override + public boolean hasBrand() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
+   * For example, "Google".
+   * 
+ * + * optional string brand = 21; + * + * @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](https://support.google.com/merchants/answer/6324351) of the item.
+   * For example, "Google".
+   * 
+ * + * optional string brand = 21; + * + * @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 COLOR_FIELD_NUMBER = 22; + + @SuppressWarnings("serial") + private volatile java.lang.Object color_ = ""; + + /** + * + * + *
+   * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+   * For example, "red".
+   * 
+ * + * optional string color = 22; + * + * @return Whether the color field is set. + */ + @java.lang.Override + public boolean hasColor() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+   * For example, "red".
+   * 
+ * + * optional string color = 22; + * + * @return The color. + */ + @java.lang.Override + public java.lang.String getColor() { + java.lang.Object ref = color_; + 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(); + color_ = s; + return s; + } + } + + /** + * + * + *
+   * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+   * For example, "red".
+   * 
+ * + * optional string color = 22; + * + * @return The bytes for color. + */ + @java.lang.Override + public com.google.protobuf.ByteString getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONDITION_FIELD_NUMBER = 23; + private int condition_ = 0; + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) or state
+   * of the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @return Whether the condition field is set. + */ + @java.lang.Override + public boolean hasCondition() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) or state
+   * of the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @return The enum numeric value on the wire for condition. + */ + @java.lang.Override + public int getConditionValue() { + return condition_; + } + + /** + * + * + *
+   * [Condition](https://support.google.com/merchants/answer/6324469) or state
+   * of the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @return The condition. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Condition getCondition() { + com.google.shopping.merchant.products.v1.Condition result = + com.google.shopping.merchant.products.v1.Condition.forNumber(condition_); + return result == null + ? com.google.shopping.merchant.products.v1.Condition.UNRECOGNIZED + : result; + } + + public static final int GENDER_FIELD_NUMBER = 24; + private int gender_ = 0; + + /** + * + * + *
+   * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+   * item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @return Whether the gender field is set. + */ + @java.lang.Override + public boolean hasGender() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+   * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+   * item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @return The enum numeric value on the wire for gender. + */ + @java.lang.Override + public int getGenderValue() { + return gender_; + } + + /** + * + * + *
+   * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+   * item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @return The gender. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Gender getGender() { + com.google.shopping.merchant.products.v1.Gender result = + com.google.shopping.merchant.products.v1.Gender.forNumber(gender_); + return result == null ? com.google.shopping.merchant.products.v1.Gender.UNRECOGNIZED : result; + } + + public static final int GOOGLE_PRODUCT_CATEGORY_FIELD_NUMBER = 25; + + @SuppressWarnings("serial") + private volatile java.lang.Object googleProductCategory_ = ""; + + /** + * + * + *
+   * Google's category of the item (see [Google product
+   * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+   * querying products, this field will contain the user provided value. There
+   * is currently no way to get back the auto assigned google product
+   * categories through the API.
+   * 
+ * + * optional string google_product_category = 25; + * + * @return Whether the googleProductCategory field is set. + */ + @java.lang.Override + public boolean hasGoogleProductCategory() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+   * Google's category of the item (see [Google product
+   * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+   * querying products, this field will contain the user provided value. There
+   * is currently no way to get back the auto assigned google product
+   * categories through the API.
+   * 
+ * + * optional string google_product_category = 25; + * + * @return The googleProductCategory. + */ + @java.lang.Override + public java.lang.String getGoogleProductCategory() { + java.lang.Object ref = googleProductCategory_; + 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(); + googleProductCategory_ = s; + return s; + } + } + + /** + * + * + *
+   * Google's category of the item (see [Google product
+   * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+   * querying products, this field will contain the user provided value. There
+   * is currently no way to get back the auto assigned google product
+   * categories through the API.
+   * 
+ * + * optional string google_product_category = 25; + * + * @return The bytes for googleProductCategory. + */ + @java.lang.Override + public com.google.protobuf.ByteString getGoogleProductCategoryBytes() { + java.lang.Object ref = googleProductCategory_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + googleProductCategory_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GTINS_FIELD_NUMBER = 140; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList gtins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Global Trade Item Numbers
+   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+   * item.
+   * You can provide up to 10 GTINs.
+   * 
+ * + * repeated string gtins = 140; + * + * @return A list containing the gtins. + */ + public com.google.protobuf.ProtocolStringList getGtinsList() { + return gtins_; + } + + /** + * + * + *
+   * Global Trade Item Numbers
+   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+   * item.
+   * You can provide up to 10 GTINs.
+   * 
+ * + * repeated string gtins = 140; + * + * @return The count of gtins. + */ + public int getGtinsCount() { + return gtins_.size(); + } + + /** + * + * + *
+   * Global Trade Item Numbers
+   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+   * item.
+   * You can provide up to 10 GTINs.
+   * 
+ * + * repeated string gtins = 140; + * + * @param index The index of the element to return. + * @return The gtins at the given index. + */ + public java.lang.String getGtins(int index) { + return gtins_.get(index); + } + + /** + * + * + *
+   * Global Trade Item Numbers
+   * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+   * item.
+   * You can provide up to 10 GTINs.
+   * 
+ * + * repeated string gtins = 140; + * + * @param index The index of the value to return. + * @return The bytes of the gtins at the given index. + */ + public com.google.protobuf.ByteString getGtinsBytes(int index) { + return gtins_.getByteString(index); + } + + public static final int ITEM_GROUP_ID_FIELD_NUMBER = 27; + + @SuppressWarnings("serial") + private volatile java.lang.Object itemGroupId_ = ""; + + /** + * + * + *
+   * Shared identifier for all variants of the same product.
+   * 
+ * + * optional string item_group_id = 27; + * + * @return Whether the itemGroupId field is set. + */ + @java.lang.Override + public boolean hasItemGroupId() { + return ((bitField0_ & 0x00080000) != 0); + } + + /** + * + * + *
+   * Shared identifier for all variants of the same product.
+   * 
+ * + * optional string item_group_id = 27; + * + * @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; + } + } + + /** + * + * + *
+   * Shared identifier for all variants of the same product.
+   * 
+ * + * optional string item_group_id = 27; + * + * @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 MATERIAL_FIELD_NUMBER = 28; + + @SuppressWarnings("serial") + private volatile java.lang.Object material_ = ""; + + /** + * + * + *
+   * The [material](https://support.google.com/merchants/answer/6324410) of
+   * which the item is made. For example, "Leather" or "Cotton".
+   * 
+ * + * optional string material = 28; + * + * @return Whether the material field is set. + */ + @java.lang.Override + public boolean hasMaterial() { + return ((bitField0_ & 0x00100000) != 0); + } + + /** + * + * + *
+   * The [material](https://support.google.com/merchants/answer/6324410) of
+   * which the item is made. For example, "Leather" or "Cotton".
+   * 
+ * + * optional string material = 28; + * + * @return The material. + */ + @java.lang.Override + public java.lang.String getMaterial() { + java.lang.Object ref = material_; + 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(); + material_ = s; + return s; + } + } + + /** + * + * + *
+   * The [material](https://support.google.com/merchants/answer/6324410) of
+   * which the item is made. For example, "Leather" or "Cotton".
+   * 
+ * + * optional string material = 28; + * + * @return The bytes for material. + */ + @java.lang.Override + public com.google.protobuf.ByteString getMaterialBytes() { + java.lang.Object ref = material_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + material_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MPN_FIELD_NUMBER = 29; + + @SuppressWarnings("serial") + private volatile java.lang.Object mpn_ = ""; + + /** + * + * + *
+   * Manufacturer Part Number
+   * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+   * item.
+   * 
+ * + * optional string mpn = 29; + * + * @return Whether the mpn field is set. + */ + @java.lang.Override + public boolean hasMpn() { + return ((bitField0_ & 0x00200000) != 0); + } + + /** + * + * + *
+   * Manufacturer Part Number
+   * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+   * item.
+   * 
+ * + * optional string mpn = 29; + * + * @return The mpn. + */ + @java.lang.Override + public java.lang.String getMpn() { + java.lang.Object ref = mpn_; + 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(); + mpn_ = s; + return s; + } + } + + /** + * + * + *
+   * Manufacturer Part Number
+   * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+   * item.
+   * 
+ * + * optional string mpn = 29; + * + * @return The bytes for mpn. + */ + @java.lang.Override + public com.google.protobuf.ByteString getMpnBytes() { + java.lang.Object ref = mpn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + mpn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PATTERN_FIELD_NUMBER = 30; + + @SuppressWarnings("serial") + private volatile java.lang.Object pattern_ = ""; + + /** + * + * + *
+   * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+   * For example, polka dots.
+   * 
+ * + * optional string pattern = 30; + * + * @return Whether the pattern field is set. + */ + @java.lang.Override + public boolean hasPattern() { + return ((bitField0_ & 0x00400000) != 0); + } + + /** + * + * + *
+   * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+   * For example, polka dots.
+   * 
+ * + * optional string pattern = 30; + * + * @return The pattern. + */ + @java.lang.Override + public java.lang.String getPattern() { + java.lang.Object ref = pattern_; + 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(); + pattern_ = s; + return s; + } + } + + /** + * + * + *
+   * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+   * For example, polka dots.
+   * 
+ * + * optional string pattern = 30; + * + * @return The bytes for pattern. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPatternBytes() { + java.lang.Object ref = pattern_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRICE_FIELD_NUMBER = 31; + private com.google.shopping.type.Price price_; + + /** + * + * + *
+   * Price of the item.
+   * 
+ * + * .google.shopping.type.Price price = 31; + * + * @return Whether the price field is set. + */ + @java.lang.Override + public boolean hasPrice() { + return ((bitField0_ & 0x00800000) != 0); + } + + /** + * + * + *
+   * Price of the item.
+   * 
+ * + * .google.shopping.type.Price price = 31; + * + * @return The price. + */ + @java.lang.Override + public com.google.shopping.type.Price getPrice() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + /** + * + * + *
+   * Price of the item.
+   * 
+ * + * .google.shopping.type.Price price = 31; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + public static final int MAXIMUM_RETAIL_PRICE_FIELD_NUMBER = 139; + private com.google.shopping.type.Price maximumRetailPrice_; + + /** + * + * + *
+   * Maximum retail price (MRP) of the item. Applicable to India only.
+   * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + * + * @return Whether the maximumRetailPrice field is set. + */ + @java.lang.Override + public boolean hasMaximumRetailPrice() { + return ((bitField0_ & 0x01000000) != 0); + } + + /** + * + * + *
+   * Maximum retail price (MRP) of the item. Applicable to India only.
+   * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + * + * @return The maximumRetailPrice. + */ + @java.lang.Override + public com.google.shopping.type.Price getMaximumRetailPrice() { + return maximumRetailPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : maximumRetailPrice_; + } + + /** + * + * + *
+   * Maximum retail price (MRP) of the item. Applicable to India only.
+   * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getMaximumRetailPriceOrBuilder() { + return maximumRetailPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : maximumRetailPrice_; + } + + public static final int INSTALLMENT_FIELD_NUMBER = 32; + private com.google.shopping.merchant.products.v1.ProductInstallment installment_; + + /** + * + * + *
+   * Number and amount of installments to pay for an item.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * + * @return Whether the installment field is set. + */ + @java.lang.Override + public boolean hasInstallment() { + return ((bitField0_ & 0x02000000) != 0); + } + + /** + * + * + *
+   * Number and amount of installments to pay for an item.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * + * @return The installment. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductInstallment getInstallment() { + return installment_ == null + ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() + : installment_; + } + + /** + * + * + *
+   * Number and amount of installments to pay for an item.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder + getInstallmentOrBuilder() { + return installment_ == null + ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() + : installment_; + } + + public static final int SUBSCRIPTION_COST_FIELD_NUMBER = 33; + private com.google.shopping.merchant.products.v1.SubscriptionCost subscriptionCost_; + + /** + * + * + *
+   * Number of periods (weeks, months or years) and amount of payment per period
+   * for an item with an associated subscription contract.
+   * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * + * @return Whether the subscriptionCost field is set. + */ + @java.lang.Override + public boolean hasSubscriptionCost() { + return ((bitField0_ & 0x04000000) != 0); + } + + /** + * + * + *
+   * Number of periods (weeks, months or years) and amount of payment per period
+   * for an item with an associated subscription contract.
+   * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * + * @return The subscriptionCost. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.SubscriptionCost getSubscriptionCost() { + return subscriptionCost_ == null + ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() + : subscriptionCost_; + } + + /** + * + * + *
+   * Number of periods (weeks, months or years) and amount of payment per period
+   * for an item with an associated subscription contract.
+   * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder + getSubscriptionCostOrBuilder() { + return subscriptionCost_ == null + ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() + : subscriptionCost_; + } + + public static final int LOYALTY_POINTS_FIELD_NUMBER = 34; + private com.google.shopping.merchant.products.v1.LoyaltyPoints loyaltyPoints_; + + /** + * + * + *
+   * Loyalty points that users receive after purchasing the item. Japan only.
+   * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * + * @return Whether the loyaltyPoints field is set. + */ + @java.lang.Override + public boolean hasLoyaltyPoints() { + return ((bitField0_ & 0x08000000) != 0); + } + + /** + * + * + *
+   * Loyalty points that users receive after purchasing the item. Japan only.
+   * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * + * @return The loyaltyPoints. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.LoyaltyPoints getLoyaltyPoints() { + return loyaltyPoints_ == null + ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() + : loyaltyPoints_; + } + + /** + * + * + *
+   * Loyalty points that users receive after purchasing the item. Japan only.
+   * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder + getLoyaltyPointsOrBuilder() { + return loyaltyPoints_ == null + ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() + : loyaltyPoints_; + } + + public static final int LOYALTY_PROGRAMS_FIELD_NUMBER = 136; + + @SuppressWarnings("serial") + private java.util.List loyaltyPrograms_; + + /** + * + * + *
+   * A list of loyalty program information that is used to surface loyalty
+   * benefits (for example, better pricing, points, etc) to the user of this
+   * item.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + @java.lang.Override + public java.util.List + getLoyaltyProgramsList() { + return loyaltyPrograms_; + } + + /** + * + * + *
+   * A list of loyalty program information that is used to surface loyalty
+   * benefits (for example, better pricing, points, etc) to the user of this
+   * item.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + @java.lang.Override + public java.util.List + getLoyaltyProgramsOrBuilderList() { + return loyaltyPrograms_; + } + + /** + * + * + *
+   * A list of loyalty program information that is used to surface loyalty
+   * benefits (for example, better pricing, points, etc) to the user of this
+   * item.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + @java.lang.Override + public int getLoyaltyProgramsCount() { + return loyaltyPrograms_.size(); + } + + /** + * + * + *
+   * A list of loyalty program information that is used to surface loyalty
+   * benefits (for example, better pricing, points, etc) to the user of this
+   * item.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.LoyaltyProgram getLoyaltyPrograms(int index) { + return loyaltyPrograms_.get(index); + } + + /** + * + * + *
+   * A list of loyalty program information that is used to surface loyalty
+   * benefits (for example, better pricing, points, etc) to the user of this
+   * item.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder + getLoyaltyProgramsOrBuilder(int index) { + return loyaltyPrograms_.get(index); + } + + public static final int PRODUCT_TYPES_FIELD_NUMBER = 35; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList productTypes_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Categories of the item (formatted as in [product data
+   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+   * 
+ * + * repeated string product_types = 35; + * + * @return A list containing the productTypes. + */ + public com.google.protobuf.ProtocolStringList getProductTypesList() { + return productTypes_; + } + + /** + * + * + *
+   * Categories of the item (formatted as in [product data
+   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+   * 
+ * + * repeated string product_types = 35; + * + * @return The count of productTypes. + */ + public int getProductTypesCount() { + return productTypes_.size(); + } + + /** + * + * + *
+   * Categories of the item (formatted as in [product data
+   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+   * 
+ * + * repeated string product_types = 35; + * + * @param index The index of the element to return. + * @return The productTypes at the given index. + */ + public java.lang.String getProductTypes(int index) { + return productTypes_.get(index); + } + + /** + * + * + *
+   * Categories of the item (formatted as in [product data
+   * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+   * 
+ * + * repeated string product_types = 35; + * + * @param index The index of the value to return. + * @return The bytes of the productTypes at the given index. + */ + public com.google.protobuf.ByteString getProductTypesBytes(int index) { + return productTypes_.getByteString(index); + } + + public static final int SALE_PRICE_FIELD_NUMBER = 36; + private com.google.shopping.type.Price salePrice_; + + /** + * + * + *
+   * Advertised sale price of the item.
+   * 
+ * + * .google.shopping.type.Price sale_price = 36; + * + * @return Whether the salePrice field is set. + */ + @java.lang.Override + public boolean hasSalePrice() { + return ((bitField0_ & 0x10000000) != 0); + } + + /** + * + * + *
+   * Advertised sale price of the item.
+   * 
+ * + * .google.shopping.type.Price sale_price = 36; + * + * @return The salePrice. + */ + @java.lang.Override + public com.google.shopping.type.Price getSalePrice() { + return salePrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : salePrice_; + } + + /** + * + * + *
+   * Advertised sale price of the item.
+   * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getSalePriceOrBuilder() { + return salePrice_ == null ? com.google.shopping.type.Price.getDefaultInstance() : salePrice_; + } + + public static final int SALE_PRICE_EFFECTIVE_DATE_FIELD_NUMBER = 37; + private com.google.type.Interval salePriceEffectiveDate_; + + /** + * + * + *
+   * Date range during which the item is on sale, see [product data
+   * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+   * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + * + * @return Whether the salePriceEffectiveDate field is set. + */ + @java.lang.Override + public boolean hasSalePriceEffectiveDate() { + return ((bitField0_ & 0x20000000) != 0); + } + + /** + * + * + *
+   * Date range during which the item is on sale, see [product data
+   * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+   * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + * + * @return The salePriceEffectiveDate. + */ + @java.lang.Override + public com.google.type.Interval getSalePriceEffectiveDate() { + return salePriceEffectiveDate_ == null + ? com.google.type.Interval.getDefaultInstance() + : salePriceEffectiveDate_; + } + + /** + * + * + *
+   * Date range during which the item is on sale, see [product data
+   * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+   * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + @java.lang.Override + public com.google.type.IntervalOrBuilder getSalePriceEffectiveDateOrBuilder() { + return salePriceEffectiveDate_ == null + ? com.google.type.Interval.getDefaultInstance() + : salePriceEffectiveDate_; + } + + public static final int SELL_ON_GOOGLE_QUANTITY_FIELD_NUMBER = 38; + private long sellOnGoogleQuantity_ = 0L; + + /** + * + * + *
+   * The quantity of the product that is available for selling on Google.
+   * Supported only for online products.
+   * 
+ * + * optional int64 sell_on_google_quantity = 38; + * + * @return Whether the sellOnGoogleQuantity field is set. + */ + @java.lang.Override + public boolean hasSellOnGoogleQuantity() { + return ((bitField0_ & 0x40000000) != 0); + } + + /** + * + * + *
+   * The quantity of the product that is available for selling on Google.
+   * Supported only for online products.
+   * 
+ * + * optional int64 sell_on_google_quantity = 38; + * + * @return The sellOnGoogleQuantity. + */ + @java.lang.Override + public long getSellOnGoogleQuantity() { + return sellOnGoogleQuantity_; + } + + public static final int PRODUCT_HEIGHT_FIELD_NUMBER = 119; + private com.google.shopping.merchant.products.v1.ProductDimension productHeight_; + + /** + * + * + *
+   * The height of the product in the units provided. The value must be
+   * between
+   * 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * + * @return Whether the productHeight field is set. + */ + @java.lang.Override + public boolean hasProductHeight() { + return ((bitField0_ & 0x80000000) != 0); + } + + /** + * + * + *
+   * The height of the product in the units provided. The value must be
+   * between
+   * 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * + * @return The productHeight. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDimension getProductHeight() { + return productHeight_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productHeight_; + } + + /** + * + * + *
+   * The height of the product in the units provided. The value must be
+   * between
+   * 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder + getProductHeightOrBuilder() { + return productHeight_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productHeight_; + } + + public static final int PRODUCT_LENGTH_FIELD_NUMBER = 120; + private com.google.shopping.merchant.products.v1.ProductDimension productLength_; + + /** + * + * + *
+   * The length of the product in the units provided. The value must be
+   * between 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * + * @return Whether the productLength field is set. + */ + @java.lang.Override + public boolean hasProductLength() { + return ((bitField1_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * The length of the product in the units provided. The value must be
+   * between 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * + * @return The productLength. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDimension getProductLength() { + return productLength_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productLength_; + } + + /** + * + * + *
+   * The length of the product in the units provided. The value must be
+   * between 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder + getProductLengthOrBuilder() { + return productLength_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productLength_; + } + + public static final int PRODUCT_WIDTH_FIELD_NUMBER = 121; + private com.google.shopping.merchant.products.v1.ProductDimension productWidth_; + + /** + * + * + *
+   * The width of the product in the units provided. The value must be between
+   * 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * + * @return Whether the productWidth field is set. + */ + @java.lang.Override + public boolean hasProductWidth() { + return ((bitField1_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * The width of the product in the units provided. The value must be between
+   * 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * + * @return The productWidth. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDimension getProductWidth() { + return productWidth_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productWidth_; + } + + /** + * + * + *
+   * The width of the product in the units provided. The value must be between
+   * 0 (exclusive) and 3000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder + getProductWidthOrBuilder() { + return productWidth_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productWidth_; + } + + public static final int PRODUCT_WEIGHT_FIELD_NUMBER = 122; + private com.google.shopping.merchant.products.v1.ProductWeight productWeight_; + + /** + * + * + *
+   * The weight of the product in the units provided. The value must be
+   * between 0 (exclusive) and 2000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * @return Whether the productWeight field is set. + */ + @java.lang.Override + public boolean hasProductWeight() { + return ((bitField1_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * The weight of the product in the units provided. The value must be
+   * between 0 (exclusive) and 2000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * @return The productWeight. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductWeight getProductWeight() { + return productWeight_ == null + ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() + : productWeight_; + } + + /** + * + * + *
+   * The weight of the product in the units provided. The value must be
+   * between 0 (exclusive) and 2000 (inclusive).
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductWeightOrBuilder + getProductWeightOrBuilder() { + return productWeight_ == null + ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() + : productWeight_; + } + + public static final int SHIPPING_FIELD_NUMBER = 39; + + @SuppressWarnings("serial") + private java.util.List shipping_; + + /** + * + * + *
+   * Shipping rules.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + @java.lang.Override + public java.util.List getShippingList() { + return shipping_; + } + + /** + * + * + *
+   * Shipping rules.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + @java.lang.Override + public java.util.List + getShippingOrBuilderList() { + return shipping_; + } + + /** + * + * + *
+   * Shipping rules.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + @java.lang.Override + public int getShippingCount() { + return shipping_.size(); + } + + /** + * + * + *
+   * Shipping rules.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Shipping getShipping(int index) { + return shipping_.get(index); + } + + /** + * + * + *
+   * Shipping rules.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingOrBuilder getShippingOrBuilder( + int index) { + return shipping_.get(index); + } + + public static final int CARRIER_SHIPPING_FIELD_NUMBER = 142; + + @SuppressWarnings("serial") + private java.util.List + carrierShipping_; + + /** + * + * + *
+   * Rules for carrier-based shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + @java.lang.Override + public java.util.List + getCarrierShippingList() { + return carrierShipping_; + } + + /** + * + * + *
+   * Rules for carrier-based shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> + getCarrierShippingOrBuilderList() { + return carrierShipping_; + } + + /** + * + * + *
+   * Rules for carrier-based shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + @java.lang.Override + public int getCarrierShippingCount() { + return carrierShipping_.size(); + } + + /** + * + * + *
+   * Rules for carrier-based shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + getCarrierShipping(int index) { + return carrierShipping_.get(index); + } + + /** + * + * + *
+   * Rules for carrier-based shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder + getCarrierShippingOrBuilder(int index) { + return carrierShipping_.get(index); + } + + public static final int FREE_SHIPPING_THRESHOLD_FIELD_NUMBER = 135; + + @SuppressWarnings("serial") + private java.util.List + freeShippingThreshold_; + + /** + * + * + *
+   * Conditions to be met for a product to have free shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + @java.lang.Override + public java.util.List + getFreeShippingThresholdList() { + return freeShippingThreshold_; + } + + /** + * + * + *
+   * Conditions to be met for a product to have free shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + @java.lang.Override + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> + getFreeShippingThresholdOrBuilderList() { + return freeShippingThreshold_; + } + + /** + * + * + *
+   * Conditions to be met for a product to have free shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + @java.lang.Override + public int getFreeShippingThresholdCount() { + return freeShippingThreshold_.size(); + } + + /** + * + * + *
+   * Conditions to be met for a product to have free shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.FreeShippingThreshold getFreeShippingThreshold( + int index) { + return freeShippingThreshold_.get(index); + } + + /** + * + * + *
+   * Conditions to be met for a product to have free shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder + getFreeShippingThresholdOrBuilder(int index) { + return freeShippingThreshold_.get(index); + } + + public static final int SHIPPING_WEIGHT_FIELD_NUMBER = 40; + private com.google.shopping.merchant.products.v1.ShippingWeight shippingWeight_; + + /** + * + * + *
+   * Weight of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * + * @return Whether the shippingWeight field is set. + */ + @java.lang.Override + public boolean hasShippingWeight() { + return ((bitField1_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Weight of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * + * @return The shippingWeight. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingWeight getShippingWeight() { + return shippingWeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() + : shippingWeight_; + } + + /** + * + * + *
+   * Weight of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder + getShippingWeightOrBuilder() { + return shippingWeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() + : shippingWeight_; + } + + public static final int SHIPPING_LENGTH_FIELD_NUMBER = 41; + private com.google.shopping.merchant.products.v1.ShippingDimension shippingLength_; + + /** + * + * + *
+   * Length of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * + * @return Whether the shippingLength field is set. + */ + @java.lang.Override + public boolean hasShippingLength() { + return ((bitField1_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Length of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * + * @return The shippingLength. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingDimension getShippingLength() { + return shippingLength_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingLength_; + } + + /** + * + * + *
+   * Length of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder + getShippingLengthOrBuilder() { + return shippingLength_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingLength_; + } + + public static final int SHIPPING_WIDTH_FIELD_NUMBER = 42; + private com.google.shopping.merchant.products.v1.ShippingDimension shippingWidth_; + + /** + * + * + *
+   * Width of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * + * @return Whether the shippingWidth field is set. + */ + @java.lang.Override + public boolean hasShippingWidth() { + return ((bitField1_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Width of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * + * @return The shippingWidth. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingDimension getShippingWidth() { + return shippingWidth_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingWidth_; + } + + /** + * + * + *
+   * Width of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder + getShippingWidthOrBuilder() { + return shippingWidth_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingWidth_; + } + + public static final int SHIPPING_HEIGHT_FIELD_NUMBER = 43; + private com.google.shopping.merchant.products.v1.ShippingDimension shippingHeight_; + + /** + * + * + *
+   * Height of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * + * @return Whether the shippingHeight field is set. + */ + @java.lang.Override + public boolean hasShippingHeight() { + return ((bitField1_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Height of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * + * @return The shippingHeight. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingDimension getShippingHeight() { + return shippingHeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingHeight_; + } + + /** + * + * + *
+   * Height of the item for shipping.
+   * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder + getShippingHeightOrBuilder() { + return shippingHeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingHeight_; + } + + public static final int MAX_HANDLING_TIME_FIELD_NUMBER = 44; + private long maxHandlingTime_ = 0L; + + /** + * + * + *
+   * Maximal product handling time (in business days).
+   * 
+ * + * optional int64 max_handling_time = 44; + * + * @return Whether the maxHandlingTime field is set. + */ + @java.lang.Override + public boolean hasMaxHandlingTime() { + return ((bitField1_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * Maximal product handling time (in business days).
+   * 
+ * + * optional int64 max_handling_time = 44; + * + * @return The maxHandlingTime. + */ + @java.lang.Override + public long getMaxHandlingTime() { + return maxHandlingTime_; + } + + public static final int MIN_HANDLING_TIME_FIELD_NUMBER = 45; + private long minHandlingTime_ = 0L; + + /** + * + * + *
+   * Minimal product handling time (in business days).
+   * 
+ * + * optional int64 min_handling_time = 45; + * + * @return Whether the minHandlingTime field is set. + */ + @java.lang.Override + public boolean hasMinHandlingTime() { + return ((bitField1_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Minimal product handling time (in business days).
+   * 
+ * + * optional int64 min_handling_time = 45; + * + * @return The minHandlingTime. + */ + @java.lang.Override + public long getMinHandlingTime() { + return minHandlingTime_; + } + + public static final int SHIPPING_HANDLING_BUSINESS_DAYS_FIELD_NUMBER = 143; + + @SuppressWarnings("serial") + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + shippingHandlingBusinessDays_; + + /** + * + * + *
+   * The business days during which orders can be handled. If not provided,
+   * Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * + */ + @java.lang.Override + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + getShippingHandlingBusinessDaysList() { + return shippingHandlingBusinessDays_; + } + + /** + * + * + *
+   * The business days during which orders can be handled. If not provided,
+   * Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + getShippingHandlingBusinessDaysOrBuilderList() { + return shippingHandlingBusinessDays_; + } + + /** + * + * + *
+   * The business days during which orders can be handled. If not provided,
+   * Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * + */ + @java.lang.Override + public int getShippingHandlingBusinessDaysCount() { + return shippingHandlingBusinessDays_.size(); + } + + /** + * + * + *
+   * The business days during which orders can be handled. If not provided,
+   * Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + getShippingHandlingBusinessDays(int index) { + return shippingHandlingBusinessDays_.get(index); + } + + /** + * + * + *
+   * The business days during which orders can be handled. If not provided,
+   * Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder + getShippingHandlingBusinessDaysOrBuilder(int index) { + return shippingHandlingBusinessDays_.get(index); + } + + public static final int SHIPPING_TRANSIT_BUSINESS_DAYS_FIELD_NUMBER = 144; + + @SuppressWarnings("serial") + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + shippingTransitBusinessDays_; + + /** + * + * + *
+   * The business days during which orders are in transit.
+   * If not provided, Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * + */ + @java.lang.Override + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + getShippingTransitBusinessDaysList() { + return shippingTransitBusinessDays_; + } + + /** + * + * + *
+   * The business days during which orders are in transit.
+   * If not provided, Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + getShippingTransitBusinessDaysOrBuilderList() { + return shippingTransitBusinessDays_; + } + + /** + * + * + *
+   * The business days during which orders are in transit.
+   * If not provided, Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * + */ + @java.lang.Override + public int getShippingTransitBusinessDaysCount() { + return shippingTransitBusinessDays_.size(); + } + + /** + * + * + *
+   * The business days during which orders are in transit.
+   * If not provided, Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + getShippingTransitBusinessDays(int index) { + return shippingTransitBusinessDays_.get(index); + } + + /** + * + * + *
+   * The business days during which orders are in transit.
+   * If not provided, Monday to Friday business days will be assumed.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder + getShippingTransitBusinessDaysOrBuilder(int index) { + return shippingTransitBusinessDays_.get(index); + } + + public static final int HANDLING_CUTOFF_TIMES_FIELD_NUMBER = 141; + + @SuppressWarnings("serial") + private java.util.List + handlingCutoffTimes_; + + /** + * + * + *
+   * The handling cutoff times for shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * + */ + @java.lang.Override + public java.util.List + getHandlingCutoffTimesList() { + return handlingCutoffTimes_; + } + + /** + * + * + *
+   * The handling cutoff times for shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * + */ + @java.lang.Override + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> + getHandlingCutoffTimesOrBuilderList() { + return handlingCutoffTimes_; + } + + /** + * + * + *
+   * The handling cutoff times for shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * + */ + @java.lang.Override + public int getHandlingCutoffTimesCount() { + return handlingCutoffTimes_.size(); + } + + /** + * + * + *
+   * The handling cutoff times for shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.HandlingCutoffTime getHandlingCutoffTimes( + int index) { + return handlingCutoffTimes_.get(index); + } + + /** + * + * + *
+   * The handling cutoff times for shipping.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder + getHandlingCutoffTimesOrBuilder(int index) { + return handlingCutoffTimes_.get(index); + } + + public static final int SHIPPING_LABEL_FIELD_NUMBER = 46; + + @SuppressWarnings("serial") + private volatile java.lang.Object shippingLabel_ = ""; + + /** + * + * + *
+   * The shipping label of the product, used to group products in account-level
+   * shipping rules. Max. 100 characters. For more information, see
+   * [Shipping label](https://support.google.com/merchants/answer/6324504).
+   * 
+ * + * optional string shipping_label = 46; + * + * @return Whether the shippingLabel field is set. + */ + @java.lang.Override + public boolean hasShippingLabel() { + return ((bitField1_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * The shipping label of the product, used to group products in account-level
+   * shipping rules. Max. 100 characters. For more information, see
+   * [Shipping label](https://support.google.com/merchants/answer/6324504).
+   * 
+ * + * optional string shipping_label = 46; + * + * @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; + } + } + + /** + * + * + *
+   * The shipping label of the product, used to group products in account-level
+   * shipping rules. Max. 100 characters. For more information, see
+   * [Shipping label](https://support.google.com/merchants/answer/6324504).
+   * 
+ * + * optional string shipping_label = 46; + * + * @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 RETURN_POLICY_LABEL_FIELD_NUMBER = 170; + + @SuppressWarnings("serial") + private volatile java.lang.Object returnPolicyLabel_ = ""; + + /** + * + * + *
+   * The return label of the product, used to group products in account-level
+   * return policies. Max. 100 characters. For more information, see
+   * [Return policy label](https://support.google.com/merchants/answer/9445425).
+   * 
+ * + * optional string return_policy_label = 170; + * + * @return Whether the returnPolicyLabel field is set. + */ + @java.lang.Override + public boolean hasReturnPolicyLabel() { + return ((bitField1_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * The return label of the product, used to group products in account-level
+   * return policies. Max. 100 characters. For more information, see
+   * [Return policy label](https://support.google.com/merchants/answer/9445425).
+   * 
+ * + * optional string return_policy_label = 170; + * + * @return The returnPolicyLabel. + */ + @java.lang.Override + public java.lang.String getReturnPolicyLabel() { + java.lang.Object ref = returnPolicyLabel_; + 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(); + returnPolicyLabel_ = s; + return s; + } + } + + /** + * + * + *
+   * The return label of the product, used to group products in account-level
+   * return policies. Max. 100 characters. For more information, see
+   * [Return policy label](https://support.google.com/merchants/answer/9445425).
+   * 
+ * + * optional string return_policy_label = 170; + * + * @return The bytes for returnPolicyLabel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getReturnPolicyLabelBytes() { + java.lang.Object ref = returnPolicyLabel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + returnPolicyLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TRANSIT_TIME_LABEL_FIELD_NUMBER = 47; + + @SuppressWarnings("serial") + private volatile java.lang.Object transitTimeLabel_ = ""; + + /** + * + * + *
+   * The transit time label of the product, used to group product in
+   * account-level transit time tables.
+   * 
+ * + * optional string transit_time_label = 47; + * + * @return Whether the transitTimeLabel field is set. + */ + @java.lang.Override + public boolean hasTransitTimeLabel() { + return ((bitField1_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * The transit time label of the product, used to group product in
+   * account-level transit time tables.
+   * 
+ * + * optional string transit_time_label = 47; + * + * @return The transitTimeLabel. + */ + @java.lang.Override + public java.lang.String getTransitTimeLabel() { + java.lang.Object ref = transitTimeLabel_; + 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(); + transitTimeLabel_ = s; + return s; + } + } + + /** + * + * + *
+   * The transit time label of the product, used to group product in
+   * account-level transit time tables.
+   * 
+ * + * optional string transit_time_label = 47; + * + * @return The bytes for transitTimeLabel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTransitTimeLabelBytes() { + java.lang.Object ref = transitTimeLabel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + transitTimeLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SIZE_FIELD_NUMBER = 48; + + @SuppressWarnings("serial") + private volatile java.lang.Object size_ = ""; + + /** + * + * + *
+   * Size of the item. Only one value is allowed. For variants with different
+   * sizes, insert a separate product for each size with the same
+   * `itemGroupId` value, see
+   * [Size](https://support.google.com/merchants/answer/6324492).
+   * 
+ * + * optional string size = 48; + * + * @return Whether the size field is set. + */ + @java.lang.Override + public boolean hasSize() { + return ((bitField1_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * Size of the item. Only one value is allowed. For variants with different
+   * sizes, insert a separate product for each size with the same
+   * `itemGroupId` value, see
+   * [Size](https://support.google.com/merchants/answer/6324492).
+   * 
+ * + * optional string size = 48; + * + * @return The size. + */ + @java.lang.Override + public java.lang.String getSize() { + java.lang.Object ref = size_; + 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(); + size_ = s; + return s; + } + } + + /** + * + * + *
+   * Size of the item. Only one value is allowed. For variants with different
+   * sizes, insert a separate product for each size with the same
+   * `itemGroupId` value, see
+   * [Size](https://support.google.com/merchants/answer/6324492).
+   * 
+ * + * optional string size = 48; + * + * @return The bytes for size. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSizeBytes() { + java.lang.Object ref = size_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + size_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SIZE_SYSTEM_FIELD_NUMBER = 49; + private int sizeSystem_ = 0; + + /** + * + * + *
+   * System in which the size is specified. Recommended for apparel items.
+   * For more information, see
+   * [Size system](https://support.google.com/merchants/answer/6324502).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; + * + * @return Whether the sizeSystem field is set. + */ + @java.lang.Override + public boolean hasSizeSystem() { + return ((bitField1_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * System in which the size is specified. Recommended for apparel items.
+   * For more information, see
+   * [Size system](https://support.google.com/merchants/answer/6324502).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; + * + * @return The enum numeric value on the wire for sizeSystem. + */ + @java.lang.Override + public int getSizeSystemValue() { + return sizeSystem_; + } + + /** + * + * + *
+   * System in which the size is specified. Recommended for apparel items.
+   * For more information, see
+   * [Size system](https://support.google.com/merchants/answer/6324502).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; + * + * @return The sizeSystem. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.SizeSystem getSizeSystem() { + com.google.shopping.merchant.products.v1.SizeSystem result = + com.google.shopping.merchant.products.v1.SizeSystem.forNumber(sizeSystem_); + return result == null + ? com.google.shopping.merchant.products.v1.SizeSystem.UNRECOGNIZED + : result; + } + + public static final int SIZE_TYPES_FIELD_NUMBER = 50; + + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList sizeTypes_ = emptyIntList(); + + private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.SizeType> + sizeTypes_converter_ = + new com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.SizeType>() { + public com.google.shopping.merchant.products.v1.SizeType convert(int from) { + com.google.shopping.merchant.products.v1.SizeType result = + com.google.shopping.merchant.products.v1.SizeType.forNumber(from); + return result == null + ? com.google.shopping.merchant.products.v1.SizeType.UNRECOGNIZED + : result; + } + }; + + /** + * + * + *
+   * The cut of the item. It can be used to represent combined size types for
+   * apparel items. Maximum two of size types can be provided, see
+   * [Size type](https://support.google.com/merchants/answer/6324497).
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; + * + * @return A list containing the sizeTypes. + */ + @java.lang.Override + public java.util.List getSizeTypesList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.merchant.products.v1.SizeType>(sizeTypes_, sizeTypes_converter_); + } + + /** + * + * + *
+   * The cut of the item. It can be used to represent combined size types for
+   * apparel items. Maximum two of size types can be provided, see
+   * [Size type](https://support.google.com/merchants/answer/6324497).
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; + * + * @return The count of sizeTypes. + */ + @java.lang.Override + public int getSizeTypesCount() { + return sizeTypes_.size(); + } + + /** + * + * + *
+   * The cut of the item. It can be used to represent combined size types for
+   * apparel items. Maximum two of size types can be provided, see
+   * [Size type](https://support.google.com/merchants/answer/6324497).
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; + * + * @param index The index of the element to return. + * @return The sizeTypes at the given index. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.SizeType getSizeTypes(int index) { + return sizeTypes_converter_.convert(sizeTypes_.getInt(index)); + } + + /** + * + * + *
+   * The cut of the item. It can be used to represent combined size types for
+   * apparel items. Maximum two of size types can be provided, see
+   * [Size type](https://support.google.com/merchants/answer/6324497).
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; + * + * @return A list containing the enum numeric values on the wire for sizeTypes. + */ + @java.lang.Override + public java.util.List getSizeTypesValueList() { + return sizeTypes_; + } + + /** + * + * + *
+   * The cut of the item. It can be used to represent combined size types for
+   * apparel items. Maximum two of size types can be provided, see
+   * [Size type](https://support.google.com/merchants/answer/6324497).
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of sizeTypes at the given index. + */ + @java.lang.Override + public int getSizeTypesValue(int index) { + return sizeTypes_.getInt(index); + } + + private int sizeTypesMemoizedSerializedSize; + + public static final int ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER = 53; + private int energyEfficiencyClass_ = 0; + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * + * + * @return Whether the energyEfficiencyClass field is set. + */ + @java.lang.Override + public boolean hasEnergyEfficiencyClass() { + return ((bitField1_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * + * + * @return The enum numeric value on the wire for energyEfficiencyClass. + */ + @java.lang.Override + public int getEnergyEfficiencyClassValue() { + return energyEfficiencyClass_; + } + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * + * + * @return The energyEfficiencyClass. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass getEnergyEfficiencyClass() { + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( + energyEfficiencyClass_); + return result == null + ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED + : result; + } + + public static final int MIN_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER = 54; + private int minEnergyEfficiencyClass_ = 0; + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * + * + * @return Whether the minEnergyEfficiencyClass field is set. + */ + @java.lang.Override + public boolean hasMinEnergyEfficiencyClass() { + return ((bitField1_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * + * + * @return The enum numeric value on the wire for minEnergyEfficiencyClass. + */ + @java.lang.Override + public int getMinEnergyEfficiencyClassValue() { + return minEnergyEfficiencyClass_; + } + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * + * + * @return The minEnergyEfficiencyClass. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass + getMinEnergyEfficiencyClass() { + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( + minEnergyEfficiencyClass_); + return result == null + ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED + : result; + } + + public static final int MAX_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER = 55; + private int maxEnergyEfficiencyClass_ = 0; + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * + * + * @return Whether the maxEnergyEfficiencyClass field is set. + */ + @java.lang.Override + public boolean hasMaxEnergyEfficiencyClass() { + return ((bitField1_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * + * + * @return The enum numeric value on the wire for maxEnergyEfficiencyClass. + */ + @java.lang.Override + public int getMaxEnergyEfficiencyClassValue() { + return maxEnergyEfficiencyClass_; + } + + /** + * + * + *
+   * The [energy efficiency
+   * class](https://support.google.com/merchants/answer/7562785) as defined in
+   * EU directive 2010/30/EU.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * + * + * @return The maxEnergyEfficiencyClass. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass + getMaxEnergyEfficiencyClass() { + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( + maxEnergyEfficiencyClass_); + return result == null + ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED + : result; + } + + public static final int UNIT_PRICING_MEASURE_FIELD_NUMBER = 56; + private com.google.shopping.merchant.products.v1.UnitPricingMeasure unitPricingMeasure_; + + /** + * + * + *
+   * The measure and dimension of an item.
+   * 
+ * + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * + * @return Whether the unitPricingMeasure field is set. + */ + @java.lang.Override + public boolean hasUnitPricingMeasure() { + return ((bitField1_ & 0x00020000) != 0); + } + + /** + * + * + *
+   * The measure and dimension of an item.
+   * 
+ * + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * + * @return The unitPricingMeasure. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.UnitPricingMeasure getUnitPricingMeasure() { + return unitPricingMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() + : unitPricingMeasure_; + } + + /** + * + * + *
+   * The measure and dimension of an item.
+   * 
+ * + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder + getUnitPricingMeasureOrBuilder() { + return unitPricingMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() + : unitPricingMeasure_; + } + + public static final int UNIT_PRICING_BASE_MEASURE_FIELD_NUMBER = 57; + private com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure unitPricingBaseMeasure_; + + /** + * + * + *
+   * The preference of the denominator of the unit price.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * + * + * @return Whether the unitPricingBaseMeasure field is set. + */ + @java.lang.Override + public boolean hasUnitPricingBaseMeasure() { + return ((bitField1_ & 0x00040000) != 0); + } + + /** + * + * + *
+   * The preference of the denominator of the unit price.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * + * + * @return The unitPricingBaseMeasure. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure + getUnitPricingBaseMeasure() { + return unitPricingBaseMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() + : unitPricingBaseMeasure_; + } + + /** + * + * + *
+   * The preference of the denominator of the unit price.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder + getUnitPricingBaseMeasureOrBuilder() { + return unitPricingBaseMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() + : unitPricingBaseMeasure_; + } + + public static final int MULTIPACK_FIELD_NUMBER = 58; + private long multipack_ = 0L; + + /** + * + * + *
+   * The number of identical products in a business-defined multipack.
+   * 
+ * + * optional int64 multipack = 58; + * + * @return Whether the multipack field is set. + */ + @java.lang.Override + public boolean hasMultipack() { + return ((bitField1_ & 0x00080000) != 0); + } + + /** + * + * + *
+   * The number of identical products in a business-defined multipack.
+   * 
+ * + * optional int64 multipack = 58; + * + * @return The multipack. + */ + @java.lang.Override + public long getMultipack() { + return multipack_; + } + + public static final int ADS_GROUPING_FIELD_NUMBER = 59; + + @SuppressWarnings("serial") + private volatile java.lang.Object adsGrouping_ = ""; + + /** + * + * + *
+   * Used to group items in an arbitrary way. Only for CPA%, discouraged
+   * otherwise. For more information, see
+   * [Display ads
+   * attribute](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * optional string ads_grouping = 59; + * + * @return Whether the adsGrouping field is set. + */ + @java.lang.Override + public boolean hasAdsGrouping() { + return ((bitField1_ & 0x00100000) != 0); + } + + /** + * + * + *
+   * Used to group items in an arbitrary way. Only for CPA%, discouraged
+   * otherwise. For more information, see
+   * [Display ads
+   * attribute](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * optional string ads_grouping = 59; + * + * @return The adsGrouping. + */ + @java.lang.Override + public java.lang.String getAdsGrouping() { + java.lang.Object ref = adsGrouping_; + 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(); + adsGrouping_ = s; + return s; + } + } + + /** + * + * + *
+   * Used to group items in an arbitrary way. Only for CPA%, discouraged
+   * otherwise. For more information, see
+   * [Display ads
+   * attribute](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * optional string ads_grouping = 59; + * + * @return The bytes for adsGrouping. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAdsGroupingBytes() { + java.lang.Object ref = adsGrouping_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + adsGrouping_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ADS_LABELS_FIELD_NUMBER = 60; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList adsLabels_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Similar to ads_grouping, but only works on CPC.
+   * 
+ * + * repeated string ads_labels = 60; + * + * @return A list containing the adsLabels. + */ + public com.google.protobuf.ProtocolStringList getAdsLabelsList() { + return adsLabels_; + } + + /** + * + * + *
+   * Similar to ads_grouping, but only works on CPC.
+   * 
+ * + * repeated string ads_labels = 60; + * + * @return The count of adsLabels. + */ + public int getAdsLabelsCount() { + return adsLabels_.size(); + } + + /** + * + * + *
+   * Similar to ads_grouping, but only works on CPC.
+   * 
+ * + * repeated string ads_labels = 60; + * + * @param index The index of the element to return. + * @return The adsLabels at the given index. + */ + public java.lang.String getAdsLabels(int index) { + return adsLabels_.get(index); + } + + /** + * + * + *
+   * Similar to ads_grouping, but only works on CPC.
+   * 
+ * + * repeated string ads_labels = 60; + * + * @param index The index of the value to return. + * @return The bytes of the adsLabels at the given index. + */ + public com.google.protobuf.ByteString getAdsLabelsBytes(int index) { + return adsLabels_.getByteString(index); + } + + public static final int ADS_REDIRECT_FIELD_NUMBER = 61; + + @SuppressWarnings("serial") + private volatile java.lang.Object adsRedirect_ = ""; + + /** + * + * + *
+   * Allows advertisers to override the item URL when the product is shown
+   * within the context of Product ads.
+   * 
+ * + * optional string ads_redirect = 61; + * + * @return Whether the adsRedirect field is set. + */ + @java.lang.Override + public boolean hasAdsRedirect() { + return ((bitField1_ & 0x00200000) != 0); + } + + /** + * + * + *
+   * Allows advertisers to override the item URL when the product is shown
+   * within the context of Product ads.
+   * 
+ * + * optional string ads_redirect = 61; + * + * @return The adsRedirect. + */ + @java.lang.Override + public java.lang.String getAdsRedirect() { + java.lang.Object ref = adsRedirect_; + 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(); + adsRedirect_ = s; + return s; + } + } + + /** + * + * + *
+   * Allows advertisers to override the item URL when the product is shown
+   * within the context of Product ads.
+   * 
+ * + * optional string ads_redirect = 61; + * + * @return The bytes for adsRedirect. + */ + @java.lang.Override + public com.google.protobuf.ByteString getAdsRedirectBytes() { + java.lang.Object ref = adsRedirect_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + adsRedirect_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int COST_OF_GOODS_SOLD_FIELD_NUMBER = 62; + private com.google.shopping.type.Price costOfGoodsSold_; + + /** + * + * + *
+   * Cost of goods sold. Used for gross profit reporting.
+   * 
+ * + * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * @return Whether the costOfGoodsSold field is set. + */ + @java.lang.Override + public boolean hasCostOfGoodsSold() { + return ((bitField1_ & 0x00400000) != 0); + } + + /** + * + * + *
+   * Cost of goods sold. Used for gross profit reporting.
+   * 
+ * + * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * @return The costOfGoodsSold. + */ + @java.lang.Override + public com.google.shopping.type.Price getCostOfGoodsSold() { + return costOfGoodsSold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : costOfGoodsSold_; + } + + /** + * + * + *
+   * Cost of goods sold. Used for gross profit reporting.
+   * 
+ * + * .google.shopping.type.Price cost_of_goods_sold = 62; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getCostOfGoodsSoldOrBuilder() { + return costOfGoodsSold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : costOfGoodsSold_; + } + + public static final int PRODUCT_DETAILS_FIELD_NUMBER = 63; + + @SuppressWarnings("serial") + private java.util.List productDetails_; + + /** + * + * + *
+   * Technical specification or additional product details.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + */ + @java.lang.Override + public java.util.List + getProductDetailsList() { + return productDetails_; + } + + /** + * + * + *
+   * Technical specification or additional product details.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + */ + @java.lang.Override + public java.util.List + getProductDetailsOrBuilderList() { + return productDetails_; + } + + /** + * + * + *
+   * Technical specification or additional product details.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + */ + @java.lang.Override + public int getProductDetailsCount() { + return productDetails_.size(); + } + + /** + * + * + *
+   * Technical specification or additional product details.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDetail getProductDetails(int index) { + return productDetails_.get(index); + } + + /** + * + * + *
+   * Technical specification or additional product details.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductDetailOrBuilder getProductDetailsOrBuilder( + int index) { + return productDetails_.get(index); + } + + public static final int PRODUCT_HIGHLIGHTS_FIELD_NUMBER = 64; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList productHighlights_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Bullet points describing the most relevant [product
+   * highlights](https://support.google.com/merchants/answer/9216100).
+   * 
+ * + * repeated string product_highlights = 64; + * + * @return A list containing the productHighlights. + */ + public com.google.protobuf.ProtocolStringList getProductHighlightsList() { + return productHighlights_; + } + + /** + * + * + *
+   * Bullet points describing the most relevant [product
+   * highlights](https://support.google.com/merchants/answer/9216100).
+   * 
+ * + * repeated string product_highlights = 64; + * + * @return The count of productHighlights. + */ + public int getProductHighlightsCount() { + return productHighlights_.size(); + } + + /** + * + * + *
+   * Bullet points describing the most relevant [product
+   * highlights](https://support.google.com/merchants/answer/9216100).
+   * 
+ * + * repeated string product_highlights = 64; + * + * @param index The index of the element to return. + * @return The productHighlights at the given index. + */ + public java.lang.String getProductHighlights(int index) { + return productHighlights_.get(index); + } + + /** + * + * + *
+   * Bullet points describing the most relevant [product
+   * highlights](https://support.google.com/merchants/answer/9216100).
+   * 
+ * + * repeated string product_highlights = 64; + * + * @param index The index of the value to return. + * @return The bytes of the productHighlights at the given index. + */ + public com.google.protobuf.ByteString getProductHighlightsBytes(int index) { + return productHighlights_.getByteString(index); + } + + public static final int DISPLAY_ADS_ID_FIELD_NUMBER = 65; + + @SuppressWarnings("serial") + private volatile java.lang.Object displayAdsId_ = ""; + + /** + * + * + *
+   * An identifier for an item for dynamic remarketing campaigns.
+   * 
+ * + * optional string display_ads_id = 65; + * + * @return Whether the displayAdsId field is set. + */ + @java.lang.Override + public boolean hasDisplayAdsId() { + return ((bitField1_ & 0x00800000) != 0); + } + + /** + * + * + *
+   * An identifier for an item for dynamic remarketing campaigns.
+   * 
+ * + * optional string display_ads_id = 65; + * + * @return The displayAdsId. + */ + @java.lang.Override + public java.lang.String getDisplayAdsId() { + java.lang.Object ref = displayAdsId_; + 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(); + displayAdsId_ = s; + return s; + } + } + + /** + * + * + *
+   * An identifier for an item for dynamic remarketing campaigns.
+   * 
+ * + * optional string display_ads_id = 65; + * + * @return The bytes for displayAdsId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDisplayAdsIdBytes() { + java.lang.Object ref = displayAdsId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayAdsId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAY_ADS_SIMILAR_IDS_FIELD_NUMBER = 66; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList displayAdsSimilarIds_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Advertiser-specified recommendations. For more information, see
+   * [Display ads attribute
+   * specification](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @return A list containing the displayAdsSimilarIds. + */ + public com.google.protobuf.ProtocolStringList getDisplayAdsSimilarIdsList() { + return displayAdsSimilarIds_; + } + + /** + * + * + *
+   * Advertiser-specified recommendations. For more information, see
+   * [Display ads attribute
+   * specification](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @return The count of displayAdsSimilarIds. + */ + public int getDisplayAdsSimilarIdsCount() { + return displayAdsSimilarIds_.size(); + } + + /** + * + * + *
+   * Advertiser-specified recommendations. For more information, see
+   * [Display ads attribute
+   * specification](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @param index The index of the element to return. + * @return The displayAdsSimilarIds at the given index. + */ + public java.lang.String getDisplayAdsSimilarIds(int index) { + return displayAdsSimilarIds_.get(index); + } + + /** + * + * + *
+   * Advertiser-specified recommendations. For more information, see
+   * [Display ads attribute
+   * specification](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @param index The index of the value to return. + * @return The bytes of the displayAdsSimilarIds at the given index. + */ + public com.google.protobuf.ByteString getDisplayAdsSimilarIdsBytes(int index) { + return displayAdsSimilarIds_.getByteString(index); + } + + public static final int DISPLAY_ADS_TITLE_FIELD_NUMBER = 67; + + @SuppressWarnings("serial") + private volatile java.lang.Object displayAdsTitle_ = ""; + + /** + * + * + *
+   * Title of an item for dynamic remarketing campaigns.
+   * 
+ * + * optional string display_ads_title = 67; + * + * @return Whether the displayAdsTitle field is set. + */ + @java.lang.Override + public boolean hasDisplayAdsTitle() { + return ((bitField1_ & 0x01000000) != 0); + } + + /** + * + * + *
+   * Title of an item for dynamic remarketing campaigns.
+   * 
+ * + * optional string display_ads_title = 67; + * + * @return The displayAdsTitle. + */ + @java.lang.Override + public java.lang.String getDisplayAdsTitle() { + java.lang.Object ref = displayAdsTitle_; + 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(); + displayAdsTitle_ = s; + return s; + } + } + + /** + * + * + *
+   * Title of an item for dynamic remarketing campaigns.
+   * 
+ * + * optional string display_ads_title = 67; + * + * @return The bytes for displayAdsTitle. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDisplayAdsTitleBytes() { + java.lang.Object ref = displayAdsTitle_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayAdsTitle_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAY_ADS_LINK_FIELD_NUMBER = 68; + + @SuppressWarnings("serial") + private volatile java.lang.Object displayAdsLink_ = ""; + + /** + * + * + *
+   * URL directly to your item's landing page for dynamic remarketing
+   * campaigns.
+   * 
+ * + * optional string display_ads_link = 68; + * + * @return Whether the displayAdsLink field is set. + */ + @java.lang.Override + public boolean hasDisplayAdsLink() { + return ((bitField1_ & 0x02000000) != 0); + } + + /** + * + * + *
+   * URL directly to your item's landing page for dynamic remarketing
+   * campaigns.
+   * 
+ * + * optional string display_ads_link = 68; + * + * @return The displayAdsLink. + */ + @java.lang.Override + public java.lang.String getDisplayAdsLink() { + java.lang.Object ref = displayAdsLink_; + 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(); + displayAdsLink_ = s; + return s; + } + } + + /** + * + * + *
+   * URL directly to your item's landing page for dynamic remarketing
+   * campaigns.
+   * 
+ * + * optional string display_ads_link = 68; + * + * @return The bytes for displayAdsLink. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDisplayAdsLinkBytes() { + java.lang.Object ref = displayAdsLink_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayAdsLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAY_ADS_VALUE_FIELD_NUMBER = 69; + private double displayAdsValue_ = 0D; + + /** + * + * + *
+   * Offer margin for dynamic remarketing campaigns. For more information, see
+   * [Display ads
+   * attribute](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * optional double display_ads_value = 69; + * + * @return Whether the displayAdsValue field is set. + */ + @java.lang.Override + public boolean hasDisplayAdsValue() { + return ((bitField1_ & 0x04000000) != 0); + } + + /** + * + * + *
+   * Offer margin for dynamic remarketing campaigns. For more information, see
+   * [Display ads
+   * attribute](https://support.google.com/merchants/answer/6069387).
+   * 
+ * + * optional double display_ads_value = 69; + * + * @return The displayAdsValue. + */ + @java.lang.Override + public double getDisplayAdsValue() { + return displayAdsValue_; + } + + public static final int PROMOTION_IDS_FIELD_NUMBER = 70; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList promotionIds_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * The unique ID of a promotion.
+   * 
+ * + * repeated string promotion_ids = 70; + * + * @return A list containing the promotionIds. + */ + public com.google.protobuf.ProtocolStringList getPromotionIdsList() { + return promotionIds_; + } + + /** + * + * + *
+   * The unique ID of a promotion.
+   * 
+ * + * repeated string promotion_ids = 70; + * + * @return The count of promotionIds. + */ + public int getPromotionIdsCount() { + return promotionIds_.size(); + } + + /** + * + * + *
+   * The unique ID of a promotion.
+   * 
+ * + * repeated string promotion_ids = 70; + * + * @param index The index of the element to return. + * @return The promotionIds at the given index. + */ + public java.lang.String getPromotionIds(int index) { + return promotionIds_.get(index); + } + + /** + * + * + *
+   * The unique ID of a promotion.
+   * 
+ * + * repeated string promotion_ids = 70; + * + * @param index The index of the value to return. + * @return The bytes of the promotionIds at the given index. + */ + public com.google.protobuf.ByteString getPromotionIdsBytes(int index) { + return promotionIds_.getByteString(index); + } + + public static final int PICKUP_METHOD_FIELD_NUMBER = 80; + private int pickupMethod_ = 0; + + /** + * + * + *
+   * The [pickup](https://support.google.com/merchants/answer/14634021) option
+   * for the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * + * @return Whether the pickupMethod field is set. + */ + @java.lang.Override + public boolean hasPickupMethod() { + return ((bitField1_ & 0x08000000) != 0); + } + + /** + * + * + *
+   * The [pickup](https://support.google.com/merchants/answer/14634021) option
+   * for the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * + * @return The enum numeric value on the wire for pickupMethod. + */ + @java.lang.Override + public int getPickupMethodValue() { + return pickupMethod_; + } + + /** + * + * + *
+   * The [pickup](https://support.google.com/merchants/answer/14634021) option
+   * for the item.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * + * @return The pickupMethod. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupMethod getPickupMethod() { + com.google.shopping.merchant.products.v1.PickupMethod result = + com.google.shopping.merchant.products.v1.PickupMethod.forNumber(pickupMethod_); + return result == null + ? com.google.shopping.merchant.products.v1.PickupMethod.UNRECOGNIZED + : result; + } + + public static final int PICKUP_SLA_FIELD_NUMBER = 81; + private int pickupSla_ = 0; + + /** + * + * + *
+   * Item store pickup timeline. For more information, see
+   * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @return Whether the pickupSla field is set. + */ + @java.lang.Override + public boolean hasPickupSla() { + return ((bitField1_ & 0x10000000) != 0); + } + + /** + * + * + *
+   * Item store pickup timeline. For more information, see
+   * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @return The enum numeric value on the wire for pickupSla. + */ + @java.lang.Override + public int getPickupSlaValue() { + return pickupSla_; + } + + /** + * + * + *
+   * Item store pickup timeline. For more information, see
+   * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @return The pickupSla. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupSla getPickupSla() { + com.google.shopping.merchant.products.v1.PickupSla result = + com.google.shopping.merchant.products.v1.PickupSla.forNumber(pickupSla_); + return result == null + ? com.google.shopping.merchant.products.v1.PickupSla.UNRECOGNIZED + : result; + } + + public static final int PICKUP_COST_FIELD_NUMBER = 172; + private com.google.shopping.merchant.products.v1.PickupCost pickupCost_; + + /** + * + * + *
+   * Optional. The [pickup
+   * cost](https://support.google.com/merchants/answer/16988704) for an item
+   * when a customer buys it online and picks it up at a store.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the pickupCost field is set. + */ + @java.lang.Override + public boolean hasPickupCost() { + return ((bitField1_ & 0x20000000) != 0); + } + + /** + * + * + *
+   * Optional. The [pickup
+   * cost](https://support.google.com/merchants/answer/16988704) for an item
+   * when a customer buys it online and picks it up at a store.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The pickupCost. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupCost getPickupCost() { + return pickupCost_ == null + ? com.google.shopping.merchant.products.v1.PickupCost.getDefaultInstance() + : pickupCost_; + } + + /** + * + * + *
+   * Optional. The [pickup
+   * cost](https://support.google.com/merchants/answer/16988704) for an item
+   * when a customer buys it online and picks it up at a store.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupCostOrBuilder getPickupCostOrBuilder() { + return pickupCost_ == null + ? com.google.shopping.merchant.products.v1.PickupCost.getDefaultInstance() + : pickupCost_; + } + + public static final int LINK_TEMPLATE_FIELD_NUMBER = 82; + + @SuppressWarnings("serial") + private volatile java.lang.Object linkTemplate_ = ""; + + /** + * + * + *
+   * [Link template](https://support.google.com/merchants/answer/13871172) for
+   * business hosted local storefront.
+   * 
+ * + * optional string link_template = 82; + * + * @return Whether the linkTemplate field is set. + */ + @java.lang.Override + public boolean hasLinkTemplate() { + return ((bitField1_ & 0x40000000) != 0); + } + + /** + * + * + *
+   * [Link template](https://support.google.com/merchants/answer/13871172) for
+   * business hosted local storefront.
+   * 
+ * + * optional string link_template = 82; + * + * @return The linkTemplate. + */ + @java.lang.Override + public java.lang.String getLinkTemplate() { + java.lang.Object ref = linkTemplate_; + 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(); + linkTemplate_ = s; + return s; + } + } + + /** + * + * + *
+   * [Link template](https://support.google.com/merchants/answer/13871172) for
+   * business hosted local storefront.
+   * 
+ * + * optional string link_template = 82; + * + * @return The bytes for linkTemplate. + */ + @java.lang.Override + public com.google.protobuf.ByteString getLinkTemplateBytes() { + java.lang.Object ref = linkTemplate_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + linkTemplate_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MOBILE_LINK_TEMPLATE_FIELD_NUMBER = 83; + + @SuppressWarnings("serial") + private volatile java.lang.Object mobileLinkTemplate_ = ""; + + /** + * + * + *
+   * [Link template](https://support.google.com/merchants/answer/13870216) for
+   * business hosted local storefront optimized for mobile
+   * devices.
+   * 
+ * + * optional string mobile_link_template = 83; + * + * @return Whether the mobileLinkTemplate field is set. + */ + @java.lang.Override + public boolean hasMobileLinkTemplate() { + return ((bitField1_ & 0x80000000) != 0); + } + + /** + * + * + *
+   * [Link template](https://support.google.com/merchants/answer/13870216) for
+   * business hosted local storefront optimized for mobile
+   * devices.
+   * 
+ * + * optional string mobile_link_template = 83; + * + * @return The mobileLinkTemplate. + */ + @java.lang.Override + public java.lang.String getMobileLinkTemplate() { + java.lang.Object ref = mobileLinkTemplate_; + 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(); + mobileLinkTemplate_ = s; + return s; + } + } + + /** + * + * + *
+   * [Link template](https://support.google.com/merchants/answer/13870216) for
+   * business hosted local storefront optimized for mobile
+   * devices.
+   * 
+ * + * optional string mobile_link_template = 83; + * + * @return The bytes for mobileLinkTemplate. + */ + @java.lang.Override + public com.google.protobuf.ByteString getMobileLinkTemplateBytes() { + java.lang.Object ref = mobileLinkTemplate_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + mobileLinkTemplate_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CUSTOM_LABEL_0_FIELD_NUMBER = 71; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel0_ = ""; + + /** + * + * + *
+   * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+   * custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_0 = 71; + * + * @return Whether the customLabel0 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel0() { + return ((bitField2_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+   * custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_0 = 71; + * + * @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](https://support.google.com/merchants/answer/6324473) for
+   * custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_0 = 71; + * + * @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_LABEL_1_FIELD_NUMBER = 72; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel1_ = ""; + + /** + * + * + *
+   * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_1 = 72; + * + * @return Whether the customLabel1 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel1() { + return ((bitField2_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_1 = 72; + * + * @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](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_1 = 72; + * + * @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_LABEL_2_FIELD_NUMBER = 73; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel2_ = ""; + + /** + * + * + *
+   * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_2 = 73; + * + * @return Whether the customLabel2 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel2() { + return ((bitField2_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_2 = 73; + * + * @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](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_2 = 73; + * + * @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_LABEL_3_FIELD_NUMBER = 74; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel3_ = ""; + + /** + * + * + *
+   * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_3 = 74; + * + * @return Whether the customLabel3 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel3() { + return ((bitField2_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_3 = 74; + * + * @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](https://support.google.com/merchants/answer/6324473)
+   * for custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_3 = 74; + * + * @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_LABEL_4_FIELD_NUMBER = 75; + + @SuppressWarnings("serial") + private volatile java.lang.Object customLabel4_ = ""; + + /** + * + * + *
+   * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+   * custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_4 = 75; + * + * @return Whether the customLabel4 field is set. + */ + @java.lang.Override + public boolean hasCustomLabel4() { + return ((bitField2_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+   * custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_4 = 75; + * + * @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](https://support.google.com/merchants/answer/6324473) for
+   * custom grouping of items in a Shopping campaign.
+   * 
+ * + * optional string custom_label_4 = 75; + * + * @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 INCLUDED_DESTINATIONS_FIELD_NUMBER = 76; + + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList includedDestinations_ = emptyIntList(); + + private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.type.Destination.DestinationEnum> + includedDestinations_converter_ = + new com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.type.Destination.DestinationEnum>() { + public com.google.shopping.type.Destination.DestinationEnum convert(int from) { + com.google.shopping.type.Destination.DestinationEnum result = + com.google.shopping.type.Destination.DestinationEnum.forNumber(from); + return result == null + ? com.google.shopping.type.Destination.DestinationEnum.UNRECOGNIZED + : result; + } + }; + + /** + * + * + *
+   * The list of destinations to include for this target (corresponds to
+   * checked check boxes in Merchant Center). Default destinations are always
+   * included unless provided in `excludedDestinations`.
+   *
+   * For more information, see
+   * [Included
+   * destination](https://support.google.com/merchants/answer/7501026).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * + * @return A list containing the includedDestinations. + */ + @java.lang.Override + public java.util.List + getIncludedDestinationsList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.type.Destination.DestinationEnum>( + includedDestinations_, includedDestinations_converter_); + } + + /** + * + * + *
+   * The list of destinations to include for this target (corresponds to
+   * checked check boxes in Merchant Center). Default destinations are always
+   * included unless provided in `excludedDestinations`.
+   *
+   * For more information, see
+   * [Included
+   * destination](https://support.google.com/merchants/answer/7501026).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * + * @return The count of includedDestinations. + */ + @java.lang.Override + public int getIncludedDestinationsCount() { + return includedDestinations_.size(); + } + + /** + * + * + *
+   * The list of destinations to include for this target (corresponds to
+   * checked check boxes in Merchant Center). Default destinations are always
+   * included unless provided in `excludedDestinations`.
+   *
+   * For more information, see
+   * [Included
+   * destination](https://support.google.com/merchants/answer/7501026).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * + * @param index The index of the element to return. + * @return The includedDestinations at the given index. + */ + @java.lang.Override + public com.google.shopping.type.Destination.DestinationEnum getIncludedDestinations(int index) { + return includedDestinations_converter_.convert(includedDestinations_.getInt(index)); + } + + /** + * + * + *
+   * The list of destinations to include for this target (corresponds to
+   * checked check boxes in Merchant Center). Default destinations are always
+   * included unless provided in `excludedDestinations`.
+   *
+   * For more information, see
+   * [Included
+   * destination](https://support.google.com/merchants/answer/7501026).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * + * @return A list containing the enum numeric values on the wire for includedDestinations. + */ + @java.lang.Override + public java.util.List getIncludedDestinationsValueList() { + return includedDestinations_; + } + + /** + * + * + *
+   * The list of destinations to include for this target (corresponds to
+   * checked check boxes in Merchant Center). Default destinations are always
+   * included unless provided in `excludedDestinations`.
+   *
+   * For more information, see
+   * [Included
+   * destination](https://support.google.com/merchants/answer/7501026).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of includedDestinations at the given index. + */ + @java.lang.Override + public int getIncludedDestinationsValue(int index) { + return includedDestinations_.getInt(index); + } + + private int includedDestinationsMemoizedSerializedSize; + + public static final int EXCLUDED_DESTINATIONS_FIELD_NUMBER = 77; + + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList excludedDestinations_ = emptyIntList(); + + private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.type.Destination.DestinationEnum> + excludedDestinations_converter_ = + new com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.type.Destination.DestinationEnum>() { + public com.google.shopping.type.Destination.DestinationEnum convert(int from) { + com.google.shopping.type.Destination.DestinationEnum result = + com.google.shopping.type.Destination.DestinationEnum.forNumber(from); + return result == null + ? com.google.shopping.type.Destination.DestinationEnum.UNRECOGNIZED + : result; + } + }; + + /** + * + * + *
+   * The list of destinations to exclude for this target (corresponds to
+   * unchecked check boxes in Merchant Center).
+   *
+   * For more information, see
+   * [Excluded
+   * destination](https://support.google.com/merchants/answer/6324486).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @return A list containing the excludedDestinations. + */ + @java.lang.Override + public java.util.List + getExcludedDestinationsList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.type.Destination.DestinationEnum>( + excludedDestinations_, excludedDestinations_converter_); + } + + /** + * + * + *
+   * The list of destinations to exclude for this target (corresponds to
+   * unchecked check boxes in Merchant Center).
+   *
+   * For more information, see
+   * [Excluded
+   * destination](https://support.google.com/merchants/answer/6324486).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @return The count of excludedDestinations. + */ + @java.lang.Override + public int getExcludedDestinationsCount() { + return excludedDestinations_.size(); + } + + /** + * + * + *
+   * The list of destinations to exclude for this target (corresponds to
+   * unchecked check boxes in Merchant Center).
+   *
+   * For more information, see
+   * [Excluded
+   * destination](https://support.google.com/merchants/answer/6324486).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param index The index of the element to return. + * @return The excludedDestinations at the given index. + */ + @java.lang.Override + public com.google.shopping.type.Destination.DestinationEnum getExcludedDestinations(int index) { + return excludedDestinations_converter_.convert(excludedDestinations_.getInt(index)); + } + + /** + * + * + *
+   * The list of destinations to exclude for this target (corresponds to
+   * unchecked check boxes in Merchant Center).
+   *
+   * For more information, see
+   * [Excluded
+   * destination](https://support.google.com/merchants/answer/6324486).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @return A list containing the enum numeric values on the wire for excludedDestinations. + */ + @java.lang.Override + public java.util.List getExcludedDestinationsValueList() { + return excludedDestinations_; + } + + /** + * + * + *
+   * The list of destinations to exclude for this target (corresponds to
+   * unchecked check boxes in Merchant Center).
+   *
+   * For more information, see
+   * [Excluded
+   * destination](https://support.google.com/merchants/answer/6324486).
+   *
+   * Note: We recommend setting destinations on datasources level for most use
+   * cases. Use this field within products to only setup exceptions.
+   * 
+ * + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of excludedDestinations at the given index. + */ + @java.lang.Override + public int getExcludedDestinationsValue(int index) { + return excludedDestinations_.getInt(index); + } + + private int excludedDestinationsMemoizedSerializedSize; + + public static final int SHOPPING_ADS_EXCLUDED_COUNTRIES_FIELD_NUMBER = 78; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList shoppingAdsExcludedCountries_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * List of country codes [(ISO 3166-1
+   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+   * offer from Shopping Ads destination. Countries from this list are removed
+   * from countries configured in data source settings.
+   * 
+ * + * repeated string shopping_ads_excluded_countries = 78; + * + * @return A list containing the shoppingAdsExcludedCountries. + */ + public com.google.protobuf.ProtocolStringList getShoppingAdsExcludedCountriesList() { + return shoppingAdsExcludedCountries_; + } + + /** + * + * + *
+   * List of country codes [(ISO 3166-1
+   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+   * offer from Shopping Ads destination. Countries from this list are removed
+   * from countries configured in data source settings.
+   * 
+ * + * repeated string shopping_ads_excluded_countries = 78; + * + * @return The count of shoppingAdsExcludedCountries. + */ + public int getShoppingAdsExcludedCountriesCount() { + return shoppingAdsExcludedCountries_.size(); + } + + /** + * + * + *
+   * List of country codes [(ISO 3166-1
+   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+   * offer from Shopping Ads destination. Countries from this list are removed
+   * from countries configured in data source settings.
+   * 
+ * + * repeated string shopping_ads_excluded_countries = 78; + * + * @param index The index of the element to return. + * @return The shoppingAdsExcludedCountries at the given index. + */ + public java.lang.String getShoppingAdsExcludedCountries(int index) { + return shoppingAdsExcludedCountries_.get(index); + } + + /** + * + * + *
+   * List of country codes [(ISO 3166-1
+   * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+   * offer from Shopping Ads destination. Countries from this list are removed
+   * from countries configured in data source settings.
+   * 
+ * + * repeated string shopping_ads_excluded_countries = 78; + * + * @param index The index of the value to return. + * @return The bytes of the shoppingAdsExcludedCountries at the given index. + */ + public com.google.protobuf.ByteString getShoppingAdsExcludedCountriesBytes(int index) { + return shoppingAdsExcludedCountries_.getByteString(index); + } + + public static final int EXTERNAL_SELLER_ID_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object externalSellerId_ = ""; + + /** + * + * + *
+   * Required for multi-seller accounts. Use this attribute if you're a
+   * marketplace uploading products for various sellers to your multi-seller
+   * account.
+   * 
+ * + * optional string external_seller_id = 1; + * + * @return Whether the externalSellerId field is set. + */ + @java.lang.Override + public boolean hasExternalSellerId() { + return ((bitField2_ & 0x00000020) != 0); + } + + /** + * + * + *
+   * Required for multi-seller accounts. Use this attribute if you're a
+   * marketplace uploading products for various sellers to your multi-seller
+   * account.
+   * 
+ * + * optional string external_seller_id = 1; + * + * @return The externalSellerId. + */ + @java.lang.Override + public java.lang.String getExternalSellerId() { + java.lang.Object ref = externalSellerId_; + 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(); + externalSellerId_ = s; + return s; + } + } + + /** + * + * + *
+   * Required for multi-seller accounts. Use this attribute if you're a
+   * marketplace uploading products for various sellers to your multi-seller
+   * account.
+   * 
+ * + * optional string external_seller_id = 1; + * + * @return The bytes for externalSellerId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getExternalSellerIdBytes() { + java.lang.Object ref = externalSellerId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + externalSellerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAUSE_FIELD_NUMBER = 13; + private int pause_ = 0; + + /** + * + * + *
+   * Publication of this item will be temporarily
+   * [paused](https://support.google.com/merchants/answer/11909930).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * + * @return Whether the pause field is set. + */ + @java.lang.Override + public boolean hasPause() { + return ((bitField2_ & 0x00000040) != 0); + } + + /** + * + * + *
+   * Publication of this item will be temporarily
+   * [paused](https://support.google.com/merchants/answer/11909930).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * + * @return The enum numeric value on the wire for pause. + */ + @java.lang.Override + public int getPauseValue() { + return pause_; + } + + /** + * + * + *
+   * Publication of this item will be temporarily
+   * [paused](https://support.google.com/merchants/answer/11909930).
+   * 
+ * + * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * + * @return The pause. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Pause getPause() { + com.google.shopping.merchant.products.v1.Pause result = + com.google.shopping.merchant.products.v1.Pause.forNumber(pause_); + return result == null ? com.google.shopping.merchant.products.v1.Pause.UNRECOGNIZED : result; + } + + public static final int LIFESTYLE_IMAGE_LINKS_FIELD_NUMBER = 14; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList lifestyleImageLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Additional URLs of lifestyle images of the item, used to explicitly
+   * identify images that showcase your item in a real-world context. See the
+   * [Help Center article](https://support.google.com/merchants/answer/9103186)
+   * for more information.
+   * 
+ * + * repeated string lifestyle_image_links = 14; + * + * @return A list containing the lifestyleImageLinks. + */ + public com.google.protobuf.ProtocolStringList getLifestyleImageLinksList() { + return lifestyleImageLinks_; + } + + /** + * + * + *
+   * Additional URLs of lifestyle images of the item, used to explicitly
+   * identify images that showcase your item in a real-world context. See the
+   * [Help Center article](https://support.google.com/merchants/answer/9103186)
+   * for more information.
+   * 
+ * + * repeated string lifestyle_image_links = 14; + * + * @return The count of lifestyleImageLinks. + */ + public int getLifestyleImageLinksCount() { + return lifestyleImageLinks_.size(); + } + + /** + * + * + *
+   * Additional URLs of lifestyle images of the item, used to explicitly
+   * identify images that showcase your item in a real-world context. See the
+   * [Help Center article](https://support.google.com/merchants/answer/9103186)
+   * for more information.
+   * 
+ * + * repeated string lifestyle_image_links = 14; + * + * @param index The index of the element to return. + * @return The lifestyleImageLinks at the given index. + */ + public java.lang.String getLifestyleImageLinks(int index) { + return lifestyleImageLinks_.get(index); + } + + /** + * + * + *
+   * Additional URLs of lifestyle images of the item, used to explicitly
+   * identify images that showcase your item in a real-world context. See the
+   * [Help Center article](https://support.google.com/merchants/answer/9103186)
+   * for more information.
+   * 
+ * + * repeated string lifestyle_image_links = 14; + * + * @param index The index of the value to return. + * @return The bytes of the lifestyleImageLinks at the given index. + */ + public com.google.protobuf.ByteString getLifestyleImageLinksBytes(int index) { + return lifestyleImageLinks_.getByteString(index); + } + + public static final int CLOUD_EXPORT_ADDITIONAL_PROPERTIES_FIELD_NUMBER = 84; + + @SuppressWarnings("serial") + private java.util.List + cloudExportAdditionalProperties_; + + /** + * + * + *
+   * Extra fields to export to the Cloud Retail program.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * + */ + @java.lang.Override + public java.util.List + getCloudExportAdditionalPropertiesList() { + return cloudExportAdditionalProperties_; + } + + /** + * + * + *
+   * Extra fields to export to the Cloud Retail program.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> + getCloudExportAdditionalPropertiesOrBuilderList() { + return cloudExportAdditionalProperties_; + } + + /** + * + * + *
+   * Extra fields to export to the Cloud Retail program.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * + */ + @java.lang.Override + public int getCloudExportAdditionalPropertiesCount() { + return cloudExportAdditionalProperties_.size(); + } + + /** + * + * + *
+   * Extra fields to export to the Cloud Retail program.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties + getCloudExportAdditionalProperties(int index) { + return cloudExportAdditionalProperties_.get(index); + } + + /** + * + * + *
+   * Extra fields to export to the Cloud Retail program.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder + getCloudExportAdditionalPropertiesOrBuilder(int index) { + return cloudExportAdditionalProperties_.get(index); + } + + public static final int VIRTUAL_MODEL_LINK_FIELD_NUMBER = 130; + + @SuppressWarnings("serial") + private volatile java.lang.Object virtualModelLink_ = ""; + + /** + * + * + *
+   * URL of the 3D image of the item. See the
+   * [Help Center article](https://support.google.com/merchants/answer/13674896)
+   * for more information.
+   * 
+ * + * optional string virtual_model_link = 130; + * + * @return Whether the virtualModelLink field is set. + */ + @java.lang.Override + public boolean hasVirtualModelLink() { + return ((bitField2_ & 0x00000080) != 0); + } + + /** + * + * + *
+   * URL of the 3D image of the item. See the
+   * [Help Center article](https://support.google.com/merchants/answer/13674896)
+   * for more information.
+   * 
+ * + * optional string virtual_model_link = 130; + * + * @return The virtualModelLink. + */ + @java.lang.Override + public java.lang.String getVirtualModelLink() { + java.lang.Object ref = virtualModelLink_; + 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(); + virtualModelLink_ = s; + return s; + } + } + + /** + * + * + *
+   * URL of the 3D image of the item. See the
+   * [Help Center article](https://support.google.com/merchants/answer/13674896)
+   * for more information.
+   * 
+ * + * optional string virtual_model_link = 130; + * + * @return The bytes for virtualModelLink. + */ + @java.lang.Override + public com.google.protobuf.ByteString getVirtualModelLinkBytes() { + java.lang.Object ref = virtualModelLink_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + virtualModelLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CERTIFICATIONS_FIELD_NUMBER = 123; + + @SuppressWarnings("serial") + private java.util.List + certifications_; + + /** + * + * + *
+   * Product Certifications, for example for energy efficiency labeling of
+   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+   * database. See the [Help
+   * Center](https://support.google.com/merchants/answer/13528839)
+   * article for more information.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * + */ + @java.lang.Override + public java.util.List + getCertificationsList() { + return certifications_; + } + + /** + * + * + *
+   * Product Certifications, for example for energy efficiency labeling of
+   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+   * database. See the [Help
+   * Center](https://support.google.com/merchants/answer/13528839)
+   * article for more information.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * + */ + @java.lang.Override + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> + getCertificationsOrBuilderList() { + return certifications_; + } + + /** + * + * + *
+   * Product Certifications, for example for energy efficiency labeling of
+   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+   * database. See the [Help
+   * Center](https://support.google.com/merchants/answer/13528839)
+   * article for more information.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * + */ + @java.lang.Override + public int getCertificationsCount() { + return certifications_.size(); + } + + /** + * + * + *
+   * Product Certifications, for example for energy efficiency labeling of
+   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+   * database. See the [Help
+   * Center](https://support.google.com/merchants/answer/13528839)
+   * article for more information.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductCertification getCertifications( + int index) { + return certifications_.get(index); + } + + /** + * + * + *
+   * Product Certifications, for example for energy efficiency labeling of
+   * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+   * database. See the [Help
+   * Center](https://support.google.com/merchants/answer/13528839)
+   * article for more information.
+   * 
+ * + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder + getCertificationsOrBuilder(int index) { + return certifications_.get(index); + } + + public static final int STRUCTURED_TITLE_FIELD_NUMBER = 132; + private com.google.shopping.merchant.products.v1.StructuredTitle structuredTitle_; + + /** + * + * + *
+   * Structured title, for algorithmically (AI)-generated titles.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * + * @return Whether the structuredTitle field is set. + */ + @java.lang.Override + public boolean hasStructuredTitle() { + return ((bitField2_ & 0x00000100) != 0); + } + + /** + * + * + *
+   * Structured title, for algorithmically (AI)-generated titles.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * + * @return The structuredTitle. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.StructuredTitle getStructuredTitle() { + return structuredTitle_ == null + ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() + : structuredTitle_; + } + + /** + * + * + *
+   * Structured title, for algorithmically (AI)-generated titles.
+   * 
+ * + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder + getStructuredTitleOrBuilder() { + return structuredTitle_ == null + ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() + : structuredTitle_; + } + + public static final int STRUCTURED_DESCRIPTION_FIELD_NUMBER = 133; + private com.google.shopping.merchant.products.v1.StructuredDescription structuredDescription_; + + /** + * + * + *
+   * Structured description, for algorithmically (AI)-generated descriptions.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * + * + * @return Whether the structuredDescription field is set. + */ + @java.lang.Override + public boolean hasStructuredDescription() { + return ((bitField2_ & 0x00000200) != 0); + } + + /** + * + * + *
+   * Structured description, for algorithmically (AI)-generated descriptions.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * + * + * @return The structuredDescription. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.StructuredDescription getStructuredDescription() { + return structuredDescription_ == null + ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() + : structuredDescription_; + } + + /** + * + * + *
+   * Structured description, for algorithmically (AI)-generated descriptions.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder + getStructuredDescriptionOrBuilder() { + return structuredDescription_ == null + ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() + : structuredDescription_; + } + + public static final int AUTO_PRICING_MIN_PRICE_FIELD_NUMBER = 124; + private com.google.shopping.type.Price autoPricingMinPrice_; + + /** + * + * + *
+   * A safeguard in the [automated discounts]
+   * (https://support.google.com/merchants/answer/10295759) and
+   * "Dynamic Promotions"
+   * (https://support.google.com/merchants/answer/13949249) projects,
+   * ensuring that discounts on business offers do not fall below this value,
+   * thereby preserving the offer's value and profitability.
+   * 
+ * + * .google.shopping.type.Price auto_pricing_min_price = 124; + * + * @return Whether the autoPricingMinPrice field is set. + */ + @java.lang.Override + public boolean hasAutoPricingMinPrice() { + return ((bitField2_ & 0x00000400) != 0); + } + + /** + * + * + *
+   * A safeguard in the [automated discounts]
+   * (https://support.google.com/merchants/answer/10295759) and
+   * "Dynamic Promotions"
+   * (https://support.google.com/merchants/answer/13949249) projects,
+   * ensuring that discounts on business offers do not fall below this value,
+   * thereby preserving the offer's value and profitability.
+   * 
+ * + * .google.shopping.type.Price auto_pricing_min_price = 124; + * + * @return The autoPricingMinPrice. + */ + @java.lang.Override + public com.google.shopping.type.Price getAutoPricingMinPrice() { + return autoPricingMinPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : autoPricingMinPrice_; + } + + /** + * + * + *
+   * A safeguard in the [automated discounts]
+   * (https://support.google.com/merchants/answer/10295759) and
+   * "Dynamic Promotions"
+   * (https://support.google.com/merchants/answer/13949249) projects,
+   * ensuring that discounts on business offers do not fall below this value,
+   * thereby preserving the offer's value and profitability.
+   * 
+ * + * .google.shopping.type.Price auto_pricing_min_price = 124; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getAutoPricingMinPriceOrBuilder() { + return autoPricingMinPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : autoPricingMinPrice_; + } + + public static final int SUSTAINABILITY_INCENTIVES_FIELD_NUMBER = 138; + + @SuppressWarnings("serial") + private java.util.List + sustainabilityIncentives_; + + /** + * + * + *
+   * The list of sustainability incentive programs.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * + */ + @java.lang.Override + public java.util.List + getSustainabilityIncentivesList() { + return sustainabilityIncentives_; + } + + /** + * + * + *
+   * The list of sustainability incentive programs.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> + getSustainabilityIncentivesOrBuilderList() { + return sustainabilityIncentives_; + } + + /** + * + * + *
+   * The list of sustainability incentive programs.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * + */ + @java.lang.Override + public int getSustainabilityIncentivesCount() { + return sustainabilityIncentives_.size(); + } + + /** + * + * + *
+   * The list of sustainability incentive programs.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive + getSustainabilityIncentives(int index) { + return sustainabilityIncentives_.get(index); + } + + /** + * + * + *
+   * The list of sustainability incentive programs.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder + getSustainabilityIncentivesOrBuilder(int index) { + return sustainabilityIncentives_.get(index); + } + + public static final int VIDEO_LINKS_FIELD_NUMBER = 169; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList videoLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Optional. A list of video URLs for the item. Use this attribute to provide
+   * more visuals for your product beyond your image attributes. See the [Help
+   * Center article](https://support.google.com/merchants/answer/15216925) for
+   * more information.
+   * 
+ * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return A list containing the videoLinks. + */ + public com.google.protobuf.ProtocolStringList getVideoLinksList() { + return videoLinks_; + } + + /** + * + * + *
+   * Optional. A list of video URLs for the item. Use this attribute to provide
+   * more visuals for your product beyond your image attributes. See the [Help
+   * Center article](https://support.google.com/merchants/answer/15216925) for
+   * more information.
+   * 
+ * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The count of videoLinks. + */ + public int getVideoLinksCount() { + return videoLinks_.size(); + } + + /** + * + * + *
+   * Optional. A list of video URLs for the item. Use this attribute to provide
+   * more visuals for your product beyond your image attributes. See the [Help
+   * Center article](https://support.google.com/merchants/answer/15216925) for
+   * more information.
+   * 
+ * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the element to return. + * @return The videoLinks at the given index. + */ + public java.lang.String getVideoLinks(int index) { + return videoLinks_.get(index); + } + + /** + * + * + *
+   * Optional. A list of video URLs for the item. Use this attribute to provide
+   * more visuals for your product beyond your image attributes. See the [Help
+   * Center article](https://support.google.com/merchants/answer/15216925) for
+   * more information.
+   * 
+ * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the value to return. + * @return The bytes of the videoLinks at the given index. + */ + public com.google.protobuf.ByteString getVideoLinksBytes(int index) { + return videoLinks_.getByteString(index); + } + + public static final int MINIMUM_ORDER_VALUES_FIELD_NUMBER = 146; + + @SuppressWarnings("serial") + private java.util.List + minimumOrderValues_; + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + @java.lang.Override + public java.util.List + getMinimumOrderValuesList() { + return minimumOrderValues_; + } + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + @java.lang.Override + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder> + getMinimumOrderValuesOrBuilderList() { + return minimumOrderValues_; + } + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + @java.lang.Override + public int getMinimumOrderValuesCount() { + return minimumOrderValues_.size(); + } + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue getMinimumOrderValues( + int index) { + return minimumOrderValues_.get(index); + } + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder + getMinimumOrderValuesOrBuilder(int index) { + return minimumOrderValues_.get(index); + } + + public static final int VIN_FIELD_NUMBER = 147; + + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + + /** + * + * + *
+   * The [Vehicle Identification Number
+   * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+   * vehicle.
+   * 
+ * + * string vin = 147; + * + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + 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(); + vin_ = s; + return s; + } + } + + /** + * + * + *
+   * The [Vehicle Identification Number
+   * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+   * vehicle.
+   * 
+ * + * string vin = 147; + * + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MODEL_FIELD_NUMBER = 148; + + @SuppressWarnings("serial") + private volatile java.lang.Object model_ = ""; + + /** + * + * + *
+   * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+   * vehicle, such as `LX`, `EX`, and others.
+   * 
+ * + * string model = 148; + * + * @return The model. + */ + @java.lang.Override + public java.lang.String getModel() { + java.lang.Object ref = model_; + 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(); + model_ = s; + return s; + } + } + + /** + * + * + *
+   * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+   * vehicle, such as `LX`, `EX`, and others.
+   * 
+ * + * string model = 148; + * + * @return The bytes for model. + */ + @java.lang.Override + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TRIM_FIELD_NUMBER = 149; + + @SuppressWarnings("serial") + private volatile java.lang.Object trim_ = ""; + + /** + * + * + *
+   * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+   * vehicle model, such as `S`, `SV`, `SL` and others.
+   * 
+ * + * string trim = 149; + * + * @return The trim. + */ + @java.lang.Override + public java.lang.String getTrim() { + java.lang.Object ref = trim_; + 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(); + trim_ = s; + return s; + } + } + + /** + * + * + *
+   * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+   * vehicle model, such as `S`, `SV`, `SL` and others.
+   * 
+ * + * string trim = 149; + * + * @return The bytes for trim. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTrimBytes() { + java.lang.Object ref = trim_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + trim_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BODY_STYLE_FIELD_NUMBER = 150; + private int bodyStyle_ = 0; + + /** + * + * + *
+   * The [body style](https://support.google.com/google-ads/answer/14157085) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * + * + * @return The enum numeric value on the wire for bodyStyle. + */ + @java.lang.Override + public int getBodyStyleValue() { + return bodyStyle_; + } + + /** + * + * + *
+   * The [body style](https://support.google.com/google-ads/answer/14157085) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * + * + * @return The bodyStyle. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle + getBodyStyle() { + com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle result = + com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle.forNumber( + bodyStyle_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle.UNRECOGNIZED + : result; + } + + public static final int YEAR_FIELD_NUMBER = 151; + private long year_ = 0L; + + /** + * + * + *
+   * The [Year](https://support.google.com/google-ads/answer/14152816) of the
+   * vehicle model.
+   * 
+ * + * int64 year = 151; + * + * @return The year. + */ + @java.lang.Override + public long getYear() { + return year_; + } + + public static final int MILEAGE_FIELD_NUMBER = 152; + private com.google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage_; + + /** + * + * + *
+   * The number of miles/kms on the vehicle. See the
+   * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+   * information.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + * + * @return Whether the mileage field is set. + */ + @java.lang.Override + public boolean hasMileage() { + return ((bitField2_ & 0x00000800) != 0); + } + + /** + * + * + *
+   * The number of miles/kms on the vehicle. See the
+   * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+   * information.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + * + * @return The mileage. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getMileage() { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.getDefaultInstance() + : mileage_; + } + + /** + * + * + *
+   * The number of miles/kms on the vehicle. See the
+   * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+   * information.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getMileageOrBuilder() { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.getDefaultInstance() + : mileage_; + } + + public static final int ELECTRIC_RANGE_FIELD_NUMBER = 153; + private com.google.shopping.merchant.products.v1.ProductAttributes.Mileage electricRange_; + + /** + * + * + *
+   * The [electric range](https://support.google.com/google-ads/answer/15162232)
+   * of the vehicle in miles/kms.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + * + * @return Whether the electricRange field is set. + */ + @java.lang.Override + public boolean hasElectricRange() { + return ((bitField2_ & 0x00001000) != 0); + } + + /** + * + * + *
+   * The [electric range](https://support.google.com/google-ads/answer/15162232)
+   * of the vehicle in miles/kms.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + * + * @return The electricRange. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getElectricRange() { + return electricRange_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.getDefaultInstance() + : electricRange_; + } + + /** + * + * + *
+   * The [electric range](https://support.google.com/google-ads/answer/15162232)
+   * of the vehicle in miles/kms.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getElectricRangeOrBuilder() { + return electricRange_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.getDefaultInstance() + : electricRange_; + } + + public static final int FUEL_CONSUMPTION_FIELD_NUMBER = 154; + private com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + fuelConsumption_; + + /** + * + * + *
+   * The [fuel
+   * consumption](https://support.google.com/google-ads/answer/14543580) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * + * + * @return Whether the fuelConsumption field is set. + */ + @java.lang.Override + public boolean hasFuelConsumption() { + return ((bitField2_ & 0x00002000) != 0); + } + + /** + * + * + *
+   * The [fuel
+   * consumption](https://support.google.com/google-ads/answer/14543580) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * + * + * @return The fuelConsumption. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + getFuelConsumption() { + return fuelConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumption_; + } + + /** + * + * + *
+   * The [fuel
+   * consumption](https://support.google.com/google-ads/answer/14543580) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder + getFuelConsumptionOrBuilder() { + return fuelConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumption_; + } + + public static final int FUEL_CONSUMPTION_DISCHARGED_BATTERY_FIELD_NUMBER = 155; + private com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + fuelConsumptionDischargedBattery_; + + /** + * + * + *
+   * The fuel consumption of the vehicle when the hybrid battery is discharged.
+   * See the [Help Center
+   * article](https://support.google.com/google-ads/answer/15162033) for more
+   * information.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; + * + * + * @return Whether the fuelConsumptionDischargedBattery field is set. + */ + @java.lang.Override + public boolean hasFuelConsumptionDischargedBattery() { + return ((bitField2_ & 0x00004000) != 0); + } + + /** + * + * + *
+   * The fuel consumption of the vehicle when the hybrid battery is discharged.
+   * See the [Help Center
+   * article](https://support.google.com/google-ads/answer/15162033) for more
+   * information.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; + * + * + * @return The fuelConsumptionDischargedBattery. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + getFuelConsumptionDischargedBattery() { + return fuelConsumptionDischargedBattery_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumptionDischargedBattery_; + } + + /** + * + * + *
+   * The fuel consumption of the vehicle when the hybrid battery is discharged.
+   * See the [Help Center
+   * article](https://support.google.com/google-ads/answer/15162033) for more
+   * information.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder + getFuelConsumptionDischargedBatteryOrBuilder() { + return fuelConsumptionDischargedBattery_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumptionDischargedBattery_; + } + + public static final int ENERGY_CONSUMPTION_FIELD_NUMBER = 156; + private com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + energyConsumption_; + + /** + * + * + *
+   * The [energy
+   * consumption](https://support.google.com/google-ads/answer/14546149) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; + * + * + * @return Whether the energyConsumption field is set. + */ + @java.lang.Override + public boolean hasEnergyConsumption() { + return ((bitField2_ & 0x00008000) != 0); + } + + /** + * + * + *
+   * The [energy
+   * consumption](https://support.google.com/google-ads/answer/14546149) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; + * + * + * @return The energyConsumption. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + getEnergyConsumption() { + return energyConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDefaultInstance() + : energyConsumption_; + } + + /** + * + * + *
+   * The [energy
+   * consumption](https://support.google.com/google-ads/answer/14546149) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumptionOrBuilder + getEnergyConsumptionOrBuilder() { + return energyConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDefaultInstance() + : energyConsumption_; + } + + public static final int CO2_EMISSIONS_FIELD_NUMBER = 157; + private com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2Emissions_; + + /** + * + * + *
+   * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+   * of the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * + * + * @return Whether the co2Emissions field is set. + */ + @java.lang.Override + public boolean hasCo2Emissions() { + return ((bitField2_ & 0x00010000) != 0); + } + + /** + * + * + *
+   * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+   * of the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * + * + * @return The co2Emissions. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions getCo2Emissions() { + return co2Emissions_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDefaultInstance() + : co2Emissions_; + } + + /** + * + * + *
+   * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+   * of the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2EmissionsOrBuilder + getCo2EmissionsOrBuilder() { + return co2Emissions_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDefaultInstance() + : co2Emissions_; + } + + public static final int DATE_FIRST_REGISTERED_FIELD_NUMBER = 158; + + @SuppressWarnings("serial") + private volatile java.lang.Object dateFirstRegistered_ = ""; + + /** + * + * + *
+   * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+   * [Date first
+   * registered](https://support.google.com/google-ads/answer/14546138) for more
+   * information.
+   * 
+ * + * string date_first_registered = 158; + * + * @return The dateFirstRegistered. + */ + @java.lang.Override + public java.lang.String getDateFirstRegistered() { + java.lang.Object ref = dateFirstRegistered_; + 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(); + dateFirstRegistered_ = s; + return s; + } + } + + /** + * + * + *
+   * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+   * [Date first
+   * registered](https://support.google.com/google-ads/answer/14546138) for more
+   * information.
+   * 
+ * + * string date_first_registered = 158; + * + * @return The bytes for dateFirstRegistered. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDateFirstRegisteredBytes() { + java.lang.Object ref = dateFirstRegistered_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + dateFirstRegistered_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENGINE_FIELD_NUMBER = 159; + private int engine_ = 0; + + /** + * + * + *
+   * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; + * + * @return The enum numeric value on the wire for engine. + */ + @java.lang.Override + public int getEngineValue() { + return engine_; + } + + /** + * + * + *
+   * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; + * + * @return The engine. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EngineType getEngine() { + com.google.shopping.merchant.products.v1.ProductAttributes.EngineType result = + com.google.shopping.merchant.products.v1.ProductAttributes.EngineType.forNumber(engine_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EngineType.UNRECOGNIZED + : result; + } + + public static final int EMISSIONS_STANDARD_FIELD_NUMBER = 160; + private int emissionsStandard_ = 0; + + /** + * + * + *
+   * The [emission
+   * standard](https://support.google.com/google-ads/answer/14869021) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * + * + * @return The enum numeric value on the wire for emissionsStandard. + */ + @java.lang.Override + public int getEmissionsStandardValue() { + return emissionsStandard_; + } + + /** + * + * + *
+   * The [emission
+   * standard](https://support.google.com/google-ads/answer/14869021) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * + * + * @return The emissionsStandard. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard + getEmissionsStandard() { + com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard result = + com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard.forNumber( + emissionsStandard_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard.UNRECOGNIZED + : result; + } + + public static final int CERTIFIED_PRE_OWNED_FIELD_NUMBER = 161; + private boolean certifiedPreOwned_ = false; + + /** + * + * + *
+   * Whether the vehicle is OEM [certified
+   * pre-owned](https://support.google.com/google-ads/answer/14156475).
+   * 
+ * + * bool certified_pre_owned = 161; + * + * @return The certifiedPreOwned. + */ + @java.lang.Override + public boolean getCertifiedPreOwned() { + return certifiedPreOwned_; + } + + public static final int VEHICLE_MSRP_FIELD_NUMBER = 162; + private com.google.shopping.type.Price vehicleMsrp_; + + /** + * + * + *
+   * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+   * current configuration. See the [Vehicle
+   * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_msrp = 162; + * + * @return Whether the vehicleMsrp field is set. + */ + @java.lang.Override + public boolean hasVehicleMsrp() { + return ((bitField2_ & 0x00020000) != 0); + } + + /** + * + * + *
+   * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+   * current configuration. See the [Vehicle
+   * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_msrp = 162; + * + * @return The vehicleMsrp. + */ + @java.lang.Override + public com.google.shopping.type.Price getVehicleMsrp() { + return vehicleMsrp_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleMsrp_; + } + + /** + * + * + *
+   * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+   * current configuration. See the [Vehicle
+   * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_msrp = 162; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getVehicleMsrpOrBuilder() { + return vehicleMsrp_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleMsrp_; + } + + public static final int VEHICLE_ALL_IN_PRICE_FIELD_NUMBER = 163; + private com.google.shopping.type.Price vehicleAllInPrice_; + + /** + * + * + *
+   * The all-in advertised price for a vehicle, which includes costs for the
+   * following – any accessories attached to the vehicle, environmental levies,
+   * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+   * for handling licensing, provincial regulatory fees, miscellaneous dealer
+   * charges for security etching and nitrogen tire fill, and
+   * factory-to-customer or dealer-to-customer discounts or incentives. See the
+   * [Vehicle all-in
+   * price](https://support.google.com/google-ads/answer/14156981) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_all_in_price = 163; + * + * @return Whether the vehicleAllInPrice field is set. + */ + @java.lang.Override + public boolean hasVehicleAllInPrice() { + return ((bitField2_ & 0x00040000) != 0); + } + + /** + * + * + *
+   * The all-in advertised price for a vehicle, which includes costs for the
+   * following – any accessories attached to the vehicle, environmental levies,
+   * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+   * for handling licensing, provincial regulatory fees, miscellaneous dealer
+   * charges for security etching and nitrogen tire fill, and
+   * factory-to-customer or dealer-to-customer discounts or incentives. See the
+   * [Vehicle all-in
+   * price](https://support.google.com/google-ads/answer/14156981) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_all_in_price = 163; + * + * @return The vehicleAllInPrice. + */ + @java.lang.Override + public com.google.shopping.type.Price getVehicleAllInPrice() { + return vehicleAllInPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleAllInPrice_; + } + + /** + * + * + *
+   * The all-in advertised price for a vehicle, which includes costs for the
+   * following – any accessories attached to the vehicle, environmental levies,
+   * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+   * for handling licensing, provincial regulatory fees, miscellaneous dealer
+   * charges for security etching and nitrogen tire fill, and
+   * factory-to-customer or dealer-to-customer discounts or incentives. See the
+   * [Vehicle all-in
+   * price](https://support.google.com/google-ads/answer/14156981) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_all_in_price = 163; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getVehicleAllInPriceOrBuilder() { + return vehicleAllInPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleAllInPrice_; + } + + public static final int VEHICLE_PRICE_TYPE_FIELD_NUMBER = 164; + private int vehiclePriceType_ = 0; + + /** + * + * + *
+   * The [price type](https://support.google.com/google-ads/answer/14592783) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * + * + * @return The enum numeric value on the wire for vehiclePriceType. + */ + @java.lang.Override + public int getVehiclePriceTypeValue() { + return vehiclePriceType_; + } + + /** + * + * + *
+   * The [price type](https://support.google.com/google-ads/answer/14592783) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * + * + * @return The vehiclePriceType. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType + getVehiclePriceType() { + com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType result = + com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType.forNumber( + vehiclePriceType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType.UNRECOGNIZED + : result; + } + + public static final int VEHICLE_MANDATORY_INSPECTION_INCLUDED_FIELD_NUMBER = 166; + private boolean vehicleMandatoryInspectionIncluded_ = false; + + /** + * + * + *
+   * Whether the vehicle is sold with mandatory inspection and maintenance
+   * performed before delivery. See the [Vehicle mandatory inspection
+   * included](https://support.google.com/google-ads/answer/15956630) for more
+   * information.`
+   * 
+ * + * bool vehicle_mandatory_inspection_included = 166; + * + * @return The vehicleMandatoryInspectionIncluded. + */ + @java.lang.Override + public boolean getVehicleMandatoryInspectionIncluded() { + return vehicleMandatoryInspectionIncluded_; + } + + public static final int VEHICLE_EXPENSES_FIELD_NUMBER = 167; + private com.google.shopping.type.Price vehicleExpenses_; + + /** + * + * + *
+   * The miscellaneous expenses like insurance and registration fees of the
+   * vehicle. See the [Vehicle
+   * expenses](https://support.google.com/google-ads/answer/15957154) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_expenses = 167; + * + * @return Whether the vehicleExpenses field is set. + */ + @java.lang.Override + public boolean hasVehicleExpenses() { + return ((bitField2_ & 0x00080000) != 0); + } + + /** + * + * + *
+   * The miscellaneous expenses like insurance and registration fees of the
+   * vehicle. See the [Vehicle
+   * expenses](https://support.google.com/google-ads/answer/15957154) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_expenses = 167; + * + * @return The vehicleExpenses. + */ + @java.lang.Override + public com.google.shopping.type.Price getVehicleExpenses() { + return vehicleExpenses_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleExpenses_; + } + + /** + * + * + *
+   * The miscellaneous expenses like insurance and registration fees of the
+   * vehicle. See the [Vehicle
+   * expenses](https://support.google.com/google-ads/answer/15957154) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_expenses = 167; + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getVehicleExpensesOrBuilder() { + return vehicleExpenses_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleExpenses_; + } + + public static final int WARRANTY_FIELD_NUMBER = 168; + private com.google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty_; + + /** + * + * + *
+   * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; + * + * @return Whether the warranty field is set. + */ + @java.lang.Override + public boolean hasWarranty() { + return ((bitField2_ & 0x00100000) != 0); + } + + /** + * + * + *
+   * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; + * + * @return The warranty. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.Warranty getWarranty() { + return warranty_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.getDefaultInstance() + : warranty_; + } + + /** + * + * + *
+   * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.WarrantyOrBuilder + getWarrantyOrBuilder() { + return warranty_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.getDefaultInstance() + : warranty_; + } + + public static final int DISPLAY_ADDRESS_FIELD_NUMBER = 179; + private com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress displayAddress_; + + /** + * + * + *
+   * The display address of the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * + * + * @return Whether the displayAddress field is set. + */ + @java.lang.Override + public boolean hasDisplayAddress() { + return ((bitField2_ & 0x00200000) != 0); + } + + /** + * + * + *
+   * The display address of the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * + * + * @return The displayAddress. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + getDisplayAddress() { + return displayAddress_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + .getDefaultInstance() + : displayAddress_; + } + + /** + * + * + *
+   * The display address of the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddressOrBuilder + getDisplayAddressOrBuilder() { + return displayAddress_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + .getDefaultInstance() + : displayAddress_; + } + + public static final int LATITUDE_FIELD_NUMBER = 180; + private double latitude_ = 0D; + + /** + * + * + *
+   * The latitude of the property. The value must be between -90 (inclusive) and
+   * 90 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double latitude = 180; + * + * @return Whether the latitude field is set. + */ + @java.lang.Override + public boolean hasLatitude() { + return ((bitField2_ & 0x00400000) != 0); + } + + /** + * + * + *
+   * The latitude of the property. The value must be between -90 (inclusive) and
+   * 90 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double latitude = 180; + * + * @return The latitude. + */ + @java.lang.Override + public double getLatitude() { + return latitude_; + } + + public static final int LONGITUDE_FIELD_NUMBER = 181; + private double longitude_ = 0D; + + /** + * + * + *
+   * The longitude of the property. The value must be between -180 (inclusive)
+   * and 180 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double longitude = 181; + * + * @return Whether the longitude field is set. + */ + @java.lang.Override + public boolean hasLongitude() { + return ((bitField2_ & 0x00800000) != 0); + } + + /** + * + * + *
+   * The longitude of the property. The value must be between -180 (inclusive)
+   * and 180 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double longitude = 181; + * + * @return The longitude. + */ + @java.lang.Override + public double getLongitude() { + return longitude_; + } + + public static final int NEIGHBORHOOD_FIELD_NUMBER = 182; + + @SuppressWarnings("serial") + private volatile java.lang.Object neighborhood_ = ""; + + /** + * + * + *
+   * The neighborhood (locality) of the property, such as `Wallingford`,
+   * `Greenwood`, etc.
+   * 
+ * + * string neighborhood = 182; + * + * @return The neighborhood. + */ + @java.lang.Override + public java.lang.String getNeighborhood() { + java.lang.Object ref = neighborhood_; + 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(); + neighborhood_ = s; + return s; + } + } + + /** + * + * + *
+   * The neighborhood (locality) of the property, such as `Wallingford`,
+   * `Greenwood`, etc.
+   * 
+ * + * string neighborhood = 182; + * + * @return The bytes for neighborhood. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNeighborhoodBytes() { + java.lang.Object ref = neighborhood_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + neighborhood_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int UNIT_AREA_FIELD_NUMBER = 183; + private com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea unitArea_; + + /** + * + * + *
+   * The unit area of the property, such as `1000 sqft`.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * + * @return Whether the unitArea field is set. + */ + @java.lang.Override + public boolean hasUnitArea() { + return ((bitField2_ & 0x01000000) != 0); + } + + /** + * + * + *
+   * The unit area of the property, such as `1000 sqft`.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * + * @return The unitArea. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea getUnitArea() { + return unitArea_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.getDefaultInstance() + : unitArea_; + } + + /** + * + * + *
+   * The unit area of the property, such as `1000 sqft`.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitAreaOrBuilder + getUnitAreaOrBuilder() { + return unitArea_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.getDefaultInstance() + : unitArea_; + } + + public static final int NUMBER_OF_UNITS_FIELD_NUMBER = 184; + private long numberOfUnits_ = 0L; + + /** + * + * + *
+   * The number of units available for a specific floor plan of the property.
+   * The value must be greater than 0.
+   * 
+ * + * optional int64 number_of_units = 184; + * + * @return Whether the numberOfUnits field is set. + */ + @java.lang.Override + public boolean hasNumberOfUnits() { + return ((bitField2_ & 0x02000000) != 0); + } + + /** + * + * + *
+   * The number of units available for a specific floor plan of the property.
+   * The value must be greater than 0.
+   * 
+ * + * optional int64 number_of_units = 184; + * + * @return The numberOfUnits. + */ + @java.lang.Override + public long getNumberOfUnits() { + return numberOfUnits_; + } + + public static final int PROPERTY_NAME_FIELD_NUMBER = 185; + + @SuppressWarnings("serial") + private volatile java.lang.Object propertyName_ = ""; + + /** + * + * + *
+   * The name of the property.
+   * 
+ * + * string property_name = 185; + * + * @return The propertyName. + */ + @java.lang.Override + public java.lang.String getPropertyName() { + java.lang.Object ref = propertyName_; + 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(); + propertyName_ = s; + return s; + } + } + + /** + * + * + *
+   * The name of the property.
+   * 
+ * + * string property_name = 185; + * + * @return The bytes for propertyName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPropertyNameBytes() { + java.lang.Object ref = propertyName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + propertyName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NUMBER_OF_BEDROOMS_FIELD_NUMBER = 186; + private double numberOfBedrooms_ = 0D; + + /** + * + * + *
+   * The number of bedrooms in the property. The value must be greater than or
+   * equal to 0 and a multiple of 1.0.
+   * 
+ * + * optional double number_of_bedrooms = 186; + * + * @return Whether the numberOfBedrooms field is set. + */ + @java.lang.Override + public boolean hasNumberOfBedrooms() { + return ((bitField2_ & 0x04000000) != 0); + } + + /** + * + * + *
+   * The number of bedrooms in the property. The value must be greater than or
+   * equal to 0 and a multiple of 1.0.
+   * 
+ * + * optional double number_of_bedrooms = 186; + * + * @return The numberOfBedrooms. + */ + @java.lang.Override + public double getNumberOfBedrooms() { + return numberOfBedrooms_; + } + + public static final int NUMBER_OF_BATHROOMS_FIELD_NUMBER = 187; + private double numberOfBathrooms_ = 0D; + + /** + * + * + *
+   * The number of bathrooms in the property. The value must be greater than 0
+   * and a multiple of 0.5.
+   * 
+ * + * optional double number_of_bathrooms = 187; + * + * @return Whether the numberOfBathrooms field is set. + */ + @java.lang.Override + public boolean hasNumberOfBathrooms() { + return ((bitField2_ & 0x08000000) != 0); + } + + /** + * + * + *
+   * The number of bathrooms in the property. The value must be greater than 0
+   * and a multiple of 0.5.
+   * 
+ * + * optional double number_of_bathrooms = 187; + * + * @return The numberOfBathrooms. + */ + @java.lang.Override + public double getNumberOfBathrooms() { + return numberOfBathrooms_; + } + + public static final int PROPERTY_TYPE_FIELD_NUMBER = 188; + private int propertyType_ = 0; + + /** + * + * + *
+   * The type of property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; + * + * + * @return The enum numeric value on the wire for propertyType. + */ + @java.lang.Override + public int getPropertyTypeValue() { + return propertyType_; + } + + /** + * + * + *
+   * The type of property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; + * + * + * @return The propertyType. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType getPropertyType() { + com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType result = + com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType.forNumber( + propertyType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType.UNRECOGNIZED + : result; + } + + public static final int AMENITY_FEATURE_FIELD_NUMBER = 189; + + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList amenityFeature_ = emptyIntList(); + + private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature> + amenityFeature_converter_ = + new com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature>() { + public com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature + convert(int from) { + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature result = + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature + .forNumber(from); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature + .UNRECOGNIZED + : result; + } + }; + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @return A list containing the amenityFeature. + */ + @java.lang.Override + public java.util.List + getAmenityFeatureList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature>( + amenityFeature_, amenityFeature_converter_); + } + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @return The count of amenityFeature. + */ + @java.lang.Override + public int getAmenityFeatureCount() { + return amenityFeature_.size(); + } + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @param index The index of the element to return. + * @return The amenityFeature at the given index. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature + getAmenityFeature(int index) { + return amenityFeature_converter_.convert(amenityFeature_.getInt(index)); + } + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @return A list containing the enum numeric values on the wire for amenityFeature. + */ + @java.lang.Override + public java.util.List getAmenityFeatureValueList() { + return amenityFeature_; + } + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of amenityFeature at the given index. + */ + @java.lang.Override + public int getAmenityFeatureValue(int index) { + return amenityFeature_.getInt(index); + } + + private int amenityFeatureMemoizedSerializedSize; + + public static final int UTILITIES_INCLUDED_FIELD_NUMBER = 190; + + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList utilitiesIncluded_ = emptyIntList(); + + private static final com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded> + utilitiesIncluded_converter_ = + new com.google.protobuf.Internal.IntListAdapter.IntConverter< + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded>() { + public com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded + convert(int from) { + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded result = + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded + .forNumber(from); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded + .UNRECOGNIZED + : result; + } + }; + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @return A list containing the utilitiesIncluded. + */ + @java.lang.Override + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded> + getUtilitiesIncludedList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded>( + utilitiesIncluded_, utilitiesIncluded_converter_); + } + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @return The count of utilitiesIncluded. + */ + @java.lang.Override + public int getUtilitiesIncludedCount() { + return utilitiesIncluded_.size(); + } + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @param index The index of the element to return. + * @return The utilitiesIncluded at the given index. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded + getUtilitiesIncluded(int index) { + return utilitiesIncluded_converter_.convert(utilitiesIncluded_.getInt(index)); + } + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @return A list containing the enum numeric values on the wire for utilitiesIncluded. + */ + @java.lang.Override + public java.util.List getUtilitiesIncludedValueList() { + return utilitiesIncluded_; + } + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of utilitiesIncluded at the given index. + */ + @java.lang.Override + public int getUtilitiesIncludedValue(int index) { + return utilitiesIncluded_.getInt(index); + } + + private int utilitiesIncludedMemoizedSerializedSize; + + public static final int PET_POLICY_FIELD_NUMBER = 191; + private com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy petPolicy_; + + /** + * + * + *
+   * The pet policy for the property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * + * + * @return Whether the petPolicy field is set. + */ + @java.lang.Override + public boolean hasPetPolicy() { + return ((bitField2_ & 0x10000000) != 0); + } + + /** + * + * + *
+   * The pet policy for the property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * + * + * @return The petPolicy. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy getPetPolicy() { + return petPolicy_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.getDefaultInstance() + : petPolicy_; + } + + /** + * + * + *
+   * The pet policy for the property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicyOrBuilder + getPetPolicyOrBuilder() { + return petPolicy_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.getDefaultInstance() + : petPolicy_; + } + + public static final int SPECIALTY_HOUSING_TYPE_FIELD_NUMBER = 192; + private int specialtyHousingType_ = 0; + + /** + * + * + *
+   * The specialty housing type for the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * + * + * @return The enum numeric value on the wire for specialtyHousingType. + */ + @java.lang.Override + public int getSpecialtyHousingTypeValue() { + return specialtyHousingType_; + } + + /** + * + * + *
+   * The specialty housing type for the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * + * + * @return The specialtyHousingType. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType + getSpecialtyHousingType() { + com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType result = + com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType.forNumber( + specialtyHousingType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType + .UNRECOGNIZED + : result; + } + + public static final int PRODUCT_FEE_FIELD_NUMBER = 193; + + @SuppressWarnings("serial") + private java.util.List + productFee_; + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + @java.lang.Override + public java.util.List + getProductFeeList() { + return productFee_; + } + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + @java.lang.Override + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder> + getProductFeeOrBuilderList() { + return productFee_; + } + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + @java.lang.Override + public int getProductFeeCount() { + return productFee_.size(); + } + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee getProductFee( + int index) { + return productFee_.get(index); + } + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder + getProductFeeOrBuilder(int index) { + return productFee_.get(index); + } + + public static final int SHORT_TITLE_FIELD_NUMBER = 194; + + @SuppressWarnings("serial") + private volatile java.lang.Object shortTitle_ = ""; + + /** + * + * + *
+   * The short title of the item.
+   * 
+ * + * optional string short_title = 194; + * + * @return Whether the shortTitle field is set. + */ + @java.lang.Override + public boolean hasShortTitle() { + return ((bitField2_ & 0x20000000) != 0); + } + + /** + * + * + *
+   * The short title of the item.
+   * 
+ * + * optional string short_title = 194; + * + * @return The shortTitle. + */ + @java.lang.Override + public java.lang.String getShortTitle() { + java.lang.Object ref = shortTitle_; + 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(); + shortTitle_ = s; + return s; + } + } + + /** + * + * + *
+   * The short title of the item.
+   * 
+ * + * optional string short_title = 194; + * + * @return The bytes for shortTitle. + */ + @java.lang.Override + public com.google.protobuf.ByteString getShortTitleBytes() { + java.lang.Object ref = shortTitle_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + shortTitle_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int QUESTIONS_AND_ANSWERS_FIELD_NUMBER = 173; + + @SuppressWarnings("serial") + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer> + questionsAndAnswers_; + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer> + getQuestionsAndAnswersList() { + return questionsAndAnswers_; + } + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder> + getQuestionsAndAnswersOrBuilderList() { + return questionsAndAnswers_; + } + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public int getQuestionsAndAnswersCount() { + return questionsAndAnswers_.size(); + } + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + getQuestionsAndAnswers(int index) { + return questionsAndAnswers_.get(index); + } + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder + getQuestionsAndAnswersOrBuilder(int index) { + return questionsAndAnswers_.get(index); + } + + public static final int POPULARITY_RANK_FIELD_NUMBER = 174; + private float popularityRank_ = 0F; + + /** + * + * + *
+   * Optional. Indicates the
+   * [popularity](https://support.google.com/merchants/answer/17085297) of the
+   * product in a merchant's inventory. Using a scale of 0.0 (lowest) to 100.0
+   * (highest).
+   * 
+ * + * float popularity_rank = 174 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The popularityRank. + */ + @java.lang.Override + public float getPopularityRank() { + return popularityRank_; + } + + public static final int ITEM_GROUP_TITLE_FIELD_NUMBER = 175; + + @SuppressWarnings("serial") + private volatile java.lang.Object itemGroupTitle_ = ""; + + /** + * + * + *
+   * Optional. Represents the [title of the product
+   * group](https://support.google.com/merchants/answer/17085146) to which
+   * this variant product belongs. This can be used along with the [item group
+   * id](https://support.google.com/merchants/answer/6324507) attribute.
+   * It lets you perform better grouping of variant products, and helps
+   * identifying common product characteristics more efficiently.
+   * 
+ * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The itemGroupTitle. + */ + @java.lang.Override + public java.lang.String getItemGroupTitle() { + java.lang.Object ref = itemGroupTitle_; + 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(); + itemGroupTitle_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. Represents the [title of the product
+   * group](https://support.google.com/merchants/answer/17085146) to which
+   * this variant product belongs. This can be used along with the [item group
+   * id](https://support.google.com/merchants/answer/6324507) attribute.
+   * It lets you perform better grouping of variant products, and helps
+   * identifying common product characteristics more efficiently.
+   * 
+ * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for itemGroupTitle. + */ + @java.lang.Override + public com.google.protobuf.ByteString getItemGroupTitleBytes() { + java.lang.Object ref = itemGroupTitle_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + itemGroupTitle_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DOCUMENT_LINKS_FIELD_NUMBER = 176; + + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList documentLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return A list containing the documentLinks. + */ + public com.google.protobuf.ProtocolStringList getDocumentLinksList() { + return documentLinks_; + } + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The count of documentLinks. + */ + public int getDocumentLinksCount() { + return documentLinks_.size(); + } + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the element to return. + * @return The documentLinks at the given index. + */ + public java.lang.String getDocumentLinks(int index) { + return documentLinks_.get(index); + } + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the value to return. + * @return The bytes of the documentLinks at the given index. + */ + public com.google.protobuf.ByteString getDocumentLinksBytes(int index) { + return documentLinks_.getByteString(index); + } + + public static final int VARIANT_OPTIONS_FIELD_NUMBER = 177; + + @SuppressWarnings("serial") + private java.util.List + variantOptions_; + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List + getVariantOptionsList() { + return variantOptions_; + } + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder> + getVariantOptionsOrBuilderList() { + return variantOptions_; + } + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public int getVariantOptionsCount() { + return variantOptions_.size(); + } + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption getVariantOptions( + int index) { + return variantOptions_.get(index); + } + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder + getVariantOptionsOrBuilder(int index) { + return variantOptions_.get(index); + } + + public static final int RELATED_PRODUCTS_FIELD_NUMBER = 178; + + @SuppressWarnings("serial") + private java.util.List + relatedProducts_; + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List + getRelatedProductsList() { + return relatedProducts_; + } + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder> + getRelatedProductsOrBuilderList() { + return relatedProducts_; + } + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public int getRelatedProductsCount() { + return relatedProducts_.size(); + } + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + getRelatedProducts(int index) { + return relatedProducts_.get(index); + } + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder + getRelatedProductsOrBuilder(int index) { + return relatedProducts_.get(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 { + getSerializedSize(); + if (((bitField2_ & 0x00000020) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, externalSellerId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeBool(4, identifierExists_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeBool(5, isBundle_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 6, title_); + } + if (((bitField0_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, description_); + } + if (((bitField0_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 8, link_); + } + if (((bitField0_ & 0x00000020) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, mobileLink_); + } + if (((bitField0_ & 0x00000040) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 10, canonicalLink_); + } + if (((bitField0_ & 0x00000080) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 11, imageLink_); + } + for (int i = 0; i < additionalImageLinks_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 12, additionalImageLinks_.getRaw(i)); + } + if (((bitField2_ & 0x00000040) != 0)) { + output.writeEnum(13, pause_); + } + for (int i = 0; i < lifestyleImageLinks_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 14, lifestyleImageLinks_.getRaw(i)); + } + if (((bitField0_ & 0x00000100) != 0)) { + output.writeMessage(16, getExpirationDate()); + } + if (((bitField0_ & 0x00000400) != 0)) { + output.writeBool(17, adult_); + } + if (((bitField0_ & 0x00000800) != 0)) { + output.writeEnum(18, ageGroup_); + } + if (((bitField0_ & 0x00001000) != 0)) { + output.writeEnum(19, availability_); + } + if (((bitField0_ & 0x00002000) != 0)) { + output.writeMessage(20, getAvailabilityDate()); + } + if (((bitField0_ & 0x00004000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 21, brand_); + } + if (((bitField0_ & 0x00008000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 22, color_); + } + if (((bitField0_ & 0x00010000) != 0)) { + output.writeEnum(23, condition_); + } + if (((bitField0_ & 0x00020000) != 0)) { + output.writeEnum(24, gender_); + } + if (((bitField0_ & 0x00040000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 25, googleProductCategory_); + } + if (((bitField0_ & 0x00080000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 27, itemGroupId_); + } + if (((bitField0_ & 0x00100000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 28, material_); + } + if (((bitField0_ & 0x00200000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 29, mpn_); + } + if (((bitField0_ & 0x00400000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 30, pattern_); + } + if (((bitField0_ & 0x00800000) != 0)) { + output.writeMessage(31, getPrice()); + } + if (((bitField0_ & 0x02000000) != 0)) { + output.writeMessage(32, getInstallment()); + } + if (((bitField0_ & 0x04000000) != 0)) { + output.writeMessage(33, getSubscriptionCost()); + } + if (((bitField0_ & 0x08000000) != 0)) { + output.writeMessage(34, getLoyaltyPoints()); + } + for (int i = 0; i < productTypes_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 35, productTypes_.getRaw(i)); + } + if (((bitField0_ & 0x10000000) != 0)) { + output.writeMessage(36, getSalePrice()); + } + if (((bitField0_ & 0x20000000) != 0)) { + output.writeMessage(37, getSalePriceEffectiveDate()); + } + if (((bitField0_ & 0x40000000) != 0)) { + output.writeInt64(38, sellOnGoogleQuantity_); + } + for (int i = 0; i < shipping_.size(); i++) { + output.writeMessage(39, shipping_.get(i)); + } + if (((bitField1_ & 0x00000008) != 0)) { + output.writeMessage(40, getShippingWeight()); + } + if (((bitField1_ & 0x00000010) != 0)) { + output.writeMessage(41, getShippingLength()); + } + if (((bitField1_ & 0x00000020) != 0)) { + output.writeMessage(42, getShippingWidth()); + } + if (((bitField1_ & 0x00000040) != 0)) { + output.writeMessage(43, getShippingHeight()); + } + if (((bitField1_ & 0x00000080) != 0)) { + output.writeInt64(44, maxHandlingTime_); + } + if (((bitField1_ & 0x00000100) != 0)) { + output.writeInt64(45, minHandlingTime_); + } + if (((bitField1_ & 0x00000200) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 46, shippingLabel_); + } + if (((bitField1_ & 0x00000800) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 47, transitTimeLabel_); + } + if (((bitField1_ & 0x00001000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 48, size_); + } + if (((bitField1_ & 0x00002000) != 0)) { + output.writeEnum(49, sizeSystem_); + } + if (getSizeTypesList().size() > 0) { + output.writeUInt32NoTag(402); + output.writeUInt32NoTag(sizeTypesMemoizedSerializedSize); + } + for (int i = 0; i < sizeTypes_.size(); i++) { + output.writeEnumNoTag(sizeTypes_.getInt(i)); + } + if (((bitField1_ & 0x00004000) != 0)) { + output.writeEnum(53, energyEfficiencyClass_); + } + if (((bitField1_ & 0x00008000) != 0)) { + output.writeEnum(54, minEnergyEfficiencyClass_); + } + if (((bitField1_ & 0x00010000) != 0)) { + output.writeEnum(55, maxEnergyEfficiencyClass_); + } + if (((bitField1_ & 0x00020000) != 0)) { + output.writeMessage(56, getUnitPricingMeasure()); + } + if (((bitField1_ & 0x00040000) != 0)) { + output.writeMessage(57, getUnitPricingBaseMeasure()); + } + if (((bitField1_ & 0x00080000) != 0)) { + output.writeInt64(58, multipack_); + } + if (((bitField1_ & 0x00100000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 59, adsGrouping_); + } + for (int i = 0; i < adsLabels_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 60, adsLabels_.getRaw(i)); + } + if (((bitField1_ & 0x00200000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 61, adsRedirect_); + } + if (((bitField1_ & 0x00400000) != 0)) { + output.writeMessage(62, getCostOfGoodsSold()); + } + for (int i = 0; i < productDetails_.size(); i++) { + output.writeMessage(63, productDetails_.get(i)); + } + for (int i = 0; i < productHighlights_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 64, productHighlights_.getRaw(i)); + } + if (((bitField1_ & 0x00800000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 65, displayAdsId_); + } + for (int i = 0; i < displayAdsSimilarIds_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 66, displayAdsSimilarIds_.getRaw(i)); + } + if (((bitField1_ & 0x01000000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 67, displayAdsTitle_); + } + if (((bitField1_ & 0x02000000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 68, displayAdsLink_); + } + if (((bitField1_ & 0x04000000) != 0)) { + output.writeDouble(69, displayAdsValue_); + } + for (int i = 0; i < promotionIds_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 70, promotionIds_.getRaw(i)); + } + if (((bitField2_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 71, customLabel0_); + } + if (((bitField2_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 72, customLabel1_); + } + if (((bitField2_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 73, customLabel2_); + } + if (((bitField2_ & 0x00000008) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 74, customLabel3_); + } + if (((bitField2_ & 0x00000010) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 75, customLabel4_); + } + if (getIncludedDestinationsList().size() > 0) { + output.writeUInt32NoTag(610); + output.writeUInt32NoTag(includedDestinationsMemoizedSerializedSize); + } + for (int i = 0; i < includedDestinations_.size(); i++) { + output.writeEnumNoTag(includedDestinations_.getInt(i)); + } + if (getExcludedDestinationsList().size() > 0) { + output.writeUInt32NoTag(618); + output.writeUInt32NoTag(excludedDestinationsMemoizedSerializedSize); + } + for (int i = 0; i < excludedDestinations_.size(); i++) { + output.writeEnumNoTag(excludedDestinations_.getInt(i)); + } + for (int i = 0; i < shoppingAdsExcludedCountries_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString( + output, 78, shoppingAdsExcludedCountries_.getRaw(i)); + } + if (((bitField0_ & 0x00000200) != 0)) { + output.writeMessage(79, getDisclosureDate()); + } + if (((bitField1_ & 0x08000000) != 0)) { + output.writeEnum(80, pickupMethod_); + } + if (((bitField1_ & 0x10000000) != 0)) { + output.writeEnum(81, pickupSla_); + } + if (((bitField1_ & 0x40000000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 82, linkTemplate_); + } + if (((bitField1_ & 0x80000000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 83, mobileLinkTemplate_); + } + for (int i = 0; i < cloudExportAdditionalProperties_.size(); i++) { + output.writeMessage(84, cloudExportAdditionalProperties_.get(i)); + } + if (((bitField0_ & 0x80000000) != 0)) { + output.writeMessage(119, getProductHeight()); + } + if (((bitField1_ & 0x00000001) != 0)) { + output.writeMessage(120, getProductLength()); + } + if (((bitField1_ & 0x00000002) != 0)) { + output.writeMessage(121, getProductWidth()); + } + if (((bitField1_ & 0x00000004) != 0)) { + output.writeMessage(122, getProductWeight()); + } + for (int i = 0; i < certifications_.size(); i++) { + output.writeMessage(123, certifications_.get(i)); + } + if (((bitField2_ & 0x00000400) != 0)) { + output.writeMessage(124, getAutoPricingMinPrice()); + } + if (((bitField2_ & 0x00000080) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 130, virtualModelLink_); + } + if (((bitField2_ & 0x00000100) != 0)) { + output.writeMessage(132, getStructuredTitle()); + } + if (((bitField2_ & 0x00000200) != 0)) { + output.writeMessage(133, getStructuredDescription()); + } + for (int i = 0; i < freeShippingThreshold_.size(); i++) { + output.writeMessage(135, freeShippingThreshold_.get(i)); + } + for (int i = 0; i < loyaltyPrograms_.size(); i++) { + output.writeMessage(136, loyaltyPrograms_.get(i)); + } + for (int i = 0; i < sustainabilityIncentives_.size(); i++) { + output.writeMessage(138, sustainabilityIncentives_.get(i)); + } + if (((bitField0_ & 0x01000000) != 0)) { + output.writeMessage(139, getMaximumRetailPrice()); + } + for (int i = 0; i < gtins_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 140, gtins_.getRaw(i)); + } + for (int i = 0; i < handlingCutoffTimes_.size(); i++) { + output.writeMessage(141, handlingCutoffTimes_.get(i)); + } + for (int i = 0; i < carrierShipping_.size(); i++) { + output.writeMessage(142, carrierShipping_.get(i)); + } + for (int i = 0; i < shippingHandlingBusinessDays_.size(); i++) { + output.writeMessage(143, shippingHandlingBusinessDays_.get(i)); + } + for (int i = 0; i < shippingTransitBusinessDays_.size(); i++) { + output.writeMessage(144, shippingTransitBusinessDays_.get(i)); + } + for (int i = 0; i < minimumOrderValues_.size(); i++) { + output.writeMessage(146, minimumOrderValues_.get(i)); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 147, vin_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(model_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 148, model_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trim_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 149, trim_); + } + if (bodyStyle_ + != com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle + .VEHICLE_BODY_STYLE_UNSPECIFIED + .getNumber()) { + output.writeEnum(150, bodyStyle_); + } + if (year_ != 0L) { + output.writeInt64(151, year_); + } + if (((bitField2_ & 0x00000800) != 0)) { + output.writeMessage(152, getMileage()); + } + if (((bitField2_ & 0x00001000) != 0)) { + output.writeMessage(153, getElectricRange()); + } + if (((bitField2_ & 0x00002000) != 0)) { + output.writeMessage(154, getFuelConsumption()); + } + if (((bitField2_ & 0x00004000) != 0)) { + output.writeMessage(155, getFuelConsumptionDischargedBattery()); + } + if (((bitField2_ & 0x00008000) != 0)) { + output.writeMessage(156, getEnergyConsumption()); + } + if (((bitField2_ & 0x00010000) != 0)) { + output.writeMessage(157, getCo2Emissions()); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(dateFirstRegistered_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 158, dateFirstRegistered_); + } + if (engine_ + != com.google.shopping.merchant.products.v1.ProductAttributes.EngineType + .ENGINE_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(159, engine_); + } + if (emissionsStandard_ + != com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard + .EMISSIONS_STANDARD_UNSPECIFIED + .getNumber()) { + output.writeEnum(160, emissionsStandard_); + } + if (certifiedPreOwned_ != false) { + output.writeBool(161, certifiedPreOwned_); + } + if (((bitField2_ & 0x00020000) != 0)) { + output.writeMessage(162, getVehicleMsrp()); + } + if (((bitField2_ & 0x00040000) != 0)) { + output.writeMessage(163, getVehicleAllInPrice()); + } + if (vehiclePriceType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType + .VEHICLE_PRICE_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(164, vehiclePriceType_); + } + if (vehicleMandatoryInspectionIncluded_ != false) { + output.writeBool(166, vehicleMandatoryInspectionIncluded_); + } + if (((bitField2_ & 0x00080000) != 0)) { + output.writeMessage(167, getVehicleExpenses()); + } + if (((bitField2_ & 0x00100000) != 0)) { + output.writeMessage(168, getWarranty()); + } + for (int i = 0; i < videoLinks_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 169, videoLinks_.getRaw(i)); + } + if (((bitField1_ & 0x00000400) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 170, returnPolicyLabel_); + } + if (((bitField1_ & 0x20000000) != 0)) { + output.writeMessage(172, getPickupCost()); + } + for (int i = 0; i < questionsAndAnswers_.size(); i++) { + output.writeMessage(173, questionsAndAnswers_.get(i)); + } + if (java.lang.Float.floatToRawIntBits(popularityRank_) != 0) { + output.writeFloat(174, popularityRank_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemGroupTitle_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 175, itemGroupTitle_); + } + for (int i = 0; i < documentLinks_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 176, documentLinks_.getRaw(i)); + } + for (int i = 0; i < variantOptions_.size(); i++) { + output.writeMessage(177, variantOptions_.get(i)); + } + for (int i = 0; i < relatedProducts_.size(); i++) { + output.writeMessage(178, relatedProducts_.get(i)); + } + if (((bitField2_ & 0x00200000) != 0)) { + output.writeMessage(179, getDisplayAddress()); + } + if (((bitField2_ & 0x00400000) != 0)) { + output.writeDouble(180, latitude_); + } + if (((bitField2_ & 0x00800000) != 0)) { + output.writeDouble(181, longitude_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(neighborhood_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 182, neighborhood_); + } + if (((bitField2_ & 0x01000000) != 0)) { + output.writeMessage(183, getUnitArea()); + } + if (((bitField2_ & 0x02000000) != 0)) { + output.writeInt64(184, numberOfUnits_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(propertyName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 185, propertyName_); + } + if (((bitField2_ & 0x04000000) != 0)) { + output.writeDouble(186, numberOfBedrooms_); + } + if (((bitField2_ & 0x08000000) != 0)) { + output.writeDouble(187, numberOfBathrooms_); + } + if (propertyType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType + .PROPERTY_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(188, propertyType_); + } + if (getAmenityFeatureList().size() > 0) { + output.writeUInt32NoTag(1514); + output.writeUInt32NoTag(amenityFeatureMemoizedSerializedSize); + } + for (int i = 0; i < amenityFeature_.size(); i++) { + output.writeEnumNoTag(amenityFeature_.getInt(i)); + } + if (getUtilitiesIncludedList().size() > 0) { + output.writeUInt32NoTag(1522); + output.writeUInt32NoTag(utilitiesIncludedMemoizedSerializedSize); + } + for (int i = 0; i < utilitiesIncluded_.size(); i++) { + output.writeEnumNoTag(utilitiesIncluded_.getInt(i)); + } + if (((bitField2_ & 0x10000000) != 0)) { + output.writeMessage(191, getPetPolicy()); + } + if (specialtyHousingType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType + .SPECIALTY_HOUSING_TYPE_UNSPECIFIED + .getNumber()) { + output.writeEnum(192, specialtyHousingType_); + } + for (int i = 0; i < productFee_.size(); i++) { + output.writeMessage(193, productFee_.get(i)); + } + if (((bitField2_ & 0x20000000) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 194, shortTitle_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField2_ & 0x00000020) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, externalSellerId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, identifierExists_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, isBundle_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(6, title_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(7, description_); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(8, link_); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, mobileLink_); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(10, canonicalLink_); + } + if (((bitField0_ & 0x00000080) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(11, imageLink_); + } + { + int dataSize = 0; + for (int i = 0; i < additionalImageLinks_.size(); i++) { + dataSize += computeStringSizeNoTag(additionalImageLinks_.getRaw(i)); + } + size += dataSize; + size += 1 * getAdditionalImageLinksList().size(); + } + if (((bitField2_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(13, pause_); + } + { + int dataSize = 0; + for (int i = 0; i < lifestyleImageLinks_.size(); i++) { + dataSize += computeStringSizeNoTag(lifestyleImageLinks_.getRaw(i)); + } + size += dataSize; + size += 1 * getLifestyleImageLinksList().size(); + } + if (((bitField0_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getExpirationDate()); + } + if (((bitField0_ & 0x00000400) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(17, adult_); + } + if (((bitField0_ & 0x00000800) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(18, ageGroup_); + } + if (((bitField0_ & 0x00001000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(19, availability_); + } + if (((bitField0_ & 0x00002000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(20, getAvailabilityDate()); + } + if (((bitField0_ & 0x00004000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(21, brand_); + } + if (((bitField0_ & 0x00008000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(22, color_); + } + if (((bitField0_ & 0x00010000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(23, condition_); + } + if (((bitField0_ & 0x00020000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(24, gender_); + } + if (((bitField0_ & 0x00040000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(25, googleProductCategory_); + } + if (((bitField0_ & 0x00080000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(27, itemGroupId_); + } + if (((bitField0_ & 0x00100000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(28, material_); + } + if (((bitField0_ & 0x00200000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(29, mpn_); + } + if (((bitField0_ & 0x00400000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(30, pattern_); + } + if (((bitField0_ & 0x00800000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(31, getPrice()); + } + if (((bitField0_ & 0x02000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(32, getInstallment()); + } + if (((bitField0_ & 0x04000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(33, getSubscriptionCost()); + } + if (((bitField0_ & 0x08000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(34, getLoyaltyPoints()); + } + { + int dataSize = 0; + for (int i = 0; i < productTypes_.size(); i++) { + dataSize += computeStringSizeNoTag(productTypes_.getRaw(i)); + } + size += dataSize; + size += 2 * getProductTypesList().size(); + } + if (((bitField0_ & 0x10000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(36, getSalePrice()); + } + if (((bitField0_ & 0x20000000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(37, getSalePriceEffectiveDate()); + } + if (((bitField0_ & 0x40000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(38, sellOnGoogleQuantity_); + } + for (int i = 0; i < shipping_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(39, shipping_.get(i)); + } + if (((bitField1_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(40, getShippingWeight()); + } + if (((bitField1_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(41, getShippingLength()); + } + if (((bitField1_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(42, getShippingWidth()); + } + if (((bitField1_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(43, getShippingHeight()); + } + if (((bitField1_ & 0x00000080) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(44, maxHandlingTime_); + } + if (((bitField1_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(45, minHandlingTime_); + } + if (((bitField1_ & 0x00000200) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(46, shippingLabel_); + } + if (((bitField1_ & 0x00000800) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(47, transitTimeLabel_); + } + if (((bitField1_ & 0x00001000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(48, size_); + } + if (((bitField1_ & 0x00002000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(49, sizeSystem_); + } + { + int dataSize = 0; + for (int i = 0; i < sizeTypes_.size(); i++) { + dataSize += + com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(sizeTypes_.getInt(i)); + } + size += dataSize; + if (!getSizeTypesList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + sizeTypesMemoizedSerializedSize = dataSize; + } + if (((bitField1_ & 0x00004000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(53, energyEfficiencyClass_); + } + if (((bitField1_ & 0x00008000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(54, minEnergyEfficiencyClass_); + } + if (((bitField1_ & 0x00010000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(55, maxEnergyEfficiencyClass_); + } + if (((bitField1_ & 0x00020000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(56, getUnitPricingMeasure()); + } + if (((bitField1_ & 0x00040000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(57, getUnitPricingBaseMeasure()); + } + if (((bitField1_ & 0x00080000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(58, multipack_); + } + if (((bitField1_ & 0x00100000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(59, adsGrouping_); + } + { + int dataSize = 0; + for (int i = 0; i < adsLabels_.size(); i++) { + dataSize += computeStringSizeNoTag(adsLabels_.getRaw(i)); + } + size += dataSize; + size += 2 * getAdsLabelsList().size(); + } + if (((bitField1_ & 0x00200000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(61, adsRedirect_); + } + if (((bitField1_ & 0x00400000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(62, getCostOfGoodsSold()); + } + for (int i = 0; i < productDetails_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(63, productDetails_.get(i)); + } + { + int dataSize = 0; + for (int i = 0; i < productHighlights_.size(); i++) { + dataSize += computeStringSizeNoTag(productHighlights_.getRaw(i)); + } + size += dataSize; + size += 2 * getProductHighlightsList().size(); + } + if (((bitField1_ & 0x00800000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(65, displayAdsId_); + } + { + int dataSize = 0; + for (int i = 0; i < displayAdsSimilarIds_.size(); i++) { + dataSize += computeStringSizeNoTag(displayAdsSimilarIds_.getRaw(i)); + } + size += dataSize; + size += 2 * getDisplayAdsSimilarIdsList().size(); + } + if (((bitField1_ & 0x01000000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(67, displayAdsTitle_); + } + if (((bitField1_ & 0x02000000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(68, displayAdsLink_); + } + if (((bitField1_ & 0x04000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(69, displayAdsValue_); + } + { + int dataSize = 0; + for (int i = 0; i < promotionIds_.size(); i++) { + dataSize += computeStringSizeNoTag(promotionIds_.getRaw(i)); + } + size += dataSize; + size += 2 * getPromotionIdsList().size(); + } + if (((bitField2_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(71, customLabel0_); + } + if (((bitField2_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(72, customLabel1_); + } + if (((bitField2_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(73, customLabel2_); + } + if (((bitField2_ & 0x00000008) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(74, customLabel3_); + } + if (((bitField2_ & 0x00000010) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(75, customLabel4_); + } + { + int dataSize = 0; + for (int i = 0; i < includedDestinations_.size(); i++) { + dataSize += + com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag( + includedDestinations_.getInt(i)); + } + size += dataSize; + if (!getIncludedDestinationsList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + includedDestinationsMemoizedSerializedSize = dataSize; + } + { + int dataSize = 0; + for (int i = 0; i < excludedDestinations_.size(); i++) { + dataSize += + com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag( + excludedDestinations_.getInt(i)); + } + size += dataSize; + if (!getExcludedDestinationsList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + excludedDestinationsMemoizedSerializedSize = dataSize; + } + { + int dataSize = 0; + for (int i = 0; i < shoppingAdsExcludedCountries_.size(); i++) { + dataSize += computeStringSizeNoTag(shoppingAdsExcludedCountries_.getRaw(i)); + } + size += dataSize; + size += 2 * getShoppingAdsExcludedCountriesList().size(); + } + if (((bitField0_ & 0x00000200) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(79, getDisclosureDate()); + } + if (((bitField1_ & 0x08000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(80, pickupMethod_); + } + if (((bitField1_ & 0x10000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(81, pickupSla_); + } + if (((bitField1_ & 0x40000000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(82, linkTemplate_); + } + if (((bitField1_ & 0x80000000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(83, mobileLinkTemplate_); + } + for (int i = 0; i < cloudExportAdditionalProperties_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 84, cloudExportAdditionalProperties_.get(i)); + } + if (((bitField0_ & 0x80000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(119, getProductHeight()); + } + if (((bitField1_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(120, getProductLength()); + } + if (((bitField1_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(121, getProductWidth()); + } + if (((bitField1_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(122, getProductWeight()); + } + for (int i = 0; i < certifications_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(123, certifications_.get(i)); + } + if (((bitField2_ & 0x00000400) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(124, getAutoPricingMinPrice()); + } + if (((bitField2_ & 0x00000080) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(130, virtualModelLink_); + } + if (((bitField2_ & 0x00000100) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(132, getStructuredTitle()); + } + if (((bitField2_ & 0x00000200) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(133, getStructuredDescription()); + } + for (int i = 0; i < freeShippingThreshold_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 135, freeShippingThreshold_.get(i)); + } + for (int i = 0; i < loyaltyPrograms_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(136, loyaltyPrograms_.get(i)); + } + for (int i = 0; i < sustainabilityIncentives_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 138, sustainabilityIncentives_.get(i)); + } + if (((bitField0_ & 0x01000000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(139, getMaximumRetailPrice()); + } + { + int dataSize = 0; + for (int i = 0; i < gtins_.size(); i++) { + dataSize += computeStringSizeNoTag(gtins_.getRaw(i)); + } + size += dataSize; + size += 2 * getGtinsList().size(); + } + for (int i = 0; i < handlingCutoffTimes_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 141, handlingCutoffTimes_.get(i)); + } + for (int i = 0; i < carrierShipping_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(142, carrierShipping_.get(i)); + } + for (int i = 0; i < shippingHandlingBusinessDays_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 143, shippingHandlingBusinessDays_.get(i)); + } + for (int i = 0; i < shippingTransitBusinessDays_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 144, shippingTransitBusinessDays_.get(i)); + } + for (int i = 0; i < minimumOrderValues_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(146, minimumOrderValues_.get(i)); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(147, vin_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(model_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(148, model_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trim_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(149, trim_); + } + if (bodyStyle_ + != com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle + .VEHICLE_BODY_STYLE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(150, bodyStyle_); + } + if (year_ != 0L) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(151, year_); + } + if (((bitField2_ & 0x00000800) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(152, getMileage()); + } + if (((bitField2_ & 0x00001000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(153, getElectricRange()); + } + if (((bitField2_ & 0x00002000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(154, getFuelConsumption()); + } + if (((bitField2_ & 0x00004000) != 0)) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 155, getFuelConsumptionDischargedBattery()); + } + if (((bitField2_ & 0x00008000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(156, getEnergyConsumption()); + } + if (((bitField2_ & 0x00010000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(157, getCo2Emissions()); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(dateFirstRegistered_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(158, dateFirstRegistered_); + } + if (engine_ + != com.google.shopping.merchant.products.v1.ProductAttributes.EngineType + .ENGINE_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(159, engine_); + } + if (emissionsStandard_ + != com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard + .EMISSIONS_STANDARD_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(160, emissionsStandard_); + } + if (certifiedPreOwned_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(161, certifiedPreOwned_); + } + if (((bitField2_ & 0x00020000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(162, getVehicleMsrp()); + } + if (((bitField2_ & 0x00040000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(163, getVehicleAllInPrice()); + } + if (vehiclePriceType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType + .VEHICLE_PRICE_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(164, vehiclePriceType_); + } + if (vehicleMandatoryInspectionIncluded_ != false) { + size += + com.google.protobuf.CodedOutputStream.computeBoolSize( + 166, vehicleMandatoryInspectionIncluded_); + } + if (((bitField2_ & 0x00080000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(167, getVehicleExpenses()); + } + if (((bitField2_ & 0x00100000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(168, getWarranty()); + } + { + int dataSize = 0; + for (int i = 0; i < videoLinks_.size(); i++) { + dataSize += computeStringSizeNoTag(videoLinks_.getRaw(i)); + } + size += dataSize; + size += 2 * getVideoLinksList().size(); + } + if (((bitField1_ & 0x00000400) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(170, returnPolicyLabel_); + } + if (((bitField1_ & 0x20000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(172, getPickupCost()); + } + for (int i = 0; i < questionsAndAnswers_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize( + 173, questionsAndAnswers_.get(i)); + } + if (java.lang.Float.floatToRawIntBits(popularityRank_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(174, popularityRank_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemGroupTitle_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(175, itemGroupTitle_); + } + { + int dataSize = 0; + for (int i = 0; i < documentLinks_.size(); i++) { + dataSize += computeStringSizeNoTag(documentLinks_.getRaw(i)); + } + size += dataSize; + size += 2 * getDocumentLinksList().size(); + } + for (int i = 0; i < variantOptions_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(177, variantOptions_.get(i)); + } + for (int i = 0; i < relatedProducts_.size(); i++) { + size += + com.google.protobuf.CodedOutputStream.computeMessageSize(178, relatedProducts_.get(i)); + } + if (((bitField2_ & 0x00200000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(179, getDisplayAddress()); + } + if (((bitField2_ & 0x00400000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(180, latitude_); + } + if (((bitField2_ & 0x00800000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(181, longitude_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(neighborhood_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(182, neighborhood_); + } + if (((bitField2_ & 0x01000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(183, getUnitArea()); + } + if (((bitField2_ & 0x02000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeInt64Size(184, numberOfUnits_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(propertyName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(185, propertyName_); + } + if (((bitField2_ & 0x04000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(186, numberOfBedrooms_); + } + if (((bitField2_ & 0x08000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(187, numberOfBathrooms_); + } + if (propertyType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType + .PROPERTY_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(188, propertyType_); + } + { + int dataSize = 0; + for (int i = 0; i < amenityFeature_.size(); i++) { + dataSize += + com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(amenityFeature_.getInt(i)); + } + size += dataSize; + if (!getAmenityFeatureList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + amenityFeatureMemoizedSerializedSize = dataSize; + } + { + int dataSize = 0; + for (int i = 0; i < utilitiesIncluded_.size(); i++) { + dataSize += + com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag( + utilitiesIncluded_.getInt(i)); + } + size += dataSize; + if (!getUtilitiesIncludedList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + utilitiesIncludedMemoizedSerializedSize = dataSize; + } + if (((bitField2_ & 0x10000000) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(191, getPetPolicy()); + } + if (specialtyHousingType_ + != com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType + .SPECIALTY_HOUSING_TYPE_UNSPECIFIED + .getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(192, specialtyHousingType_); + } + for (int i = 0; i < productFee_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(193, productFee_.get(i)); + } + if (((bitField2_ & 0x20000000) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(194, shortTitle_); + } + 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.products.v1.ProductAttributes)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductAttributes other = + (com.google.shopping.merchant.products.v1.ProductAttributes) obj; + + if (hasIdentifierExists() != other.hasIdentifierExists()) return false; + if (hasIdentifierExists()) { + if (getIdentifierExists() != other.getIdentifierExists()) return false; + } + if (hasIsBundle() != other.hasIsBundle()) return false; + if (hasIsBundle()) { + if (getIsBundle() != other.getIsBundle()) return false; + } + if (hasTitle() != other.hasTitle()) return false; + if (hasTitle()) { + if (!getTitle().equals(other.getTitle())) return false; + } + if (hasDescription() != other.hasDescription()) return false; + if (hasDescription()) { + if (!getDescription().equals(other.getDescription())) return false; + } + if (hasLink() != other.hasLink()) return false; + if (hasLink()) { + if (!getLink().equals(other.getLink())) return false; + } + if (hasMobileLink() != other.hasMobileLink()) return false; + if (hasMobileLink()) { + if (!getMobileLink().equals(other.getMobileLink())) return false; + } + if (hasCanonicalLink() != other.hasCanonicalLink()) return false; + if (hasCanonicalLink()) { + if (!getCanonicalLink().equals(other.getCanonicalLink())) return false; + } + if (hasImageLink() != other.hasImageLink()) return false; + if (hasImageLink()) { + if (!getImageLink().equals(other.getImageLink())) return false; + } + if (!getAdditionalImageLinksList().equals(other.getAdditionalImageLinksList())) return false; + if (hasExpirationDate() != other.hasExpirationDate()) return false; + if (hasExpirationDate()) { + if (!getExpirationDate().equals(other.getExpirationDate())) return false; + } + if (hasDisclosureDate() != other.hasDisclosureDate()) return false; + if (hasDisclosureDate()) { + if (!getDisclosureDate().equals(other.getDisclosureDate())) return false; + } + if (hasAdult() != other.hasAdult()) return false; + if (hasAdult()) { + if (getAdult() != other.getAdult()) return false; + } + if (hasAgeGroup() != other.hasAgeGroup()) return false; + if (hasAgeGroup()) { + if (ageGroup_ != other.ageGroup_) return false; + } + if (hasAvailability() != other.hasAvailability()) return false; + if (hasAvailability()) { + if (availability_ != other.availability_) return false; + } + if (hasAvailabilityDate() != other.hasAvailabilityDate()) return false; + if (hasAvailabilityDate()) { + if (!getAvailabilityDate().equals(other.getAvailabilityDate())) return false; + } + if (hasBrand() != other.hasBrand()) return false; + if (hasBrand()) { + if (!getBrand().equals(other.getBrand())) return false; + } + if (hasColor() != other.hasColor()) return false; + if (hasColor()) { + if (!getColor().equals(other.getColor())) return false; + } + if (hasCondition() != other.hasCondition()) return false; + if (hasCondition()) { + if (condition_ != other.condition_) return false; + } + if (hasGender() != other.hasGender()) return false; + if (hasGender()) { + if (gender_ != other.gender_) return false; + } + if (hasGoogleProductCategory() != other.hasGoogleProductCategory()) return false; + if (hasGoogleProductCategory()) { + if (!getGoogleProductCategory().equals(other.getGoogleProductCategory())) return false; + } + if (!getGtinsList().equals(other.getGtinsList())) return false; + if (hasItemGroupId() != other.hasItemGroupId()) return false; + if (hasItemGroupId()) { + if (!getItemGroupId().equals(other.getItemGroupId())) return false; + } + if (hasMaterial() != other.hasMaterial()) return false; + if (hasMaterial()) { + if (!getMaterial().equals(other.getMaterial())) return false; + } + if (hasMpn() != other.hasMpn()) return false; + if (hasMpn()) { + if (!getMpn().equals(other.getMpn())) return false; + } + if (hasPattern() != other.hasPattern()) return false; + if (hasPattern()) { + if (!getPattern().equals(other.getPattern())) return false; + } + if (hasPrice() != other.hasPrice()) return false; + if (hasPrice()) { + if (!getPrice().equals(other.getPrice())) return false; + } + if (hasMaximumRetailPrice() != other.hasMaximumRetailPrice()) return false; + if (hasMaximumRetailPrice()) { + if (!getMaximumRetailPrice().equals(other.getMaximumRetailPrice())) return false; + } + if (hasInstallment() != other.hasInstallment()) return false; + if (hasInstallment()) { + if (!getInstallment().equals(other.getInstallment())) return false; + } + if (hasSubscriptionCost() != other.hasSubscriptionCost()) return false; + if (hasSubscriptionCost()) { + if (!getSubscriptionCost().equals(other.getSubscriptionCost())) return false; + } + if (hasLoyaltyPoints() != other.hasLoyaltyPoints()) return false; + if (hasLoyaltyPoints()) { + if (!getLoyaltyPoints().equals(other.getLoyaltyPoints())) return false; + } + if (!getLoyaltyProgramsList().equals(other.getLoyaltyProgramsList())) return false; + if (!getProductTypesList().equals(other.getProductTypesList())) return false; + if (hasSalePrice() != other.hasSalePrice()) return false; + if (hasSalePrice()) { + if (!getSalePrice().equals(other.getSalePrice())) return false; + } + if (hasSalePriceEffectiveDate() != other.hasSalePriceEffectiveDate()) return false; + if (hasSalePriceEffectiveDate()) { + if (!getSalePriceEffectiveDate().equals(other.getSalePriceEffectiveDate())) return false; + } + if (hasSellOnGoogleQuantity() != other.hasSellOnGoogleQuantity()) return false; + if (hasSellOnGoogleQuantity()) { + if (getSellOnGoogleQuantity() != other.getSellOnGoogleQuantity()) return false; + } + if (hasProductHeight() != other.hasProductHeight()) return false; + if (hasProductHeight()) { + if (!getProductHeight().equals(other.getProductHeight())) return false; + } + if (hasProductLength() != other.hasProductLength()) return false; + if (hasProductLength()) { + if (!getProductLength().equals(other.getProductLength())) return false; + } + if (hasProductWidth() != other.hasProductWidth()) return false; + if (hasProductWidth()) { + if (!getProductWidth().equals(other.getProductWidth())) return false; + } + if (hasProductWeight() != other.hasProductWeight()) return false; + if (hasProductWeight()) { + if (!getProductWeight().equals(other.getProductWeight())) return false; + } + if (!getShippingList().equals(other.getShippingList())) return false; + if (!getCarrierShippingList().equals(other.getCarrierShippingList())) return false; + if (!getFreeShippingThresholdList().equals(other.getFreeShippingThresholdList())) return false; + if (hasShippingWeight() != other.hasShippingWeight()) return false; + if (hasShippingWeight()) { + if (!getShippingWeight().equals(other.getShippingWeight())) return false; + } + if (hasShippingLength() != other.hasShippingLength()) return false; + if (hasShippingLength()) { + if (!getShippingLength().equals(other.getShippingLength())) return false; + } + if (hasShippingWidth() != other.hasShippingWidth()) return false; + if (hasShippingWidth()) { + if (!getShippingWidth().equals(other.getShippingWidth())) return false; + } + if (hasShippingHeight() != other.hasShippingHeight()) return false; + if (hasShippingHeight()) { + if (!getShippingHeight().equals(other.getShippingHeight())) return false; + } + if (hasMaxHandlingTime() != other.hasMaxHandlingTime()) return false; + if (hasMaxHandlingTime()) { + if (getMaxHandlingTime() != other.getMaxHandlingTime()) return false; + } + if (hasMinHandlingTime() != other.hasMinHandlingTime()) return false; + if (hasMinHandlingTime()) { + if (getMinHandlingTime() != other.getMinHandlingTime()) return false; + } + if (!getShippingHandlingBusinessDaysList().equals(other.getShippingHandlingBusinessDaysList())) + return false; + if (!getShippingTransitBusinessDaysList().equals(other.getShippingTransitBusinessDaysList())) + return false; + if (!getHandlingCutoffTimesList().equals(other.getHandlingCutoffTimesList())) return false; + if (hasShippingLabel() != other.hasShippingLabel()) return false; + if (hasShippingLabel()) { + if (!getShippingLabel().equals(other.getShippingLabel())) return false; + } + if (hasReturnPolicyLabel() != other.hasReturnPolicyLabel()) return false; + if (hasReturnPolicyLabel()) { + if (!getReturnPolicyLabel().equals(other.getReturnPolicyLabel())) return false; + } + if (hasTransitTimeLabel() != other.hasTransitTimeLabel()) return false; + if (hasTransitTimeLabel()) { + if (!getTransitTimeLabel().equals(other.getTransitTimeLabel())) return false; + } + if (hasSize() != other.hasSize()) return false; + if (hasSize()) { + if (!getSize().equals(other.getSize())) return false; + } + if (hasSizeSystem() != other.hasSizeSystem()) return false; + if (hasSizeSystem()) { + if (sizeSystem_ != other.sizeSystem_) return false; + } + if (!sizeTypes_.equals(other.sizeTypes_)) return false; + if (hasEnergyEfficiencyClass() != other.hasEnergyEfficiencyClass()) return false; + if (hasEnergyEfficiencyClass()) { + if (energyEfficiencyClass_ != other.energyEfficiencyClass_) return false; + } + if (hasMinEnergyEfficiencyClass() != other.hasMinEnergyEfficiencyClass()) return false; + if (hasMinEnergyEfficiencyClass()) { + if (minEnergyEfficiencyClass_ != other.minEnergyEfficiencyClass_) return false; + } + if (hasMaxEnergyEfficiencyClass() != other.hasMaxEnergyEfficiencyClass()) return false; + if (hasMaxEnergyEfficiencyClass()) { + if (maxEnergyEfficiencyClass_ != other.maxEnergyEfficiencyClass_) return false; + } + if (hasUnitPricingMeasure() != other.hasUnitPricingMeasure()) return false; + if (hasUnitPricingMeasure()) { + if (!getUnitPricingMeasure().equals(other.getUnitPricingMeasure())) return false; + } + if (hasUnitPricingBaseMeasure() != other.hasUnitPricingBaseMeasure()) return false; + if (hasUnitPricingBaseMeasure()) { + if (!getUnitPricingBaseMeasure().equals(other.getUnitPricingBaseMeasure())) return false; + } + if (hasMultipack() != other.hasMultipack()) return false; + if (hasMultipack()) { + if (getMultipack() != other.getMultipack()) return false; + } + if (hasAdsGrouping() != other.hasAdsGrouping()) return false; + if (hasAdsGrouping()) { + if (!getAdsGrouping().equals(other.getAdsGrouping())) return false; + } + if (!getAdsLabelsList().equals(other.getAdsLabelsList())) return false; + if (hasAdsRedirect() != other.hasAdsRedirect()) return false; + if (hasAdsRedirect()) { + if (!getAdsRedirect().equals(other.getAdsRedirect())) return false; + } + if (hasCostOfGoodsSold() != other.hasCostOfGoodsSold()) return false; + if (hasCostOfGoodsSold()) { + if (!getCostOfGoodsSold().equals(other.getCostOfGoodsSold())) return false; + } + if (!getProductDetailsList().equals(other.getProductDetailsList())) return false; + if (!getProductHighlightsList().equals(other.getProductHighlightsList())) return false; + if (hasDisplayAdsId() != other.hasDisplayAdsId()) return false; + if (hasDisplayAdsId()) { + if (!getDisplayAdsId().equals(other.getDisplayAdsId())) return false; + } + if (!getDisplayAdsSimilarIdsList().equals(other.getDisplayAdsSimilarIdsList())) return false; + if (hasDisplayAdsTitle() != other.hasDisplayAdsTitle()) return false; + if (hasDisplayAdsTitle()) { + if (!getDisplayAdsTitle().equals(other.getDisplayAdsTitle())) return false; + } + if (hasDisplayAdsLink() != other.hasDisplayAdsLink()) return false; + if (hasDisplayAdsLink()) { + if (!getDisplayAdsLink().equals(other.getDisplayAdsLink())) return false; + } + if (hasDisplayAdsValue() != other.hasDisplayAdsValue()) return false; + if (hasDisplayAdsValue()) { + if (java.lang.Double.doubleToLongBits(getDisplayAdsValue()) + != java.lang.Double.doubleToLongBits(other.getDisplayAdsValue())) return false; + } + if (!getPromotionIdsList().equals(other.getPromotionIdsList())) return false; + if (hasPickupMethod() != other.hasPickupMethod()) return false; + if (hasPickupMethod()) { + if (pickupMethod_ != other.pickupMethod_) return false; + } + if (hasPickupSla() != other.hasPickupSla()) return false; + if (hasPickupSla()) { + if (pickupSla_ != other.pickupSla_) return false; + } + if (hasPickupCost() != other.hasPickupCost()) return false; + if (hasPickupCost()) { + if (!getPickupCost().equals(other.getPickupCost())) return false; + } + if (hasLinkTemplate() != other.hasLinkTemplate()) return false; + if (hasLinkTemplate()) { + if (!getLinkTemplate().equals(other.getLinkTemplate())) return false; + } + if (hasMobileLinkTemplate() != other.hasMobileLinkTemplate()) return false; + if (hasMobileLinkTemplate()) { + if (!getMobileLinkTemplate().equals(other.getMobileLinkTemplate())) 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 (!includedDestinations_.equals(other.includedDestinations_)) return false; + if (!excludedDestinations_.equals(other.excludedDestinations_)) return false; + if (!getShoppingAdsExcludedCountriesList().equals(other.getShoppingAdsExcludedCountriesList())) + return false; + if (hasExternalSellerId() != other.hasExternalSellerId()) return false; + if (hasExternalSellerId()) { + if (!getExternalSellerId().equals(other.getExternalSellerId())) return false; + } + if (hasPause() != other.hasPause()) return false; + if (hasPause()) { + if (pause_ != other.pause_) return false; + } + if (!getLifestyleImageLinksList().equals(other.getLifestyleImageLinksList())) return false; + if (!getCloudExportAdditionalPropertiesList() + .equals(other.getCloudExportAdditionalPropertiesList())) return false; + if (hasVirtualModelLink() != other.hasVirtualModelLink()) return false; + if (hasVirtualModelLink()) { + if (!getVirtualModelLink().equals(other.getVirtualModelLink())) return false; + } + if (!getCertificationsList().equals(other.getCertificationsList())) return false; + if (hasStructuredTitle() != other.hasStructuredTitle()) return false; + if (hasStructuredTitle()) { + if (!getStructuredTitle().equals(other.getStructuredTitle())) return false; + } + if (hasStructuredDescription() != other.hasStructuredDescription()) return false; + if (hasStructuredDescription()) { + if (!getStructuredDescription().equals(other.getStructuredDescription())) return false; + } + if (hasAutoPricingMinPrice() != other.hasAutoPricingMinPrice()) return false; + if (hasAutoPricingMinPrice()) { + if (!getAutoPricingMinPrice().equals(other.getAutoPricingMinPrice())) return false; + } + if (!getSustainabilityIncentivesList().equals(other.getSustainabilityIncentivesList())) + return false; + if (!getVideoLinksList().equals(other.getVideoLinksList())) return false; + if (!getMinimumOrderValuesList().equals(other.getMinimumOrderValuesList())) return false; + if (!getVin().equals(other.getVin())) return false; + if (!getModel().equals(other.getModel())) return false; + if (!getTrim().equals(other.getTrim())) return false; + if (bodyStyle_ != other.bodyStyle_) return false; + if (getYear() != other.getYear()) return false; + if (hasMileage() != other.hasMileage()) return false; + if (hasMileage()) { + if (!getMileage().equals(other.getMileage())) return false; + } + if (hasElectricRange() != other.hasElectricRange()) return false; + if (hasElectricRange()) { + if (!getElectricRange().equals(other.getElectricRange())) return false; + } + if (hasFuelConsumption() != other.hasFuelConsumption()) return false; + if (hasFuelConsumption()) { + if (!getFuelConsumption().equals(other.getFuelConsumption())) return false; + } + if (hasFuelConsumptionDischargedBattery() != other.hasFuelConsumptionDischargedBattery()) + return false; + if (hasFuelConsumptionDischargedBattery()) { + if (!getFuelConsumptionDischargedBattery() + .equals(other.getFuelConsumptionDischargedBattery())) return false; + } + if (hasEnergyConsumption() != other.hasEnergyConsumption()) return false; + if (hasEnergyConsumption()) { + if (!getEnergyConsumption().equals(other.getEnergyConsumption())) return false; + } + if (hasCo2Emissions() != other.hasCo2Emissions()) return false; + if (hasCo2Emissions()) { + if (!getCo2Emissions().equals(other.getCo2Emissions())) return false; + } + if (!getDateFirstRegistered().equals(other.getDateFirstRegistered())) return false; + if (engine_ != other.engine_) return false; + if (emissionsStandard_ != other.emissionsStandard_) return false; + if (getCertifiedPreOwned() != other.getCertifiedPreOwned()) return false; + if (hasVehicleMsrp() != other.hasVehicleMsrp()) return false; + if (hasVehicleMsrp()) { + if (!getVehicleMsrp().equals(other.getVehicleMsrp())) return false; + } + if (hasVehicleAllInPrice() != other.hasVehicleAllInPrice()) return false; + if (hasVehicleAllInPrice()) { + if (!getVehicleAllInPrice().equals(other.getVehicleAllInPrice())) return false; + } + if (vehiclePriceType_ != other.vehiclePriceType_) return false; + if (getVehicleMandatoryInspectionIncluded() != other.getVehicleMandatoryInspectionIncluded()) + return false; + if (hasVehicleExpenses() != other.hasVehicleExpenses()) return false; + if (hasVehicleExpenses()) { + if (!getVehicleExpenses().equals(other.getVehicleExpenses())) return false; + } + if (hasWarranty() != other.hasWarranty()) return false; + if (hasWarranty()) { + if (!getWarranty().equals(other.getWarranty())) return false; + } + if (hasDisplayAddress() != other.hasDisplayAddress()) return false; + if (hasDisplayAddress()) { + if (!getDisplayAddress().equals(other.getDisplayAddress())) return false; + } + if (hasLatitude() != other.hasLatitude()) return false; + if (hasLatitude()) { + if (java.lang.Double.doubleToLongBits(getLatitude()) + != java.lang.Double.doubleToLongBits(other.getLatitude())) return false; + } + if (hasLongitude() != other.hasLongitude()) return false; + if (hasLongitude()) { + if (java.lang.Double.doubleToLongBits(getLongitude()) + != java.lang.Double.doubleToLongBits(other.getLongitude())) return false; + } + if (!getNeighborhood().equals(other.getNeighborhood())) return false; + if (hasUnitArea() != other.hasUnitArea()) return false; + if (hasUnitArea()) { + if (!getUnitArea().equals(other.getUnitArea())) return false; + } + if (hasNumberOfUnits() != other.hasNumberOfUnits()) return false; + if (hasNumberOfUnits()) { + if (getNumberOfUnits() != other.getNumberOfUnits()) return false; + } + if (!getPropertyName().equals(other.getPropertyName())) return false; + if (hasNumberOfBedrooms() != other.hasNumberOfBedrooms()) return false; + if (hasNumberOfBedrooms()) { + if (java.lang.Double.doubleToLongBits(getNumberOfBedrooms()) + != java.lang.Double.doubleToLongBits(other.getNumberOfBedrooms())) return false; + } + if (hasNumberOfBathrooms() != other.hasNumberOfBathrooms()) return false; + if (hasNumberOfBathrooms()) { + if (java.lang.Double.doubleToLongBits(getNumberOfBathrooms()) + != java.lang.Double.doubleToLongBits(other.getNumberOfBathrooms())) return false; + } + if (propertyType_ != other.propertyType_) return false; + if (!amenityFeature_.equals(other.amenityFeature_)) return false; + if (!utilitiesIncluded_.equals(other.utilitiesIncluded_)) return false; + if (hasPetPolicy() != other.hasPetPolicy()) return false; + if (hasPetPolicy()) { + if (!getPetPolicy().equals(other.getPetPolicy())) return false; + } + if (specialtyHousingType_ != other.specialtyHousingType_) return false; + if (!getProductFeeList().equals(other.getProductFeeList())) return false; + if (hasShortTitle() != other.hasShortTitle()) return false; + if (hasShortTitle()) { + if (!getShortTitle().equals(other.getShortTitle())) return false; + } + if (!getQuestionsAndAnswersList().equals(other.getQuestionsAndAnswersList())) return false; + if (java.lang.Float.floatToIntBits(getPopularityRank()) + != java.lang.Float.floatToIntBits(other.getPopularityRank())) return false; + if (!getItemGroupTitle().equals(other.getItemGroupTitle())) return false; + if (!getDocumentLinksList().equals(other.getDocumentLinksList())) return false; + if (!getVariantOptionsList().equals(other.getVariantOptionsList())) return false; + if (!getRelatedProductsList().equals(other.getRelatedProductsList())) 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 (hasIdentifierExists()) { + hash = (37 * hash) + IDENTIFIER_EXISTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIdentifierExists()); + } + if (hasIsBundle()) { + hash = (37 * hash) + IS_BUNDLE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsBundle()); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasDescription()) { + hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER; + hash = (53 * hash) + getDescription().hashCode(); + } + if (hasLink()) { + hash = (37 * hash) + LINK_FIELD_NUMBER; + hash = (53 * hash) + getLink().hashCode(); + } + if (hasMobileLink()) { + hash = (37 * hash) + MOBILE_LINK_FIELD_NUMBER; + hash = (53 * hash) + getMobileLink().hashCode(); + } + if (hasCanonicalLink()) { + hash = (37 * hash) + CANONICAL_LINK_FIELD_NUMBER; + hash = (53 * hash) + getCanonicalLink().hashCode(); + } + if (hasImageLink()) { + hash = (37 * hash) + IMAGE_LINK_FIELD_NUMBER; + hash = (53 * hash) + getImageLink().hashCode(); + } + if (getAdditionalImageLinksCount() > 0) { + hash = (37 * hash) + ADDITIONAL_IMAGE_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getAdditionalImageLinksList().hashCode(); + } + if (hasExpirationDate()) { + hash = (37 * hash) + EXPIRATION_DATE_FIELD_NUMBER; + hash = (53 * hash) + getExpirationDate().hashCode(); + } + if (hasDisclosureDate()) { + hash = (37 * hash) + DISCLOSURE_DATE_FIELD_NUMBER; + hash = (53 * hash) + getDisclosureDate().hashCode(); + } + if (hasAdult()) { + hash = (37 * hash) + ADULT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAdult()); + } + if (hasAgeGroup()) { + hash = (37 * hash) + AGE_GROUP_FIELD_NUMBER; + hash = (53 * hash) + ageGroup_; + } + if (hasAvailability()) { + hash = (37 * hash) + AVAILABILITY_FIELD_NUMBER; + hash = (53 * hash) + availability_; + } + if (hasAvailabilityDate()) { + hash = (37 * hash) + AVAILABILITY_DATE_FIELD_NUMBER; + hash = (53 * hash) + getAvailabilityDate().hashCode(); + } + if (hasBrand()) { + hash = (37 * hash) + BRAND_FIELD_NUMBER; + hash = (53 * hash) + getBrand().hashCode(); + } + if (hasColor()) { + hash = (37 * hash) + COLOR_FIELD_NUMBER; + hash = (53 * hash) + getColor().hashCode(); + } + if (hasCondition()) { + hash = (37 * hash) + CONDITION_FIELD_NUMBER; + hash = (53 * hash) + condition_; + } + if (hasGender()) { + hash = (37 * hash) + GENDER_FIELD_NUMBER; + hash = (53 * hash) + gender_; + } + if (hasGoogleProductCategory()) { + hash = (37 * hash) + GOOGLE_PRODUCT_CATEGORY_FIELD_NUMBER; + hash = (53 * hash) + getGoogleProductCategory().hashCode(); + } + if (getGtinsCount() > 0) { + hash = (37 * hash) + GTINS_FIELD_NUMBER; + hash = (53 * hash) + getGtinsList().hashCode(); + } + if (hasItemGroupId()) { + hash = (37 * hash) + ITEM_GROUP_ID_FIELD_NUMBER; + hash = (53 * hash) + getItemGroupId().hashCode(); + } + if (hasMaterial()) { + hash = (37 * hash) + MATERIAL_FIELD_NUMBER; + hash = (53 * hash) + getMaterial().hashCode(); + } + if (hasMpn()) { + hash = (37 * hash) + MPN_FIELD_NUMBER; + hash = (53 * hash) + getMpn().hashCode(); + } + if (hasPattern()) { + hash = (37 * hash) + PATTERN_FIELD_NUMBER; + hash = (53 * hash) + getPattern().hashCode(); + } + if (hasPrice()) { + hash = (37 * hash) + PRICE_FIELD_NUMBER; + hash = (53 * hash) + getPrice().hashCode(); + } + if (hasMaximumRetailPrice()) { + hash = (37 * hash) + MAXIMUM_RETAIL_PRICE_FIELD_NUMBER; + hash = (53 * hash) + getMaximumRetailPrice().hashCode(); + } + if (hasInstallment()) { + hash = (37 * hash) + INSTALLMENT_FIELD_NUMBER; + hash = (53 * hash) + getInstallment().hashCode(); + } + if (hasSubscriptionCost()) { + hash = (37 * hash) + SUBSCRIPTION_COST_FIELD_NUMBER; + hash = (53 * hash) + getSubscriptionCost().hashCode(); + } + if (hasLoyaltyPoints()) { + hash = (37 * hash) + LOYALTY_POINTS_FIELD_NUMBER; + hash = (53 * hash) + getLoyaltyPoints().hashCode(); + } + if (getLoyaltyProgramsCount() > 0) { + hash = (37 * hash) + LOYALTY_PROGRAMS_FIELD_NUMBER; + hash = (53 * hash) + getLoyaltyProgramsList().hashCode(); + } + if (getProductTypesCount() > 0) { + hash = (37 * hash) + PRODUCT_TYPES_FIELD_NUMBER; + hash = (53 * hash) + getProductTypesList().hashCode(); + } + if (hasSalePrice()) { + hash = (37 * hash) + SALE_PRICE_FIELD_NUMBER; + hash = (53 * hash) + getSalePrice().hashCode(); + } + if (hasSalePriceEffectiveDate()) { + hash = (37 * hash) + SALE_PRICE_EFFECTIVE_DATE_FIELD_NUMBER; + hash = (53 * hash) + getSalePriceEffectiveDate().hashCode(); + } + if (hasSellOnGoogleQuantity()) { + hash = (37 * hash) + SELL_ON_GOOGLE_QUANTITY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getSellOnGoogleQuantity()); + } + if (hasProductHeight()) { + hash = (37 * hash) + PRODUCT_HEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getProductHeight().hashCode(); + } + if (hasProductLength()) { + hash = (37 * hash) + PRODUCT_LENGTH_FIELD_NUMBER; + hash = (53 * hash) + getProductLength().hashCode(); + } + if (hasProductWidth()) { + hash = (37 * hash) + PRODUCT_WIDTH_FIELD_NUMBER; + hash = (53 * hash) + getProductWidth().hashCode(); + } + if (hasProductWeight()) { + hash = (37 * hash) + PRODUCT_WEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getProductWeight().hashCode(); + } + if (getShippingCount() > 0) { + hash = (37 * hash) + SHIPPING_FIELD_NUMBER; + hash = (53 * hash) + getShippingList().hashCode(); + } + if (getCarrierShippingCount() > 0) { + hash = (37 * hash) + CARRIER_SHIPPING_FIELD_NUMBER; + hash = (53 * hash) + getCarrierShippingList().hashCode(); + } + if (getFreeShippingThresholdCount() > 0) { + hash = (37 * hash) + FREE_SHIPPING_THRESHOLD_FIELD_NUMBER; + hash = (53 * hash) + getFreeShippingThresholdList().hashCode(); + } + if (hasShippingWeight()) { + hash = (37 * hash) + SHIPPING_WEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getShippingWeight().hashCode(); + } + if (hasShippingLength()) { + hash = (37 * hash) + SHIPPING_LENGTH_FIELD_NUMBER; + hash = (53 * hash) + getShippingLength().hashCode(); + } + if (hasShippingWidth()) { + hash = (37 * hash) + SHIPPING_WIDTH_FIELD_NUMBER; + hash = (53 * hash) + getShippingWidth().hashCode(); + } + if (hasShippingHeight()) { + hash = (37 * hash) + SHIPPING_HEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getShippingHeight().hashCode(); + } + if (hasMaxHandlingTime()) { + hash = (37 * hash) + MAX_HANDLING_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMaxHandlingTime()); + } + if (hasMinHandlingTime()) { + hash = (37 * hash) + MIN_HANDLING_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMinHandlingTime()); + } + if (getShippingHandlingBusinessDaysCount() > 0) { + hash = (37 * hash) + SHIPPING_HANDLING_BUSINESS_DAYS_FIELD_NUMBER; + hash = (53 * hash) + getShippingHandlingBusinessDaysList().hashCode(); + } + if (getShippingTransitBusinessDaysCount() > 0) { + hash = (37 * hash) + SHIPPING_TRANSIT_BUSINESS_DAYS_FIELD_NUMBER; + hash = (53 * hash) + getShippingTransitBusinessDaysList().hashCode(); + } + if (getHandlingCutoffTimesCount() > 0) { + hash = (37 * hash) + HANDLING_CUTOFF_TIMES_FIELD_NUMBER; + hash = (53 * hash) + getHandlingCutoffTimesList().hashCode(); + } + if (hasShippingLabel()) { + hash = (37 * hash) + SHIPPING_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getShippingLabel().hashCode(); + } + if (hasReturnPolicyLabel()) { + hash = (37 * hash) + RETURN_POLICY_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getReturnPolicyLabel().hashCode(); + } + if (hasTransitTimeLabel()) { + hash = (37 * hash) + TRANSIT_TIME_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getTransitTimeLabel().hashCode(); + } + if (hasSize()) { + hash = (37 * hash) + SIZE_FIELD_NUMBER; + hash = (53 * hash) + getSize().hashCode(); + } + if (hasSizeSystem()) { + hash = (37 * hash) + SIZE_SYSTEM_FIELD_NUMBER; + hash = (53 * hash) + sizeSystem_; + } + if (getSizeTypesCount() > 0) { + hash = (37 * hash) + SIZE_TYPES_FIELD_NUMBER; + hash = (53 * hash) + sizeTypes_.hashCode(); + } + if (hasEnergyEfficiencyClass()) { + hash = (37 * hash) + ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER; + hash = (53 * hash) + energyEfficiencyClass_; + } + if (hasMinEnergyEfficiencyClass()) { + hash = (37 * hash) + MIN_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER; + hash = (53 * hash) + minEnergyEfficiencyClass_; + } + if (hasMaxEnergyEfficiencyClass()) { + hash = (37 * hash) + MAX_ENERGY_EFFICIENCY_CLASS_FIELD_NUMBER; + hash = (53 * hash) + maxEnergyEfficiencyClass_; + } + if (hasUnitPricingMeasure()) { + hash = (37 * hash) + UNIT_PRICING_MEASURE_FIELD_NUMBER; + hash = (53 * hash) + getUnitPricingMeasure().hashCode(); + } + if (hasUnitPricingBaseMeasure()) { + hash = (37 * hash) + UNIT_PRICING_BASE_MEASURE_FIELD_NUMBER; + hash = (53 * hash) + getUnitPricingBaseMeasure().hashCode(); + } + if (hasMultipack()) { + hash = (37 * hash) + MULTIPACK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getMultipack()); + } + if (hasAdsGrouping()) { + hash = (37 * hash) + ADS_GROUPING_FIELD_NUMBER; + hash = (53 * hash) + getAdsGrouping().hashCode(); + } + if (getAdsLabelsCount() > 0) { + hash = (37 * hash) + ADS_LABELS_FIELD_NUMBER; + hash = (53 * hash) + getAdsLabelsList().hashCode(); + } + if (hasAdsRedirect()) { + hash = (37 * hash) + ADS_REDIRECT_FIELD_NUMBER; + hash = (53 * hash) + getAdsRedirect().hashCode(); + } + if (hasCostOfGoodsSold()) { + hash = (37 * hash) + COST_OF_GOODS_SOLD_FIELD_NUMBER; + hash = (53 * hash) + getCostOfGoodsSold().hashCode(); + } + if (getProductDetailsCount() > 0) { + hash = (37 * hash) + PRODUCT_DETAILS_FIELD_NUMBER; + hash = (53 * hash) + getProductDetailsList().hashCode(); + } + if (getProductHighlightsCount() > 0) { + hash = (37 * hash) + PRODUCT_HIGHLIGHTS_FIELD_NUMBER; + hash = (53 * hash) + getProductHighlightsList().hashCode(); + } + if (hasDisplayAdsId()) { + hash = (37 * hash) + DISPLAY_ADS_ID_FIELD_NUMBER; + hash = (53 * hash) + getDisplayAdsId().hashCode(); + } + if (getDisplayAdsSimilarIdsCount() > 0) { + hash = (37 * hash) + DISPLAY_ADS_SIMILAR_IDS_FIELD_NUMBER; + hash = (53 * hash) + getDisplayAdsSimilarIdsList().hashCode(); + } + if (hasDisplayAdsTitle()) { + hash = (37 * hash) + DISPLAY_ADS_TITLE_FIELD_NUMBER; + hash = (53 * hash) + getDisplayAdsTitle().hashCode(); + } + if (hasDisplayAdsLink()) { + hash = (37 * hash) + DISPLAY_ADS_LINK_FIELD_NUMBER; + hash = (53 * hash) + getDisplayAdsLink().hashCode(); + } + if (hasDisplayAdsValue()) { + hash = (37 * hash) + DISPLAY_ADS_VALUE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getDisplayAdsValue())); + } + if (getPromotionIdsCount() > 0) { + hash = (37 * hash) + PROMOTION_IDS_FIELD_NUMBER; + hash = (53 * hash) + getPromotionIdsList().hashCode(); + } + if (hasPickupMethod()) { + hash = (37 * hash) + PICKUP_METHOD_FIELD_NUMBER; + hash = (53 * hash) + pickupMethod_; + } + if (hasPickupSla()) { + hash = (37 * hash) + PICKUP_SLA_FIELD_NUMBER; + hash = (53 * hash) + pickupSla_; + } + if (hasPickupCost()) { + hash = (37 * hash) + PICKUP_COST_FIELD_NUMBER; + hash = (53 * hash) + getPickupCost().hashCode(); + } + if (hasLinkTemplate()) { + hash = (37 * hash) + LINK_TEMPLATE_FIELD_NUMBER; + hash = (53 * hash) + getLinkTemplate().hashCode(); + } + if (hasMobileLinkTemplate()) { + hash = (37 * hash) + MOBILE_LINK_TEMPLATE_FIELD_NUMBER; + hash = (53 * hash) + getMobileLinkTemplate().hashCode(); + } + if (hasCustomLabel0()) { + hash = (37 * hash) + CUSTOM_LABEL_0_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel0().hashCode(); + } + if (hasCustomLabel1()) { + hash = (37 * hash) + CUSTOM_LABEL_1_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel1().hashCode(); + } + if (hasCustomLabel2()) { + hash = (37 * hash) + CUSTOM_LABEL_2_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel2().hashCode(); + } + if (hasCustomLabel3()) { + hash = (37 * hash) + CUSTOM_LABEL_3_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel3().hashCode(); + } + if (hasCustomLabel4()) { + hash = (37 * hash) + CUSTOM_LABEL_4_FIELD_NUMBER; + hash = (53 * hash) + getCustomLabel4().hashCode(); + } + if (getIncludedDestinationsCount() > 0) { + hash = (37 * hash) + INCLUDED_DESTINATIONS_FIELD_NUMBER; + hash = (53 * hash) + includedDestinations_.hashCode(); + } + if (getExcludedDestinationsCount() > 0) { + hash = (37 * hash) + EXCLUDED_DESTINATIONS_FIELD_NUMBER; + hash = (53 * hash) + excludedDestinations_.hashCode(); + } + if (getShoppingAdsExcludedCountriesCount() > 0) { + hash = (37 * hash) + SHOPPING_ADS_EXCLUDED_COUNTRIES_FIELD_NUMBER; + hash = (53 * hash) + getShoppingAdsExcludedCountriesList().hashCode(); + } + if (hasExternalSellerId()) { + hash = (37 * hash) + EXTERNAL_SELLER_ID_FIELD_NUMBER; + hash = (53 * hash) + getExternalSellerId().hashCode(); + } + if (hasPause()) { + hash = (37 * hash) + PAUSE_FIELD_NUMBER; + hash = (53 * hash) + pause_; + } + if (getLifestyleImageLinksCount() > 0) { + hash = (37 * hash) + LIFESTYLE_IMAGE_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getLifestyleImageLinksList().hashCode(); + } + if (getCloudExportAdditionalPropertiesCount() > 0) { + hash = (37 * hash) + CLOUD_EXPORT_ADDITIONAL_PROPERTIES_FIELD_NUMBER; + hash = (53 * hash) + getCloudExportAdditionalPropertiesList().hashCode(); + } + if (hasVirtualModelLink()) { + hash = (37 * hash) + VIRTUAL_MODEL_LINK_FIELD_NUMBER; + hash = (53 * hash) + getVirtualModelLink().hashCode(); + } + if (getCertificationsCount() > 0) { + hash = (37 * hash) + CERTIFICATIONS_FIELD_NUMBER; + hash = (53 * hash) + getCertificationsList().hashCode(); + } + if (hasStructuredTitle()) { + hash = (37 * hash) + STRUCTURED_TITLE_FIELD_NUMBER; + hash = (53 * hash) + getStructuredTitle().hashCode(); + } + if (hasStructuredDescription()) { + hash = (37 * hash) + STRUCTURED_DESCRIPTION_FIELD_NUMBER; + hash = (53 * hash) + getStructuredDescription().hashCode(); + } + if (hasAutoPricingMinPrice()) { + hash = (37 * hash) + AUTO_PRICING_MIN_PRICE_FIELD_NUMBER; + hash = (53 * hash) + getAutoPricingMinPrice().hashCode(); + } + if (getSustainabilityIncentivesCount() > 0) { + hash = (37 * hash) + SUSTAINABILITY_INCENTIVES_FIELD_NUMBER; + hash = (53 * hash) + getSustainabilityIncentivesList().hashCode(); + } + if (getVideoLinksCount() > 0) { + hash = (37 * hash) + VIDEO_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getVideoLinksList().hashCode(); + } + if (getMinimumOrderValuesCount() > 0) { + hash = (37 * hash) + MINIMUM_ORDER_VALUES_FIELD_NUMBER; + hash = (53 * hash) + getMinimumOrderValuesList().hashCode(); + } + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + MODEL_FIELD_NUMBER; + hash = (53 * hash) + getModel().hashCode(); + hash = (37 * hash) + TRIM_FIELD_NUMBER; + hash = (53 * hash) + getTrim().hashCode(); + hash = (37 * hash) + BODY_STYLE_FIELD_NUMBER; + hash = (53 * hash) + bodyStyle_; + hash = (37 * hash) + YEAR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getYear()); + if (hasMileage()) { + hash = (37 * hash) + MILEAGE_FIELD_NUMBER; + hash = (53 * hash) + getMileage().hashCode(); + } + if (hasElectricRange()) { + hash = (37 * hash) + ELECTRIC_RANGE_FIELD_NUMBER; + hash = (53 * hash) + getElectricRange().hashCode(); + } + if (hasFuelConsumption()) { + hash = (37 * hash) + FUEL_CONSUMPTION_FIELD_NUMBER; + hash = (53 * hash) + getFuelConsumption().hashCode(); + } + if (hasFuelConsumptionDischargedBattery()) { + hash = (37 * hash) + FUEL_CONSUMPTION_DISCHARGED_BATTERY_FIELD_NUMBER; + hash = (53 * hash) + getFuelConsumptionDischargedBattery().hashCode(); + } + if (hasEnergyConsumption()) { + hash = (37 * hash) + ENERGY_CONSUMPTION_FIELD_NUMBER; + hash = (53 * hash) + getEnergyConsumption().hashCode(); + } + if (hasCo2Emissions()) { + hash = (37 * hash) + CO2_EMISSIONS_FIELD_NUMBER; + hash = (53 * hash) + getCo2Emissions().hashCode(); + } + hash = (37 * hash) + DATE_FIRST_REGISTERED_FIELD_NUMBER; + hash = (53 * hash) + getDateFirstRegistered().hashCode(); + hash = (37 * hash) + ENGINE_FIELD_NUMBER; + hash = (53 * hash) + engine_; + hash = (37 * hash) + EMISSIONS_STANDARD_FIELD_NUMBER; + hash = (53 * hash) + emissionsStandard_; + hash = (37 * hash) + CERTIFIED_PRE_OWNED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getCertifiedPreOwned()); + if (hasVehicleMsrp()) { + hash = (37 * hash) + VEHICLE_MSRP_FIELD_NUMBER; + hash = (53 * hash) + getVehicleMsrp().hashCode(); + } + if (hasVehicleAllInPrice()) { + hash = (37 * hash) + VEHICLE_ALL_IN_PRICE_FIELD_NUMBER; + hash = (53 * hash) + getVehicleAllInPrice().hashCode(); + } + hash = (37 * hash) + VEHICLE_PRICE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + vehiclePriceType_; + hash = (37 * hash) + VEHICLE_MANDATORY_INSPECTION_INCLUDED_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashBoolean(getVehicleMandatoryInspectionIncluded()); + if (hasVehicleExpenses()) { + hash = (37 * hash) + VEHICLE_EXPENSES_FIELD_NUMBER; + hash = (53 * hash) + getVehicleExpenses().hashCode(); + } + if (hasWarranty()) { + hash = (37 * hash) + WARRANTY_FIELD_NUMBER; + hash = (53 * hash) + getWarranty().hashCode(); + } + if (hasDisplayAddress()) { + hash = (37 * hash) + DISPLAY_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getDisplayAddress().hashCode(); + } + if (hasLatitude()) { + hash = (37 * hash) + LATITUDE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getLatitude())); + } + if (hasLongitude()) { + hash = (37 * hash) + LONGITUDE_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getLongitude())); + } + hash = (37 * hash) + NEIGHBORHOOD_FIELD_NUMBER; + hash = (53 * hash) + getNeighborhood().hashCode(); + if (hasUnitArea()) { + hash = (37 * hash) + UNIT_AREA_FIELD_NUMBER; + hash = (53 * hash) + getUnitArea().hashCode(); + } + if (hasNumberOfUnits()) { + hash = (37 * hash) + NUMBER_OF_UNITS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getNumberOfUnits()); + } + hash = (37 * hash) + PROPERTY_NAME_FIELD_NUMBER; + hash = (53 * hash) + getPropertyName().hashCode(); + if (hasNumberOfBedrooms()) { + hash = (37 * hash) + NUMBER_OF_BEDROOMS_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getNumberOfBedrooms())); + } + if (hasNumberOfBathrooms()) { + hash = (37 * hash) + NUMBER_OF_BATHROOMS_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getNumberOfBathrooms())); + } + hash = (37 * hash) + PROPERTY_TYPE_FIELD_NUMBER; + hash = (53 * hash) + propertyType_; + if (getAmenityFeatureCount() > 0) { + hash = (37 * hash) + AMENITY_FEATURE_FIELD_NUMBER; + hash = (53 * hash) + amenityFeature_.hashCode(); + } + if (getUtilitiesIncludedCount() > 0) { + hash = (37 * hash) + UTILITIES_INCLUDED_FIELD_NUMBER; + hash = (53 * hash) + utilitiesIncluded_.hashCode(); + } + if (hasPetPolicy()) { + hash = (37 * hash) + PET_POLICY_FIELD_NUMBER; + hash = (53 * hash) + getPetPolicy().hashCode(); + } + hash = (37 * hash) + SPECIALTY_HOUSING_TYPE_FIELD_NUMBER; + hash = (53 * hash) + specialtyHousingType_; + if (getProductFeeCount() > 0) { + hash = (37 * hash) + PRODUCT_FEE_FIELD_NUMBER; + hash = (53 * hash) + getProductFeeList().hashCode(); + } + if (hasShortTitle()) { + hash = (37 * hash) + SHORT_TITLE_FIELD_NUMBER; + hash = (53 * hash) + getShortTitle().hashCode(); + } + if (getQuestionsAndAnswersCount() > 0) { + hash = (37 * hash) + QUESTIONS_AND_ANSWERS_FIELD_NUMBER; + hash = (53 * hash) + getQuestionsAndAnswersList().hashCode(); + } + hash = (37 * hash) + POPULARITY_RANK_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getPopularityRank()); + hash = (37 * hash) + ITEM_GROUP_TITLE_FIELD_NUMBER; + hash = (53 * hash) + getItemGroupTitle().hashCode(); + if (getDocumentLinksCount() > 0) { + hash = (37 * hash) + DOCUMENT_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getDocumentLinksList().hashCode(); + } + if (getVariantOptionsCount() > 0) { + hash = (37 * hash) + VARIANT_OPTIONS_FIELD_NUMBER; + hash = (53 * hash) + getVariantOptionsList().hashCode(); + } + if (getRelatedProductsCount() > 0) { + hash = (37 * hash) + RELATED_PRODUCTS_FIELD_NUMBER; + hash = (53 * hash) + getRelatedProductsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes 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.products.v1.ProductAttributes parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes 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.products.v1.ProductAttributes parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductAttributes parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductAttributes 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * Product attributes.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductAttributes} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductAttributes) + com.google.shopping.merchant.products.v1.ProductAttributesOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductAttributes.class, + com.google.shopping.merchant.products.v1.ProductAttributes.Builder.class); + } + + // Construct using com.google.shopping.merchant.products.v1.ProductAttributes.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetExpirationDateFieldBuilder(); + internalGetDisclosureDateFieldBuilder(); + internalGetAvailabilityDateFieldBuilder(); + internalGetPriceFieldBuilder(); + internalGetMaximumRetailPriceFieldBuilder(); + internalGetInstallmentFieldBuilder(); + internalGetSubscriptionCostFieldBuilder(); + internalGetLoyaltyPointsFieldBuilder(); + internalGetLoyaltyProgramsFieldBuilder(); + internalGetSalePriceFieldBuilder(); + internalGetSalePriceEffectiveDateFieldBuilder(); + internalGetProductHeightFieldBuilder(); + internalGetProductLengthFieldBuilder(); + internalGetProductWidthFieldBuilder(); + internalGetProductWeightFieldBuilder(); + internalGetShippingFieldBuilder(); + internalGetCarrierShippingFieldBuilder(); + internalGetFreeShippingThresholdFieldBuilder(); + internalGetShippingWeightFieldBuilder(); + internalGetShippingLengthFieldBuilder(); + internalGetShippingWidthFieldBuilder(); + internalGetShippingHeightFieldBuilder(); + internalGetShippingHandlingBusinessDaysFieldBuilder(); + internalGetShippingTransitBusinessDaysFieldBuilder(); + internalGetHandlingCutoffTimesFieldBuilder(); + internalGetUnitPricingMeasureFieldBuilder(); + internalGetUnitPricingBaseMeasureFieldBuilder(); + internalGetCostOfGoodsSoldFieldBuilder(); + internalGetProductDetailsFieldBuilder(); + internalGetPickupCostFieldBuilder(); + internalGetCloudExportAdditionalPropertiesFieldBuilder(); + internalGetCertificationsFieldBuilder(); + internalGetStructuredTitleFieldBuilder(); + internalGetStructuredDescriptionFieldBuilder(); + internalGetAutoPricingMinPriceFieldBuilder(); + internalGetSustainabilityIncentivesFieldBuilder(); + internalGetMinimumOrderValuesFieldBuilder(); + internalGetMileageFieldBuilder(); + internalGetElectricRangeFieldBuilder(); + internalGetFuelConsumptionFieldBuilder(); + internalGetFuelConsumptionDischargedBatteryFieldBuilder(); + internalGetEnergyConsumptionFieldBuilder(); + internalGetCo2EmissionsFieldBuilder(); + internalGetVehicleMsrpFieldBuilder(); + internalGetVehicleAllInPriceFieldBuilder(); + internalGetVehicleExpensesFieldBuilder(); + internalGetWarrantyFieldBuilder(); + internalGetDisplayAddressFieldBuilder(); + internalGetUnitAreaFieldBuilder(); + internalGetPetPolicyFieldBuilder(); + internalGetProductFeeFieldBuilder(); + internalGetQuestionsAndAnswersFieldBuilder(); + internalGetVariantOptionsFieldBuilder(); + internalGetRelatedProductsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + bitField1_ = 0; + bitField2_ = 0; + bitField3_ = 0; + bitField4_ = 0; + identifierExists_ = false; + isBundle_ = false; + title_ = ""; + description_ = ""; + link_ = ""; + mobileLink_ = ""; + canonicalLink_ = ""; + imageLink_ = ""; + additionalImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + expirationDate_ = null; + if (expirationDateBuilder_ != null) { + expirationDateBuilder_.dispose(); + expirationDateBuilder_ = null; + } + disclosureDate_ = null; + if (disclosureDateBuilder_ != null) { + disclosureDateBuilder_.dispose(); + disclosureDateBuilder_ = null; + } + adult_ = false; + ageGroup_ = 0; + availability_ = 0; + availabilityDate_ = null; + if (availabilityDateBuilder_ != null) { + availabilityDateBuilder_.dispose(); + availabilityDateBuilder_ = null; + } + brand_ = ""; + color_ = ""; + condition_ = 0; + gender_ = 0; + googleProductCategory_ = ""; + gtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); + itemGroupId_ = ""; + material_ = ""; + mpn_ = ""; + pattern_ = ""; + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + maximumRetailPrice_ = null; + if (maximumRetailPriceBuilder_ != null) { + maximumRetailPriceBuilder_.dispose(); + maximumRetailPriceBuilder_ = null; + } + installment_ = null; + if (installmentBuilder_ != null) { + installmentBuilder_.dispose(); + installmentBuilder_ = null; + } + subscriptionCost_ = null; + if (subscriptionCostBuilder_ != null) { + subscriptionCostBuilder_.dispose(); + subscriptionCostBuilder_ = null; + } + loyaltyPoints_ = null; + if (loyaltyPointsBuilder_ != null) { + loyaltyPointsBuilder_.dispose(); + loyaltyPointsBuilder_ = null; + } + if (loyaltyProgramsBuilder_ == null) { + loyaltyPrograms_ = java.util.Collections.emptyList(); + } else { + loyaltyPrograms_ = null; + loyaltyProgramsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x40000000); + productTypes_ = com.google.protobuf.LazyStringArrayList.emptyList(); + salePrice_ = null; + if (salePriceBuilder_ != null) { + salePriceBuilder_.dispose(); + salePriceBuilder_ = null; + } + salePriceEffectiveDate_ = null; + if (salePriceEffectiveDateBuilder_ != null) { + salePriceEffectiveDateBuilder_.dispose(); + salePriceEffectiveDateBuilder_ = null; + } + sellOnGoogleQuantity_ = 0L; + productHeight_ = null; + if (productHeightBuilder_ != null) { + productHeightBuilder_.dispose(); + productHeightBuilder_ = null; + } + productLength_ = null; + if (productLengthBuilder_ != null) { + productLengthBuilder_.dispose(); + productLengthBuilder_ = null; + } + productWidth_ = null; + if (productWidthBuilder_ != null) { + productWidthBuilder_.dispose(); + productWidthBuilder_ = null; + } + productWeight_ = null; + if (productWeightBuilder_ != null) { + productWeightBuilder_.dispose(); + productWeightBuilder_ = null; + } + if (shippingBuilder_ == null) { + shipping_ = java.util.Collections.emptyList(); + } else { + shipping_ = null; + shippingBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00000080); + if (carrierShippingBuilder_ == null) { + carrierShipping_ = java.util.Collections.emptyList(); + } else { + carrierShipping_ = null; + carrierShippingBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00000100); + if (freeShippingThresholdBuilder_ == null) { + freeShippingThreshold_ = java.util.Collections.emptyList(); + } else { + freeShippingThreshold_ = null; + freeShippingThresholdBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00000200); + shippingWeight_ = null; + if (shippingWeightBuilder_ != null) { + shippingWeightBuilder_.dispose(); + shippingWeightBuilder_ = null; + } + shippingLength_ = null; + if (shippingLengthBuilder_ != null) { + shippingLengthBuilder_.dispose(); + shippingLengthBuilder_ = null; + } + shippingWidth_ = null; + if (shippingWidthBuilder_ != null) { + shippingWidthBuilder_.dispose(); + shippingWidthBuilder_ = null; + } + shippingHeight_ = null; + if (shippingHeightBuilder_ != null) { + shippingHeightBuilder_.dispose(); + shippingHeightBuilder_ = null; + } + maxHandlingTime_ = 0L; + minHandlingTime_ = 0L; + if (shippingHandlingBusinessDaysBuilder_ == null) { + shippingHandlingBusinessDays_ = java.util.Collections.emptyList(); + } else { + shippingHandlingBusinessDays_ = null; + shippingHandlingBusinessDaysBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00010000); + if (shippingTransitBusinessDaysBuilder_ == null) { + shippingTransitBusinessDays_ = java.util.Collections.emptyList(); + } else { + shippingTransitBusinessDays_ = null; + shippingTransitBusinessDaysBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00020000); + if (handlingCutoffTimesBuilder_ == null) { + handlingCutoffTimes_ = java.util.Collections.emptyList(); + } else { + handlingCutoffTimes_ = null; + handlingCutoffTimesBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00040000); + shippingLabel_ = ""; + returnPolicyLabel_ = ""; + transitTimeLabel_ = ""; + size_ = ""; + sizeSystem_ = 0; + sizeTypes_ = emptyIntList(); + energyEfficiencyClass_ = 0; + minEnergyEfficiencyClass_ = 0; + maxEnergyEfficiencyClass_ = 0; + unitPricingMeasure_ = null; + if (unitPricingMeasureBuilder_ != null) { + unitPricingMeasureBuilder_.dispose(); + unitPricingMeasureBuilder_ = null; + } + unitPricingBaseMeasure_ = null; + if (unitPricingBaseMeasureBuilder_ != null) { + unitPricingBaseMeasureBuilder_.dispose(); + unitPricingBaseMeasureBuilder_ = null; + } + multipack_ = 0L; + adsGrouping_ = ""; + adsLabels_ = com.google.protobuf.LazyStringArrayList.emptyList(); + adsRedirect_ = ""; + costOfGoodsSold_ = null; + if (costOfGoodsSoldBuilder_ != null) { + costOfGoodsSoldBuilder_.dispose(); + costOfGoodsSoldBuilder_ = null; + } + if (productDetailsBuilder_ == null) { + productDetails_ = java.util.Collections.emptyList(); + } else { + productDetails_ = null; + productDetailsBuilder_.clear(); + } + bitField2_ = (bitField2_ & ~0x00000008); + productHighlights_ = com.google.protobuf.LazyStringArrayList.emptyList(); + displayAdsId_ = ""; + displayAdsSimilarIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + displayAdsTitle_ = ""; + displayAdsLink_ = ""; + displayAdsValue_ = 0D; + promotionIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + pickupMethod_ = 0; + pickupSla_ = 0; + pickupCost_ = null; + if (pickupCostBuilder_ != null) { + pickupCostBuilder_.dispose(); + pickupCostBuilder_ = null; + } + linkTemplate_ = ""; + mobileLinkTemplate_ = ""; + customLabel0_ = ""; + customLabel1_ = ""; + customLabel2_ = ""; + customLabel3_ = ""; + customLabel4_ = ""; + includedDestinations_ = emptyIntList(); + excludedDestinations_ = emptyIntList(); + shoppingAdsExcludedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + externalSellerId_ = ""; + pause_ = 0; + lifestyleImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + if (cloudExportAdditionalPropertiesBuilder_ == null) { + cloudExportAdditionalProperties_ = java.util.Collections.emptyList(); + } else { + cloudExportAdditionalProperties_ = null; + cloudExportAdditionalPropertiesBuilder_.clear(); + } + bitField2_ = (bitField2_ & ~0x08000000); + virtualModelLink_ = ""; + if (certificationsBuilder_ == null) { + certifications_ = java.util.Collections.emptyList(); + } else { + certifications_ = null; + certificationsBuilder_.clear(); + } + bitField2_ = (bitField2_ & ~0x20000000); + structuredTitle_ = null; + if (structuredTitleBuilder_ != null) { + structuredTitleBuilder_.dispose(); + structuredTitleBuilder_ = null; + } + structuredDescription_ = null; + if (structuredDescriptionBuilder_ != null) { + structuredDescriptionBuilder_.dispose(); + structuredDescriptionBuilder_ = null; + } + autoPricingMinPrice_ = null; + if (autoPricingMinPriceBuilder_ != null) { + autoPricingMinPriceBuilder_.dispose(); + autoPricingMinPriceBuilder_ = null; + } + if (sustainabilityIncentivesBuilder_ == null) { + sustainabilityIncentives_ = java.util.Collections.emptyList(); + } else { + sustainabilityIncentives_ = null; + sustainabilityIncentivesBuilder_.clear(); + } + bitField3_ = (bitField3_ & ~0x00000002); + videoLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + if (minimumOrderValuesBuilder_ == null) { + minimumOrderValues_ = java.util.Collections.emptyList(); + } else { + minimumOrderValues_ = null; + minimumOrderValuesBuilder_.clear(); + } + bitField3_ = (bitField3_ & ~0x00000008); + vin_ = ""; + model_ = ""; + trim_ = ""; + bodyStyle_ = 0; + year_ = 0L; + mileage_ = null; + if (mileageBuilder_ != null) { + mileageBuilder_.dispose(); + mileageBuilder_ = null; + } + electricRange_ = null; + if (electricRangeBuilder_ != null) { + electricRangeBuilder_.dispose(); + electricRangeBuilder_ = null; + } + fuelConsumption_ = null; + if (fuelConsumptionBuilder_ != null) { + fuelConsumptionBuilder_.dispose(); + fuelConsumptionBuilder_ = null; + } + fuelConsumptionDischargedBattery_ = null; + if (fuelConsumptionDischargedBatteryBuilder_ != null) { + fuelConsumptionDischargedBatteryBuilder_.dispose(); + fuelConsumptionDischargedBatteryBuilder_ = null; + } + energyConsumption_ = null; + if (energyConsumptionBuilder_ != null) { + energyConsumptionBuilder_.dispose(); + energyConsumptionBuilder_ = null; + } + co2Emissions_ = null; + if (co2EmissionsBuilder_ != null) { + co2EmissionsBuilder_.dispose(); + co2EmissionsBuilder_ = null; + } + dateFirstRegistered_ = ""; + engine_ = 0; + emissionsStandard_ = 0; + certifiedPreOwned_ = false; + vehicleMsrp_ = null; + if (vehicleMsrpBuilder_ != null) { + vehicleMsrpBuilder_.dispose(); + vehicleMsrpBuilder_ = null; + } + vehicleAllInPrice_ = null; + if (vehicleAllInPriceBuilder_ != null) { + vehicleAllInPriceBuilder_.dispose(); + vehicleAllInPriceBuilder_ = null; + } + vehiclePriceType_ = 0; + vehicleMandatoryInspectionIncluded_ = false; + vehicleExpenses_ = null; + if (vehicleExpensesBuilder_ != null) { + vehicleExpensesBuilder_.dispose(); + vehicleExpensesBuilder_ = null; + } + warranty_ = null; + if (warrantyBuilder_ != null) { + warrantyBuilder_.dispose(); + warrantyBuilder_ = null; + } + displayAddress_ = null; + if (displayAddressBuilder_ != null) { + displayAddressBuilder_.dispose(); + displayAddressBuilder_ = null; + } + latitude_ = 0D; + longitude_ = 0D; + neighborhood_ = ""; + unitArea_ = null; + if (unitAreaBuilder_ != null) { + unitAreaBuilder_.dispose(); + unitAreaBuilder_ = null; + } + numberOfUnits_ = 0L; + propertyName_ = ""; + numberOfBedrooms_ = 0D; + numberOfBathrooms_ = 0D; + propertyType_ = 0; + amenityFeature_ = emptyIntList(); + utilitiesIncluded_ = emptyIntList(); + petPolicy_ = null; + if (petPolicyBuilder_ != null) { + petPolicyBuilder_.dispose(); + petPolicyBuilder_ = null; + } + specialtyHousingType_ = 0; + if (productFeeBuilder_ == null) { + productFee_ = java.util.Collections.emptyList(); + } else { + productFee_ = null; + productFeeBuilder_.clear(); + } + bitField4_ = (bitField4_ & ~0x00000080); + shortTitle_ = ""; + if (questionsAndAnswersBuilder_ == null) { + questionsAndAnswers_ = java.util.Collections.emptyList(); + } else { + questionsAndAnswers_ = null; + questionsAndAnswersBuilder_.clear(); + } + bitField4_ = (bitField4_ & ~0x00000200); + popularityRank_ = 0F; + itemGroupTitle_ = ""; + documentLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + if (variantOptionsBuilder_ == null) { + variantOptions_ = java.util.Collections.emptyList(); + } else { + variantOptions_ = null; + variantOptionsBuilder_.clear(); + } + bitField4_ = (bitField4_ & ~0x00002000); + if (relatedProductsBuilder_ == null) { + relatedProducts_ = java.util.Collections.emptyList(); + } else { + relatedProducts_ = null; + relatedProductsBuilder_.clear(); + } + bitField4_ = (bitField4_ & ~0x00004000); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductAttributes.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes build() { + com.google.shopping.merchant.products.v1.ProductAttributes result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes buildPartial() { + com.google.shopping.merchant.products.v1.ProductAttributes result = + new com.google.shopping.merchant.products.v1.ProductAttributes(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + if (bitField1_ != 0) { + buildPartial1(result); + } + if (bitField2_ != 0) { + buildPartial2(result); + } + if (bitField3_ != 0) { + buildPartial3(result); + } + if (bitField4_ != 0) { + buildPartial4(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields( + com.google.shopping.merchant.products.v1.ProductAttributes result) { + if (loyaltyProgramsBuilder_ == null) { + if (((bitField0_ & 0x40000000) != 0)) { + loyaltyPrograms_ = java.util.Collections.unmodifiableList(loyaltyPrograms_); + bitField0_ = (bitField0_ & ~0x40000000); + } + result.loyaltyPrograms_ = loyaltyPrograms_; + } else { + result.loyaltyPrograms_ = loyaltyProgramsBuilder_.build(); + } + if (shippingBuilder_ == null) { + if (((bitField1_ & 0x00000080) != 0)) { + shipping_ = java.util.Collections.unmodifiableList(shipping_); + bitField1_ = (bitField1_ & ~0x00000080); + } + result.shipping_ = shipping_; + } else { + result.shipping_ = shippingBuilder_.build(); + } + if (carrierShippingBuilder_ == null) { + if (((bitField1_ & 0x00000100) != 0)) { + carrierShipping_ = java.util.Collections.unmodifiableList(carrierShipping_); + bitField1_ = (bitField1_ & ~0x00000100); + } + result.carrierShipping_ = carrierShipping_; + } else { + result.carrierShipping_ = carrierShippingBuilder_.build(); + } + if (freeShippingThresholdBuilder_ == null) { + if (((bitField1_ & 0x00000200) != 0)) { + freeShippingThreshold_ = java.util.Collections.unmodifiableList(freeShippingThreshold_); + bitField1_ = (bitField1_ & ~0x00000200); + } + result.freeShippingThreshold_ = freeShippingThreshold_; + } else { + result.freeShippingThreshold_ = freeShippingThresholdBuilder_.build(); + } + if (shippingHandlingBusinessDaysBuilder_ == null) { + if (((bitField1_ & 0x00010000) != 0)) { + shippingHandlingBusinessDays_ = + java.util.Collections.unmodifiableList(shippingHandlingBusinessDays_); + bitField1_ = (bitField1_ & ~0x00010000); + } + result.shippingHandlingBusinessDays_ = shippingHandlingBusinessDays_; + } else { + result.shippingHandlingBusinessDays_ = shippingHandlingBusinessDaysBuilder_.build(); + } + if (shippingTransitBusinessDaysBuilder_ == null) { + if (((bitField1_ & 0x00020000) != 0)) { + shippingTransitBusinessDays_ = + java.util.Collections.unmodifiableList(shippingTransitBusinessDays_); + bitField1_ = (bitField1_ & ~0x00020000); + } + result.shippingTransitBusinessDays_ = shippingTransitBusinessDays_; + } else { + result.shippingTransitBusinessDays_ = shippingTransitBusinessDaysBuilder_.build(); + } + if (handlingCutoffTimesBuilder_ == null) { + if (((bitField1_ & 0x00040000) != 0)) { + handlingCutoffTimes_ = java.util.Collections.unmodifiableList(handlingCutoffTimes_); + bitField1_ = (bitField1_ & ~0x00040000); + } + result.handlingCutoffTimes_ = handlingCutoffTimes_; + } else { + result.handlingCutoffTimes_ = handlingCutoffTimesBuilder_.build(); + } + if (productDetailsBuilder_ == null) { + if (((bitField2_ & 0x00000008) != 0)) { + productDetails_ = java.util.Collections.unmodifiableList(productDetails_); + bitField2_ = (bitField2_ & ~0x00000008); + } + result.productDetails_ = productDetails_; + } else { + result.productDetails_ = productDetailsBuilder_.build(); + } + if (cloudExportAdditionalPropertiesBuilder_ == null) { + if (((bitField2_ & 0x08000000) != 0)) { + cloudExportAdditionalProperties_ = + java.util.Collections.unmodifiableList(cloudExportAdditionalProperties_); + bitField2_ = (bitField2_ & ~0x08000000); + } + result.cloudExportAdditionalProperties_ = cloudExportAdditionalProperties_; + } else { + result.cloudExportAdditionalProperties_ = cloudExportAdditionalPropertiesBuilder_.build(); + } + if (certificationsBuilder_ == null) { + if (((bitField2_ & 0x20000000) != 0)) { + certifications_ = java.util.Collections.unmodifiableList(certifications_); + bitField2_ = (bitField2_ & ~0x20000000); + } + result.certifications_ = certifications_; + } else { + result.certifications_ = certificationsBuilder_.build(); + } + if (sustainabilityIncentivesBuilder_ == null) { + if (((bitField3_ & 0x00000002) != 0)) { + sustainabilityIncentives_ = + java.util.Collections.unmodifiableList(sustainabilityIncentives_); + bitField3_ = (bitField3_ & ~0x00000002); + } + result.sustainabilityIncentives_ = sustainabilityIncentives_; + } else { + result.sustainabilityIncentives_ = sustainabilityIncentivesBuilder_.build(); + } + if (minimumOrderValuesBuilder_ == null) { + if (((bitField3_ & 0x00000008) != 0)) { + minimumOrderValues_ = java.util.Collections.unmodifiableList(minimumOrderValues_); + bitField3_ = (bitField3_ & ~0x00000008); + } + result.minimumOrderValues_ = minimumOrderValues_; + } else { + result.minimumOrderValues_ = minimumOrderValuesBuilder_.build(); + } + if (productFeeBuilder_ == null) { + if (((bitField4_ & 0x00000080) != 0)) { + productFee_ = java.util.Collections.unmodifiableList(productFee_); + bitField4_ = (bitField4_ & ~0x00000080); + } + result.productFee_ = productFee_; + } else { + result.productFee_ = productFeeBuilder_.build(); + } + if (questionsAndAnswersBuilder_ == null) { + if (((bitField4_ & 0x00000200) != 0)) { + questionsAndAnswers_ = java.util.Collections.unmodifiableList(questionsAndAnswers_); + bitField4_ = (bitField4_ & ~0x00000200); + } + result.questionsAndAnswers_ = questionsAndAnswers_; + } else { + result.questionsAndAnswers_ = questionsAndAnswersBuilder_.build(); + } + if (variantOptionsBuilder_ == null) { + if (((bitField4_ & 0x00002000) != 0)) { + variantOptions_ = java.util.Collections.unmodifiableList(variantOptions_); + bitField4_ = (bitField4_ & ~0x00002000); + } + result.variantOptions_ = variantOptions_; + } else { + result.variantOptions_ = variantOptionsBuilder_.build(); + } + if (relatedProductsBuilder_ == null) { + if (((bitField4_ & 0x00004000) != 0)) { + relatedProducts_ = java.util.Collections.unmodifiableList(relatedProducts_); + bitField4_ = (bitField4_ & ~0x00004000); + } + result.relatedProducts_ = relatedProducts_; + } else { + result.relatedProducts_ = relatedProductsBuilder_.build(); + } + } + + private void buildPartial0(com.google.shopping.merchant.products.v1.ProductAttributes result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.identifierExists_ = identifierExists_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.isBundle_ = isBundle_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.title_ = title_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.description_ = description_; + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.link_ = link_; + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.mobileLink_ = mobileLink_; + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.canonicalLink_ = canonicalLink_; + to_bitField0_ |= 0x00000040; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.imageLink_ = imageLink_; + to_bitField0_ |= 0x00000080; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + additionalImageLinks_.makeImmutable(); + result.additionalImageLinks_ = additionalImageLinks_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.expirationDate_ = + expirationDateBuilder_ == null ? expirationDate_ : expirationDateBuilder_.build(); + to_bitField0_ |= 0x00000100; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.disclosureDate_ = + disclosureDateBuilder_ == null ? disclosureDate_ : disclosureDateBuilder_.build(); + to_bitField0_ |= 0x00000200; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.adult_ = adult_; + to_bitField0_ |= 0x00000400; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.ageGroup_ = ageGroup_; + to_bitField0_ |= 0x00000800; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.availability_ = availability_; + to_bitField0_ |= 0x00001000; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.availabilityDate_ = + availabilityDateBuilder_ == null ? availabilityDate_ : availabilityDateBuilder_.build(); + to_bitField0_ |= 0x00002000; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.brand_ = brand_; + to_bitField0_ |= 0x00004000; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.color_ = color_; + to_bitField0_ |= 0x00008000; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.condition_ = condition_; + to_bitField0_ |= 0x00010000; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.gender_ = gender_; + to_bitField0_ |= 0x00020000; + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.googleProductCategory_ = googleProductCategory_; + to_bitField0_ |= 0x00040000; + } + if (((from_bitField0_ & 0x00100000) != 0)) { + gtins_.makeImmutable(); + result.gtins_ = gtins_; + } + if (((from_bitField0_ & 0x00200000) != 0)) { + result.itemGroupId_ = itemGroupId_; + to_bitField0_ |= 0x00080000; + } + if (((from_bitField0_ & 0x00400000) != 0)) { + result.material_ = material_; + to_bitField0_ |= 0x00100000; + } + if (((from_bitField0_ & 0x00800000) != 0)) { + result.mpn_ = mpn_; + to_bitField0_ |= 0x00200000; + } + if (((from_bitField0_ & 0x01000000) != 0)) { + result.pattern_ = pattern_; + to_bitField0_ |= 0x00400000; + } + if (((from_bitField0_ & 0x02000000) != 0)) { + result.price_ = priceBuilder_ == null ? price_ : priceBuilder_.build(); + to_bitField0_ |= 0x00800000; + } + if (((from_bitField0_ & 0x04000000) != 0)) { + result.maximumRetailPrice_ = + maximumRetailPriceBuilder_ == null + ? maximumRetailPrice_ + : maximumRetailPriceBuilder_.build(); + to_bitField0_ |= 0x01000000; + } + if (((from_bitField0_ & 0x08000000) != 0)) { + result.installment_ = + installmentBuilder_ == null ? installment_ : installmentBuilder_.build(); + to_bitField0_ |= 0x02000000; + } + if (((from_bitField0_ & 0x10000000) != 0)) { + result.subscriptionCost_ = + subscriptionCostBuilder_ == null ? subscriptionCost_ : subscriptionCostBuilder_.build(); + to_bitField0_ |= 0x04000000; + } + if (((from_bitField0_ & 0x20000000) != 0)) { + result.loyaltyPoints_ = + loyaltyPointsBuilder_ == null ? loyaltyPoints_ : loyaltyPointsBuilder_.build(); + to_bitField0_ |= 0x08000000; + } + if (((from_bitField0_ & 0x80000000) != 0)) { + productTypes_.makeImmutable(); + result.productTypes_ = productTypes_; + } + result.bitField0_ |= to_bitField0_; + } + + private void buildPartial1(com.google.shopping.merchant.products.v1.ProductAttributes result) { + int from_bitField1_ = bitField1_; + int to_bitField0_ = 0; + if (((from_bitField1_ & 0x00000001) != 0)) { + result.salePrice_ = salePriceBuilder_ == null ? salePrice_ : salePriceBuilder_.build(); + to_bitField0_ |= 0x10000000; + } + if (((from_bitField1_ & 0x00000002) != 0)) { + result.salePriceEffectiveDate_ = + salePriceEffectiveDateBuilder_ == null + ? salePriceEffectiveDate_ + : salePriceEffectiveDateBuilder_.build(); + to_bitField0_ |= 0x20000000; + } + if (((from_bitField1_ & 0x00000004) != 0)) { + result.sellOnGoogleQuantity_ = sellOnGoogleQuantity_; + to_bitField0_ |= 0x40000000; + } + if (((from_bitField1_ & 0x00000008) != 0)) { + result.productHeight_ = + productHeightBuilder_ == null ? productHeight_ : productHeightBuilder_.build(); + to_bitField0_ |= 0x80000000; + } + int to_bitField1_ = 0; + if (((from_bitField1_ & 0x00000010) != 0)) { + result.productLength_ = + productLengthBuilder_ == null ? productLength_ : productLengthBuilder_.build(); + to_bitField1_ |= 0x00000001; + } + if (((from_bitField1_ & 0x00000020) != 0)) { + result.productWidth_ = + productWidthBuilder_ == null ? productWidth_ : productWidthBuilder_.build(); + to_bitField1_ |= 0x00000002; + } + if (((from_bitField1_ & 0x00000040) != 0)) { + result.productWeight_ = + productWeightBuilder_ == null ? productWeight_ : productWeightBuilder_.build(); + to_bitField1_ |= 0x00000004; + } + if (((from_bitField1_ & 0x00000400) != 0)) { + result.shippingWeight_ = + shippingWeightBuilder_ == null ? shippingWeight_ : shippingWeightBuilder_.build(); + to_bitField1_ |= 0x00000008; + } + if (((from_bitField1_ & 0x00000800) != 0)) { + result.shippingLength_ = + shippingLengthBuilder_ == null ? shippingLength_ : shippingLengthBuilder_.build(); + to_bitField1_ |= 0x00000010; + } + if (((from_bitField1_ & 0x00001000) != 0)) { + result.shippingWidth_ = + shippingWidthBuilder_ == null ? shippingWidth_ : shippingWidthBuilder_.build(); + to_bitField1_ |= 0x00000020; + } + if (((from_bitField1_ & 0x00002000) != 0)) { + result.shippingHeight_ = + shippingHeightBuilder_ == null ? shippingHeight_ : shippingHeightBuilder_.build(); + to_bitField1_ |= 0x00000040; + } + if (((from_bitField1_ & 0x00004000) != 0)) { + result.maxHandlingTime_ = maxHandlingTime_; + to_bitField1_ |= 0x00000080; + } + if (((from_bitField1_ & 0x00008000) != 0)) { + result.minHandlingTime_ = minHandlingTime_; + to_bitField1_ |= 0x00000100; + } + if (((from_bitField1_ & 0x00080000) != 0)) { + result.shippingLabel_ = shippingLabel_; + to_bitField1_ |= 0x00000200; + } + if (((from_bitField1_ & 0x00100000) != 0)) { + result.returnPolicyLabel_ = returnPolicyLabel_; + to_bitField1_ |= 0x00000400; + } + if (((from_bitField1_ & 0x00200000) != 0)) { + result.transitTimeLabel_ = transitTimeLabel_; + to_bitField1_ |= 0x00000800; + } + if (((from_bitField1_ & 0x00400000) != 0)) { + result.size_ = size_; + to_bitField1_ |= 0x00001000; + } + if (((from_bitField1_ & 0x00800000) != 0)) { + result.sizeSystem_ = sizeSystem_; + to_bitField1_ |= 0x00002000; + } + if (((from_bitField1_ & 0x01000000) != 0)) { + sizeTypes_.makeImmutable(); + result.sizeTypes_ = sizeTypes_; + } + if (((from_bitField1_ & 0x02000000) != 0)) { + result.energyEfficiencyClass_ = energyEfficiencyClass_; + to_bitField1_ |= 0x00004000; + } + if (((from_bitField1_ & 0x04000000) != 0)) { + result.minEnergyEfficiencyClass_ = minEnergyEfficiencyClass_; + to_bitField1_ |= 0x00008000; + } + if (((from_bitField1_ & 0x08000000) != 0)) { + result.maxEnergyEfficiencyClass_ = maxEnergyEfficiencyClass_; + to_bitField1_ |= 0x00010000; + } + if (((from_bitField1_ & 0x10000000) != 0)) { + result.unitPricingMeasure_ = + unitPricingMeasureBuilder_ == null + ? unitPricingMeasure_ + : unitPricingMeasureBuilder_.build(); + to_bitField1_ |= 0x00020000; + } + if (((from_bitField1_ & 0x20000000) != 0)) { + result.unitPricingBaseMeasure_ = + unitPricingBaseMeasureBuilder_ == null + ? unitPricingBaseMeasure_ + : unitPricingBaseMeasureBuilder_.build(); + to_bitField1_ |= 0x00040000; + } + if (((from_bitField1_ & 0x40000000) != 0)) { + result.multipack_ = multipack_; + to_bitField1_ |= 0x00080000; + } + if (((from_bitField1_ & 0x80000000) != 0)) { + result.adsGrouping_ = adsGrouping_; + to_bitField1_ |= 0x00100000; + } + result.bitField0_ |= to_bitField0_; + result.bitField1_ |= to_bitField1_; + } + + private void buildPartial2(com.google.shopping.merchant.products.v1.ProductAttributes result) { + int from_bitField2_ = bitField2_; + if (((from_bitField2_ & 0x00000001) != 0)) { + adsLabels_.makeImmutable(); + result.adsLabels_ = adsLabels_; + } + int to_bitField1_ = 0; + if (((from_bitField2_ & 0x00000002) != 0)) { + result.adsRedirect_ = adsRedirect_; + to_bitField1_ |= 0x00200000; + } + if (((from_bitField2_ & 0x00000004) != 0)) { + result.costOfGoodsSold_ = + costOfGoodsSoldBuilder_ == null ? costOfGoodsSold_ : costOfGoodsSoldBuilder_.build(); + to_bitField1_ |= 0x00400000; + } + if (((from_bitField2_ & 0x00000010) != 0)) { + productHighlights_.makeImmutable(); + result.productHighlights_ = productHighlights_; + } + if (((from_bitField2_ & 0x00000020) != 0)) { + result.displayAdsId_ = displayAdsId_; + to_bitField1_ |= 0x00800000; + } + if (((from_bitField2_ & 0x00000040) != 0)) { + displayAdsSimilarIds_.makeImmutable(); + result.displayAdsSimilarIds_ = displayAdsSimilarIds_; + } + if (((from_bitField2_ & 0x00000080) != 0)) { + result.displayAdsTitle_ = displayAdsTitle_; + to_bitField1_ |= 0x01000000; + } + if (((from_bitField2_ & 0x00000100) != 0)) { + result.displayAdsLink_ = displayAdsLink_; + to_bitField1_ |= 0x02000000; + } + if (((from_bitField2_ & 0x00000200) != 0)) { + result.displayAdsValue_ = displayAdsValue_; + to_bitField1_ |= 0x04000000; + } + if (((from_bitField2_ & 0x00000400) != 0)) { + promotionIds_.makeImmutable(); + result.promotionIds_ = promotionIds_; + } + if (((from_bitField2_ & 0x00000800) != 0)) { + result.pickupMethod_ = pickupMethod_; + to_bitField1_ |= 0x08000000; + } + if (((from_bitField2_ & 0x00001000) != 0)) { + result.pickupSla_ = pickupSla_; + to_bitField1_ |= 0x10000000; + } + if (((from_bitField2_ & 0x00002000) != 0)) { + result.pickupCost_ = pickupCostBuilder_ == null ? pickupCost_ : pickupCostBuilder_.build(); + to_bitField1_ |= 0x20000000; + } + if (((from_bitField2_ & 0x00004000) != 0)) { + result.linkTemplate_ = linkTemplate_; + to_bitField1_ |= 0x40000000; + } + if (((from_bitField2_ & 0x00008000) != 0)) { + result.mobileLinkTemplate_ = mobileLinkTemplate_; + to_bitField1_ |= 0x80000000; + } + int to_bitField2_ = 0; + if (((from_bitField2_ & 0x00010000) != 0)) { + result.customLabel0_ = customLabel0_; + to_bitField2_ |= 0x00000001; + } + if (((from_bitField2_ & 0x00020000) != 0)) { + result.customLabel1_ = customLabel1_; + to_bitField2_ |= 0x00000002; + } + if (((from_bitField2_ & 0x00040000) != 0)) { + result.customLabel2_ = customLabel2_; + to_bitField2_ |= 0x00000004; + } + if (((from_bitField2_ & 0x00080000) != 0)) { + result.customLabel3_ = customLabel3_; + to_bitField2_ |= 0x00000008; + } + if (((from_bitField2_ & 0x00100000) != 0)) { + result.customLabel4_ = customLabel4_; + to_bitField2_ |= 0x00000010; + } + if (((from_bitField2_ & 0x00200000) != 0)) { + includedDestinations_.makeImmutable(); + result.includedDestinations_ = includedDestinations_; + } + if (((from_bitField2_ & 0x00400000) != 0)) { + excludedDestinations_.makeImmutable(); + result.excludedDestinations_ = excludedDestinations_; + } + if (((from_bitField2_ & 0x00800000) != 0)) { + shoppingAdsExcludedCountries_.makeImmutable(); + result.shoppingAdsExcludedCountries_ = shoppingAdsExcludedCountries_; + } + if (((from_bitField2_ & 0x01000000) != 0)) { + result.externalSellerId_ = externalSellerId_; + to_bitField2_ |= 0x00000020; + } + if (((from_bitField2_ & 0x02000000) != 0)) { + result.pause_ = pause_; + to_bitField2_ |= 0x00000040; + } + if (((from_bitField2_ & 0x04000000) != 0)) { + lifestyleImageLinks_.makeImmutable(); + result.lifestyleImageLinks_ = lifestyleImageLinks_; + } + if (((from_bitField2_ & 0x10000000) != 0)) { + result.virtualModelLink_ = virtualModelLink_; + to_bitField2_ |= 0x00000080; + } + if (((from_bitField2_ & 0x40000000) != 0)) { + result.structuredTitle_ = + structuredTitleBuilder_ == null ? structuredTitle_ : structuredTitleBuilder_.build(); + to_bitField2_ |= 0x00000100; + } + if (((from_bitField2_ & 0x80000000) != 0)) { + result.structuredDescription_ = + structuredDescriptionBuilder_ == null + ? structuredDescription_ + : structuredDescriptionBuilder_.build(); + to_bitField2_ |= 0x00000200; + } + result.bitField1_ |= to_bitField1_; + result.bitField2_ |= to_bitField2_; + } + + private void buildPartial3(com.google.shopping.merchant.products.v1.ProductAttributes result) { + int from_bitField3_ = bitField3_; + int to_bitField2_ = 0; + if (((from_bitField3_ & 0x00000001) != 0)) { + result.autoPricingMinPrice_ = + autoPricingMinPriceBuilder_ == null + ? autoPricingMinPrice_ + : autoPricingMinPriceBuilder_.build(); + to_bitField2_ |= 0x00000400; + } + if (((from_bitField3_ & 0x00000004) != 0)) { + videoLinks_.makeImmutable(); + result.videoLinks_ = videoLinks_; + } + if (((from_bitField3_ & 0x00000010) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField3_ & 0x00000020) != 0)) { + result.model_ = model_; + } + if (((from_bitField3_ & 0x00000040) != 0)) { + result.trim_ = trim_; + } + if (((from_bitField3_ & 0x00000080) != 0)) { + result.bodyStyle_ = bodyStyle_; + } + if (((from_bitField3_ & 0x00000100) != 0)) { + result.year_ = year_; + } + if (((from_bitField3_ & 0x00000200) != 0)) { + result.mileage_ = mileageBuilder_ == null ? mileage_ : mileageBuilder_.build(); + to_bitField2_ |= 0x00000800; + } + if (((from_bitField3_ & 0x00000400) != 0)) { + result.electricRange_ = + electricRangeBuilder_ == null ? electricRange_ : electricRangeBuilder_.build(); + to_bitField2_ |= 0x00001000; + } + if (((from_bitField3_ & 0x00000800) != 0)) { + result.fuelConsumption_ = + fuelConsumptionBuilder_ == null ? fuelConsumption_ : fuelConsumptionBuilder_.build(); + to_bitField2_ |= 0x00002000; + } + if (((from_bitField3_ & 0x00001000) != 0)) { + result.fuelConsumptionDischargedBattery_ = + fuelConsumptionDischargedBatteryBuilder_ == null + ? fuelConsumptionDischargedBattery_ + : fuelConsumptionDischargedBatteryBuilder_.build(); + to_bitField2_ |= 0x00004000; + } + if (((from_bitField3_ & 0x00002000) != 0)) { + result.energyConsumption_ = + energyConsumptionBuilder_ == null + ? energyConsumption_ + : energyConsumptionBuilder_.build(); + to_bitField2_ |= 0x00008000; + } + if (((from_bitField3_ & 0x00004000) != 0)) { + result.co2Emissions_ = + co2EmissionsBuilder_ == null ? co2Emissions_ : co2EmissionsBuilder_.build(); + to_bitField2_ |= 0x00010000; + } + if (((from_bitField3_ & 0x00008000) != 0)) { + result.dateFirstRegistered_ = dateFirstRegistered_; + } + if (((from_bitField3_ & 0x00010000) != 0)) { + result.engine_ = engine_; + } + if (((from_bitField3_ & 0x00020000) != 0)) { + result.emissionsStandard_ = emissionsStandard_; + } + if (((from_bitField3_ & 0x00040000) != 0)) { + result.certifiedPreOwned_ = certifiedPreOwned_; + } + if (((from_bitField3_ & 0x00080000) != 0)) { + result.vehicleMsrp_ = + vehicleMsrpBuilder_ == null ? vehicleMsrp_ : vehicleMsrpBuilder_.build(); + to_bitField2_ |= 0x00020000; + } + if (((from_bitField3_ & 0x00100000) != 0)) { + result.vehicleAllInPrice_ = + vehicleAllInPriceBuilder_ == null + ? vehicleAllInPrice_ + : vehicleAllInPriceBuilder_.build(); + to_bitField2_ |= 0x00040000; + } + if (((from_bitField3_ & 0x00200000) != 0)) { + result.vehiclePriceType_ = vehiclePriceType_; + } + if (((from_bitField3_ & 0x00400000) != 0)) { + result.vehicleMandatoryInspectionIncluded_ = vehicleMandatoryInspectionIncluded_; + } + if (((from_bitField3_ & 0x00800000) != 0)) { + result.vehicleExpenses_ = + vehicleExpensesBuilder_ == null ? vehicleExpenses_ : vehicleExpensesBuilder_.build(); + to_bitField2_ |= 0x00080000; + } + if (((from_bitField3_ & 0x01000000) != 0)) { + result.warranty_ = warrantyBuilder_ == null ? warranty_ : warrantyBuilder_.build(); + to_bitField2_ |= 0x00100000; + } + if (((from_bitField3_ & 0x02000000) != 0)) { + result.displayAddress_ = + displayAddressBuilder_ == null ? displayAddress_ : displayAddressBuilder_.build(); + to_bitField2_ |= 0x00200000; + } + if (((from_bitField3_ & 0x04000000) != 0)) { + result.latitude_ = latitude_; + to_bitField2_ |= 0x00400000; + } + if (((from_bitField3_ & 0x08000000) != 0)) { + result.longitude_ = longitude_; + to_bitField2_ |= 0x00800000; + } + if (((from_bitField3_ & 0x10000000) != 0)) { + result.neighborhood_ = neighborhood_; + } + if (((from_bitField3_ & 0x20000000) != 0)) { + result.unitArea_ = unitAreaBuilder_ == null ? unitArea_ : unitAreaBuilder_.build(); + to_bitField2_ |= 0x01000000; + } + if (((from_bitField3_ & 0x40000000) != 0)) { + result.numberOfUnits_ = numberOfUnits_; + to_bitField2_ |= 0x02000000; + } + if (((from_bitField3_ & 0x80000000) != 0)) { + result.propertyName_ = propertyName_; + } + result.bitField2_ |= to_bitField2_; + } + + private void buildPartial4(com.google.shopping.merchant.products.v1.ProductAttributes result) { + int from_bitField4_ = bitField4_; + int to_bitField2_ = 0; + if (((from_bitField4_ & 0x00000001) != 0)) { + result.numberOfBedrooms_ = numberOfBedrooms_; + to_bitField2_ |= 0x04000000; + } + if (((from_bitField4_ & 0x00000002) != 0)) { + result.numberOfBathrooms_ = numberOfBathrooms_; + to_bitField2_ |= 0x08000000; + } + if (((from_bitField4_ & 0x00000004) != 0)) { + result.propertyType_ = propertyType_; + } + if (((from_bitField4_ & 0x00000008) != 0)) { + amenityFeature_.makeImmutable(); + result.amenityFeature_ = amenityFeature_; + } + if (((from_bitField4_ & 0x00000010) != 0)) { + utilitiesIncluded_.makeImmutable(); + result.utilitiesIncluded_ = utilitiesIncluded_; + } + if (((from_bitField4_ & 0x00000020) != 0)) { + result.petPolicy_ = petPolicyBuilder_ == null ? petPolicy_ : petPolicyBuilder_.build(); + to_bitField2_ |= 0x10000000; + } + if (((from_bitField4_ & 0x00000040) != 0)) { + result.specialtyHousingType_ = specialtyHousingType_; + } + if (((from_bitField4_ & 0x00000100) != 0)) { + result.shortTitle_ = shortTitle_; + to_bitField2_ |= 0x20000000; + } + if (((from_bitField4_ & 0x00000400) != 0)) { + result.popularityRank_ = popularityRank_; + } + if (((from_bitField4_ & 0x00000800) != 0)) { + result.itemGroupTitle_ = itemGroupTitle_; + } + if (((from_bitField4_ & 0x00001000) != 0)) { + documentLinks_.makeImmutable(); + result.documentLinks_ = documentLinks_; + } + result.bitField2_ |= to_bitField2_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.shopping.merchant.products.v1.ProductAttributes) { + return mergeFrom((com.google.shopping.merchant.products.v1.ProductAttributes) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.shopping.merchant.products.v1.ProductAttributes other) { + if (other == com.google.shopping.merchant.products.v1.ProductAttributes.getDefaultInstance()) + return this; + if (other.hasIdentifierExists()) { + setIdentifierExists(other.getIdentifierExists()); + } + if (other.hasIsBundle()) { + setIsBundle(other.getIsBundle()); + } + if (other.hasTitle()) { + title_ = other.title_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasDescription()) { + description_ = other.description_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.hasLink()) { + link_ = other.link_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.hasMobileLink()) { + mobileLink_ = other.mobileLink_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasCanonicalLink()) { + canonicalLink_ = other.canonicalLink_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.hasImageLink()) { + imageLink_ = other.imageLink_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (!other.additionalImageLinks_.isEmpty()) { + if (additionalImageLinks_.isEmpty()) { + additionalImageLinks_ = other.additionalImageLinks_; + bitField0_ |= 0x00000100; + } else { + ensureAdditionalImageLinksIsMutable(); + additionalImageLinks_.addAll(other.additionalImageLinks_); + } + onChanged(); + } + if (other.hasExpirationDate()) { + mergeExpirationDate(other.getExpirationDate()); + } + if (other.hasDisclosureDate()) { + mergeDisclosureDate(other.getDisclosureDate()); + } + if (other.hasAdult()) { + setAdult(other.getAdult()); + } + if (other.hasAgeGroup()) { + setAgeGroupValue(other.getAgeGroupValue()); + } + if (other.hasAvailability()) { + setAvailabilityValue(other.getAvailabilityValue()); + } + if (other.hasAvailabilityDate()) { + mergeAvailabilityDate(other.getAvailabilityDate()); + } + if (other.hasBrand()) { + brand_ = other.brand_; + bitField0_ |= 0x00008000; + onChanged(); + } + if (other.hasColor()) { + color_ = other.color_; + bitField0_ |= 0x00010000; + onChanged(); + } + if (other.hasCondition()) { + setConditionValue(other.getConditionValue()); + } + if (other.hasGender()) { + setGenderValue(other.getGenderValue()); + } + if (other.hasGoogleProductCategory()) { + googleProductCategory_ = other.googleProductCategory_; + bitField0_ |= 0x00080000; + onChanged(); + } + if (!other.gtins_.isEmpty()) { + if (gtins_.isEmpty()) { + gtins_ = other.gtins_; + bitField0_ |= 0x00100000; + } else { + ensureGtinsIsMutable(); + gtins_.addAll(other.gtins_); + } + onChanged(); + } + if (other.hasItemGroupId()) { + itemGroupId_ = other.itemGroupId_; + bitField0_ |= 0x00200000; + onChanged(); + } + if (other.hasMaterial()) { + material_ = other.material_; + bitField0_ |= 0x00400000; + onChanged(); + } + if (other.hasMpn()) { + mpn_ = other.mpn_; + bitField0_ |= 0x00800000; + onChanged(); + } + if (other.hasPattern()) { + pattern_ = other.pattern_; + bitField0_ |= 0x01000000; + onChanged(); + } + if (other.hasPrice()) { + mergePrice(other.getPrice()); + } + if (other.hasMaximumRetailPrice()) { + mergeMaximumRetailPrice(other.getMaximumRetailPrice()); + } + if (other.hasInstallment()) { + mergeInstallment(other.getInstallment()); + } + if (other.hasSubscriptionCost()) { + mergeSubscriptionCost(other.getSubscriptionCost()); + } + if (other.hasLoyaltyPoints()) { + mergeLoyaltyPoints(other.getLoyaltyPoints()); + } + if (loyaltyProgramsBuilder_ == null) { + if (!other.loyaltyPrograms_.isEmpty()) { + if (loyaltyPrograms_.isEmpty()) { + loyaltyPrograms_ = other.loyaltyPrograms_; + bitField0_ = (bitField0_ & ~0x40000000); + } else { + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.addAll(other.loyaltyPrograms_); + } + onChanged(); + } + } else { + if (!other.loyaltyPrograms_.isEmpty()) { + if (loyaltyProgramsBuilder_.isEmpty()) { + loyaltyProgramsBuilder_.dispose(); + loyaltyProgramsBuilder_ = null; + loyaltyPrograms_ = other.loyaltyPrograms_; + bitField0_ = (bitField0_ & ~0x40000000); + loyaltyProgramsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetLoyaltyProgramsFieldBuilder() + : null; + } else { + loyaltyProgramsBuilder_.addAllMessages(other.loyaltyPrograms_); + } + } + } + if (!other.productTypes_.isEmpty()) { + if (productTypes_.isEmpty()) { + productTypes_ = other.productTypes_; + bitField0_ |= 0x80000000; + } else { + ensureProductTypesIsMutable(); + productTypes_.addAll(other.productTypes_); + } + onChanged(); + } + if (other.hasSalePrice()) { + mergeSalePrice(other.getSalePrice()); + } + if (other.hasSalePriceEffectiveDate()) { + mergeSalePriceEffectiveDate(other.getSalePriceEffectiveDate()); + } + if (other.hasSellOnGoogleQuantity()) { + setSellOnGoogleQuantity(other.getSellOnGoogleQuantity()); + } + if (other.hasProductHeight()) { + mergeProductHeight(other.getProductHeight()); + } + if (other.hasProductLength()) { + mergeProductLength(other.getProductLength()); + } + if (other.hasProductWidth()) { + mergeProductWidth(other.getProductWidth()); + } + if (other.hasProductWeight()) { + mergeProductWeight(other.getProductWeight()); + } + if (shippingBuilder_ == null) { + if (!other.shipping_.isEmpty()) { + if (shipping_.isEmpty()) { + shipping_ = other.shipping_; + bitField1_ = (bitField1_ & ~0x00000080); + } else { + ensureShippingIsMutable(); + shipping_.addAll(other.shipping_); + } + onChanged(); + } + } else { + if (!other.shipping_.isEmpty()) { + if (shippingBuilder_.isEmpty()) { + shippingBuilder_.dispose(); + shippingBuilder_ = null; + shipping_ = other.shipping_; + bitField1_ = (bitField1_ & ~0x00000080); + shippingBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetShippingFieldBuilder() + : null; + } else { + shippingBuilder_.addAllMessages(other.shipping_); + } + } + } + if (carrierShippingBuilder_ == null) { + if (!other.carrierShipping_.isEmpty()) { + if (carrierShipping_.isEmpty()) { + carrierShipping_ = other.carrierShipping_; + bitField1_ = (bitField1_ & ~0x00000100); + } else { + ensureCarrierShippingIsMutable(); + carrierShipping_.addAll(other.carrierShipping_); + } + onChanged(); + } + } else { + if (!other.carrierShipping_.isEmpty()) { + if (carrierShippingBuilder_.isEmpty()) { + carrierShippingBuilder_.dispose(); + carrierShippingBuilder_ = null; + carrierShipping_ = other.carrierShipping_; + bitField1_ = (bitField1_ & ~0x00000100); + carrierShippingBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetCarrierShippingFieldBuilder() + : null; + } else { + carrierShippingBuilder_.addAllMessages(other.carrierShipping_); + } + } + } + if (freeShippingThresholdBuilder_ == null) { + if (!other.freeShippingThreshold_.isEmpty()) { + if (freeShippingThreshold_.isEmpty()) { + freeShippingThreshold_ = other.freeShippingThreshold_; + bitField1_ = (bitField1_ & ~0x00000200); + } else { + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.addAll(other.freeShippingThreshold_); + } + onChanged(); + } + } else { + if (!other.freeShippingThreshold_.isEmpty()) { + if (freeShippingThresholdBuilder_.isEmpty()) { + freeShippingThresholdBuilder_.dispose(); + freeShippingThresholdBuilder_ = null; + freeShippingThreshold_ = other.freeShippingThreshold_; + bitField1_ = (bitField1_ & ~0x00000200); + freeShippingThresholdBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetFreeShippingThresholdFieldBuilder() + : null; + } else { + freeShippingThresholdBuilder_.addAllMessages(other.freeShippingThreshold_); + } + } + } + if (other.hasShippingWeight()) { + mergeShippingWeight(other.getShippingWeight()); + } + if (other.hasShippingLength()) { + mergeShippingLength(other.getShippingLength()); + } + if (other.hasShippingWidth()) { + mergeShippingWidth(other.getShippingWidth()); + } + if (other.hasShippingHeight()) { + mergeShippingHeight(other.getShippingHeight()); + } + if (other.hasMaxHandlingTime()) { + setMaxHandlingTime(other.getMaxHandlingTime()); + } + if (other.hasMinHandlingTime()) { + setMinHandlingTime(other.getMinHandlingTime()); + } + if (shippingHandlingBusinessDaysBuilder_ == null) { + if (!other.shippingHandlingBusinessDays_.isEmpty()) { + if (shippingHandlingBusinessDays_.isEmpty()) { + shippingHandlingBusinessDays_ = other.shippingHandlingBusinessDays_; + bitField1_ = (bitField1_ & ~0x00010000); + } else { + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.addAll(other.shippingHandlingBusinessDays_); + } + onChanged(); + } + } else { + if (!other.shippingHandlingBusinessDays_.isEmpty()) { + if (shippingHandlingBusinessDaysBuilder_.isEmpty()) { + shippingHandlingBusinessDaysBuilder_.dispose(); + shippingHandlingBusinessDaysBuilder_ = null; + shippingHandlingBusinessDays_ = other.shippingHandlingBusinessDays_; + bitField1_ = (bitField1_ & ~0x00010000); + shippingHandlingBusinessDaysBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetShippingHandlingBusinessDaysFieldBuilder() + : null; + } else { + shippingHandlingBusinessDaysBuilder_.addAllMessages( + other.shippingHandlingBusinessDays_); + } + } + } + if (shippingTransitBusinessDaysBuilder_ == null) { + if (!other.shippingTransitBusinessDays_.isEmpty()) { + if (shippingTransitBusinessDays_.isEmpty()) { + shippingTransitBusinessDays_ = other.shippingTransitBusinessDays_; + bitField1_ = (bitField1_ & ~0x00020000); + } else { + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.addAll(other.shippingTransitBusinessDays_); + } + onChanged(); + } + } else { + if (!other.shippingTransitBusinessDays_.isEmpty()) { + if (shippingTransitBusinessDaysBuilder_.isEmpty()) { + shippingTransitBusinessDaysBuilder_.dispose(); + shippingTransitBusinessDaysBuilder_ = null; + shippingTransitBusinessDays_ = other.shippingTransitBusinessDays_; + bitField1_ = (bitField1_ & ~0x00020000); + shippingTransitBusinessDaysBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetShippingTransitBusinessDaysFieldBuilder() + : null; + } else { + shippingTransitBusinessDaysBuilder_.addAllMessages(other.shippingTransitBusinessDays_); + } + } + } + if (handlingCutoffTimesBuilder_ == null) { + if (!other.handlingCutoffTimes_.isEmpty()) { + if (handlingCutoffTimes_.isEmpty()) { + handlingCutoffTimes_ = other.handlingCutoffTimes_; + bitField1_ = (bitField1_ & ~0x00040000); + } else { + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.addAll(other.handlingCutoffTimes_); + } + onChanged(); + } + } else { + if (!other.handlingCutoffTimes_.isEmpty()) { + if (handlingCutoffTimesBuilder_.isEmpty()) { + handlingCutoffTimesBuilder_.dispose(); + handlingCutoffTimesBuilder_ = null; + handlingCutoffTimes_ = other.handlingCutoffTimes_; + bitField1_ = (bitField1_ & ~0x00040000); + handlingCutoffTimesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetHandlingCutoffTimesFieldBuilder() + : null; + } else { + handlingCutoffTimesBuilder_.addAllMessages(other.handlingCutoffTimes_); + } + } + } + if (other.hasShippingLabel()) { + shippingLabel_ = other.shippingLabel_; + bitField1_ |= 0x00080000; + onChanged(); + } + if (other.hasReturnPolicyLabel()) { + returnPolicyLabel_ = other.returnPolicyLabel_; + bitField1_ |= 0x00100000; + onChanged(); + } + if (other.hasTransitTimeLabel()) { + transitTimeLabel_ = other.transitTimeLabel_; + bitField1_ |= 0x00200000; + onChanged(); + } + if (other.hasSize()) { + size_ = other.size_; + bitField1_ |= 0x00400000; + onChanged(); + } + if (other.hasSizeSystem()) { + setSizeSystemValue(other.getSizeSystemValue()); + } + if (!other.sizeTypes_.isEmpty()) { + if (sizeTypes_.isEmpty()) { + sizeTypes_ = other.sizeTypes_; + sizeTypes_.makeImmutable(); + bitField1_ |= 0x01000000; + } else { + ensureSizeTypesIsMutable(); + sizeTypes_.addAll(other.sizeTypes_); + } + onChanged(); + } + if (other.hasEnergyEfficiencyClass()) { + setEnergyEfficiencyClassValue(other.getEnergyEfficiencyClassValue()); + } + if (other.hasMinEnergyEfficiencyClass()) { + setMinEnergyEfficiencyClassValue(other.getMinEnergyEfficiencyClassValue()); + } + if (other.hasMaxEnergyEfficiencyClass()) { + setMaxEnergyEfficiencyClassValue(other.getMaxEnergyEfficiencyClassValue()); + } + if (other.hasUnitPricingMeasure()) { + mergeUnitPricingMeasure(other.getUnitPricingMeasure()); + } + if (other.hasUnitPricingBaseMeasure()) { + mergeUnitPricingBaseMeasure(other.getUnitPricingBaseMeasure()); + } + if (other.hasMultipack()) { + setMultipack(other.getMultipack()); + } + if (other.hasAdsGrouping()) { + adsGrouping_ = other.adsGrouping_; + bitField1_ |= 0x80000000; + onChanged(); + } + if (!other.adsLabels_.isEmpty()) { + if (adsLabels_.isEmpty()) { + adsLabels_ = other.adsLabels_; + bitField2_ |= 0x00000001; + } else { + ensureAdsLabelsIsMutable(); + adsLabels_.addAll(other.adsLabels_); + } + onChanged(); + } + if (other.hasAdsRedirect()) { + adsRedirect_ = other.adsRedirect_; + bitField2_ |= 0x00000002; + onChanged(); + } + if (other.hasCostOfGoodsSold()) { + mergeCostOfGoodsSold(other.getCostOfGoodsSold()); + } + if (productDetailsBuilder_ == null) { + if (!other.productDetails_.isEmpty()) { + if (productDetails_.isEmpty()) { + productDetails_ = other.productDetails_; + bitField2_ = (bitField2_ & ~0x00000008); + } else { + ensureProductDetailsIsMutable(); + productDetails_.addAll(other.productDetails_); + } + onChanged(); + } + } else { + if (!other.productDetails_.isEmpty()) { + if (productDetailsBuilder_.isEmpty()) { + productDetailsBuilder_.dispose(); + productDetailsBuilder_ = null; + productDetails_ = other.productDetails_; + bitField2_ = (bitField2_ & ~0x00000008); + productDetailsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetProductDetailsFieldBuilder() + : null; + } else { + productDetailsBuilder_.addAllMessages(other.productDetails_); + } + } + } + if (!other.productHighlights_.isEmpty()) { + if (productHighlights_.isEmpty()) { + productHighlights_ = other.productHighlights_; + bitField2_ |= 0x00000010; + } else { + ensureProductHighlightsIsMutable(); + productHighlights_.addAll(other.productHighlights_); + } + onChanged(); + } + if (other.hasDisplayAdsId()) { + displayAdsId_ = other.displayAdsId_; + bitField2_ |= 0x00000020; + onChanged(); + } + if (!other.displayAdsSimilarIds_.isEmpty()) { + if (displayAdsSimilarIds_.isEmpty()) { + displayAdsSimilarIds_ = other.displayAdsSimilarIds_; + bitField2_ |= 0x00000040; + } else { + ensureDisplayAdsSimilarIdsIsMutable(); + displayAdsSimilarIds_.addAll(other.displayAdsSimilarIds_); + } + onChanged(); + } + if (other.hasDisplayAdsTitle()) { + displayAdsTitle_ = other.displayAdsTitle_; + bitField2_ |= 0x00000080; + onChanged(); + } + if (other.hasDisplayAdsLink()) { + displayAdsLink_ = other.displayAdsLink_; + bitField2_ |= 0x00000100; + onChanged(); + } + if (other.hasDisplayAdsValue()) { + setDisplayAdsValue(other.getDisplayAdsValue()); + } + if (!other.promotionIds_.isEmpty()) { + if (promotionIds_.isEmpty()) { + promotionIds_ = other.promotionIds_; + bitField2_ |= 0x00000400; + } else { + ensurePromotionIdsIsMutable(); + promotionIds_.addAll(other.promotionIds_); + } + onChanged(); + } + if (other.hasPickupMethod()) { + setPickupMethodValue(other.getPickupMethodValue()); + } + if (other.hasPickupSla()) { + setPickupSlaValue(other.getPickupSlaValue()); + } + if (other.hasPickupCost()) { + mergePickupCost(other.getPickupCost()); + } + if (other.hasLinkTemplate()) { + linkTemplate_ = other.linkTemplate_; + bitField2_ |= 0x00004000; + onChanged(); + } + if (other.hasMobileLinkTemplate()) { + mobileLinkTemplate_ = other.mobileLinkTemplate_; + bitField2_ |= 0x00008000; + onChanged(); + } + if (other.hasCustomLabel0()) { + customLabel0_ = other.customLabel0_; + bitField2_ |= 0x00010000; + onChanged(); + } + if (other.hasCustomLabel1()) { + customLabel1_ = other.customLabel1_; + bitField2_ |= 0x00020000; + onChanged(); + } + if (other.hasCustomLabel2()) { + customLabel2_ = other.customLabel2_; + bitField2_ |= 0x00040000; + onChanged(); + } + if (other.hasCustomLabel3()) { + customLabel3_ = other.customLabel3_; + bitField2_ |= 0x00080000; + onChanged(); + } + if (other.hasCustomLabel4()) { + customLabel4_ = other.customLabel4_; + bitField2_ |= 0x00100000; + onChanged(); + } + if (!other.includedDestinations_.isEmpty()) { + if (includedDestinations_.isEmpty()) { + includedDestinations_ = other.includedDestinations_; + includedDestinations_.makeImmutable(); + bitField2_ |= 0x00200000; + } else { + ensureIncludedDestinationsIsMutable(); + includedDestinations_.addAll(other.includedDestinations_); + } + onChanged(); + } + if (!other.excludedDestinations_.isEmpty()) { + if (excludedDestinations_.isEmpty()) { + excludedDestinations_ = other.excludedDestinations_; + excludedDestinations_.makeImmutable(); + bitField2_ |= 0x00400000; + } else { + ensureExcludedDestinationsIsMutable(); + excludedDestinations_.addAll(other.excludedDestinations_); + } + onChanged(); + } + if (!other.shoppingAdsExcludedCountries_.isEmpty()) { + if (shoppingAdsExcludedCountries_.isEmpty()) { + shoppingAdsExcludedCountries_ = other.shoppingAdsExcludedCountries_; + bitField2_ |= 0x00800000; + } else { + ensureShoppingAdsExcludedCountriesIsMutable(); + shoppingAdsExcludedCountries_.addAll(other.shoppingAdsExcludedCountries_); + } + onChanged(); + } + if (other.hasExternalSellerId()) { + externalSellerId_ = other.externalSellerId_; + bitField2_ |= 0x01000000; + onChanged(); + } + if (other.hasPause()) { + setPauseValue(other.getPauseValue()); + } + if (!other.lifestyleImageLinks_.isEmpty()) { + if (lifestyleImageLinks_.isEmpty()) { + lifestyleImageLinks_ = other.lifestyleImageLinks_; + bitField2_ |= 0x04000000; + } else { + ensureLifestyleImageLinksIsMutable(); + lifestyleImageLinks_.addAll(other.lifestyleImageLinks_); + } + onChanged(); + } + if (cloudExportAdditionalPropertiesBuilder_ == null) { + if (!other.cloudExportAdditionalProperties_.isEmpty()) { + if (cloudExportAdditionalProperties_.isEmpty()) { + cloudExportAdditionalProperties_ = other.cloudExportAdditionalProperties_; + bitField2_ = (bitField2_ & ~0x08000000); + } else { + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.addAll(other.cloudExportAdditionalProperties_); + } + onChanged(); + } + } else { + if (!other.cloudExportAdditionalProperties_.isEmpty()) { + if (cloudExportAdditionalPropertiesBuilder_.isEmpty()) { + cloudExportAdditionalPropertiesBuilder_.dispose(); + cloudExportAdditionalPropertiesBuilder_ = null; + cloudExportAdditionalProperties_ = other.cloudExportAdditionalProperties_; + bitField2_ = (bitField2_ & ~0x08000000); + cloudExportAdditionalPropertiesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetCloudExportAdditionalPropertiesFieldBuilder() + : null; + } else { + cloudExportAdditionalPropertiesBuilder_.addAllMessages( + other.cloudExportAdditionalProperties_); + } + } + } + if (other.hasVirtualModelLink()) { + virtualModelLink_ = other.virtualModelLink_; + bitField2_ |= 0x10000000; + onChanged(); + } + if (certificationsBuilder_ == null) { + if (!other.certifications_.isEmpty()) { + if (certifications_.isEmpty()) { + certifications_ = other.certifications_; + bitField2_ = (bitField2_ & ~0x20000000); + } else { + ensureCertificationsIsMutable(); + certifications_.addAll(other.certifications_); + } + onChanged(); + } + } else { + if (!other.certifications_.isEmpty()) { + if (certificationsBuilder_.isEmpty()) { + certificationsBuilder_.dispose(); + certificationsBuilder_ = null; + certifications_ = other.certifications_; + bitField2_ = (bitField2_ & ~0x20000000); + certificationsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetCertificationsFieldBuilder() + : null; + } else { + certificationsBuilder_.addAllMessages(other.certifications_); + } + } + } + if (other.hasStructuredTitle()) { + mergeStructuredTitle(other.getStructuredTitle()); + } + if (other.hasStructuredDescription()) { + mergeStructuredDescription(other.getStructuredDescription()); + } + if (other.hasAutoPricingMinPrice()) { + mergeAutoPricingMinPrice(other.getAutoPricingMinPrice()); + } + if (sustainabilityIncentivesBuilder_ == null) { + if (!other.sustainabilityIncentives_.isEmpty()) { + if (sustainabilityIncentives_.isEmpty()) { + sustainabilityIncentives_ = other.sustainabilityIncentives_; + bitField3_ = (bitField3_ & ~0x00000002); + } else { + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.addAll(other.sustainabilityIncentives_); + } + onChanged(); + } + } else { + if (!other.sustainabilityIncentives_.isEmpty()) { + if (sustainabilityIncentivesBuilder_.isEmpty()) { + sustainabilityIncentivesBuilder_.dispose(); + sustainabilityIncentivesBuilder_ = null; + sustainabilityIncentives_ = other.sustainabilityIncentives_; + bitField3_ = (bitField3_ & ~0x00000002); + sustainabilityIncentivesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetSustainabilityIncentivesFieldBuilder() + : null; + } else { + sustainabilityIncentivesBuilder_.addAllMessages(other.sustainabilityIncentives_); + } + } + } + if (!other.videoLinks_.isEmpty()) { + if (videoLinks_.isEmpty()) { + videoLinks_ = other.videoLinks_; + bitField3_ |= 0x00000004; + } else { + ensureVideoLinksIsMutable(); + videoLinks_.addAll(other.videoLinks_); + } + onChanged(); + } + if (minimumOrderValuesBuilder_ == null) { + if (!other.minimumOrderValues_.isEmpty()) { + if (minimumOrderValues_.isEmpty()) { + minimumOrderValues_ = other.minimumOrderValues_; + bitField3_ = (bitField3_ & ~0x00000008); + } else { + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.addAll(other.minimumOrderValues_); + } + onChanged(); + } + } else { + if (!other.minimumOrderValues_.isEmpty()) { + if (minimumOrderValuesBuilder_.isEmpty()) { + minimumOrderValuesBuilder_.dispose(); + minimumOrderValuesBuilder_ = null; + minimumOrderValues_ = other.minimumOrderValues_; + bitField3_ = (bitField3_ & ~0x00000008); + minimumOrderValuesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetMinimumOrderValuesFieldBuilder() + : null; + } else { + minimumOrderValuesBuilder_.addAllMessages(other.minimumOrderValues_); + } + } + } + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField3_ |= 0x00000010; + onChanged(); + } + if (!other.getModel().isEmpty()) { + model_ = other.model_; + bitField3_ |= 0x00000020; + onChanged(); + } + if (!other.getTrim().isEmpty()) { + trim_ = other.trim_; + bitField3_ |= 0x00000040; + onChanged(); + } + if (other.bodyStyle_ != 0) { + setBodyStyleValue(other.getBodyStyleValue()); + } + if (other.getYear() != 0L) { + setYear(other.getYear()); + } + if (other.hasMileage()) { + mergeMileage(other.getMileage()); + } + if (other.hasElectricRange()) { + mergeElectricRange(other.getElectricRange()); + } + if (other.hasFuelConsumption()) { + mergeFuelConsumption(other.getFuelConsumption()); + } + if (other.hasFuelConsumptionDischargedBattery()) { + mergeFuelConsumptionDischargedBattery(other.getFuelConsumptionDischargedBattery()); + } + if (other.hasEnergyConsumption()) { + mergeEnergyConsumption(other.getEnergyConsumption()); + } + if (other.hasCo2Emissions()) { + mergeCo2Emissions(other.getCo2Emissions()); + } + if (!other.getDateFirstRegistered().isEmpty()) { + dateFirstRegistered_ = other.dateFirstRegistered_; + bitField3_ |= 0x00008000; + onChanged(); + } + if (other.engine_ != 0) { + setEngineValue(other.getEngineValue()); + } + if (other.emissionsStandard_ != 0) { + setEmissionsStandardValue(other.getEmissionsStandardValue()); + } + if (other.getCertifiedPreOwned() != false) { + setCertifiedPreOwned(other.getCertifiedPreOwned()); + } + if (other.hasVehicleMsrp()) { + mergeVehicleMsrp(other.getVehicleMsrp()); + } + if (other.hasVehicleAllInPrice()) { + mergeVehicleAllInPrice(other.getVehicleAllInPrice()); + } + if (other.vehiclePriceType_ != 0) { + setVehiclePriceTypeValue(other.getVehiclePriceTypeValue()); + } + if (other.getVehicleMandatoryInspectionIncluded() != false) { + setVehicleMandatoryInspectionIncluded(other.getVehicleMandatoryInspectionIncluded()); + } + if (other.hasVehicleExpenses()) { + mergeVehicleExpenses(other.getVehicleExpenses()); + } + if (other.hasWarranty()) { + mergeWarranty(other.getWarranty()); + } + if (other.hasDisplayAddress()) { + mergeDisplayAddress(other.getDisplayAddress()); + } + if (other.hasLatitude()) { + setLatitude(other.getLatitude()); + } + if (other.hasLongitude()) { + setLongitude(other.getLongitude()); + } + if (!other.getNeighborhood().isEmpty()) { + neighborhood_ = other.neighborhood_; + bitField3_ |= 0x10000000; + onChanged(); + } + if (other.hasUnitArea()) { + mergeUnitArea(other.getUnitArea()); + } + if (other.hasNumberOfUnits()) { + setNumberOfUnits(other.getNumberOfUnits()); + } + if (!other.getPropertyName().isEmpty()) { + propertyName_ = other.propertyName_; + bitField3_ |= 0x80000000; + onChanged(); + } + if (other.hasNumberOfBedrooms()) { + setNumberOfBedrooms(other.getNumberOfBedrooms()); + } + if (other.hasNumberOfBathrooms()) { + setNumberOfBathrooms(other.getNumberOfBathrooms()); + } + if (other.propertyType_ != 0) { + setPropertyTypeValue(other.getPropertyTypeValue()); + } + if (!other.amenityFeature_.isEmpty()) { + if (amenityFeature_.isEmpty()) { + amenityFeature_ = other.amenityFeature_; + amenityFeature_.makeImmutable(); + bitField4_ |= 0x00000008; + } else { + ensureAmenityFeatureIsMutable(); + amenityFeature_.addAll(other.amenityFeature_); + } + onChanged(); + } + if (!other.utilitiesIncluded_.isEmpty()) { + if (utilitiesIncluded_.isEmpty()) { + utilitiesIncluded_ = other.utilitiesIncluded_; + utilitiesIncluded_.makeImmutable(); + bitField4_ |= 0x00000010; + } else { + ensureUtilitiesIncludedIsMutable(); + utilitiesIncluded_.addAll(other.utilitiesIncluded_); + } + onChanged(); + } + if (other.hasPetPolicy()) { + mergePetPolicy(other.getPetPolicy()); + } + if (other.specialtyHousingType_ != 0) { + setSpecialtyHousingTypeValue(other.getSpecialtyHousingTypeValue()); + } + if (productFeeBuilder_ == null) { + if (!other.productFee_.isEmpty()) { + if (productFee_.isEmpty()) { + productFee_ = other.productFee_; + bitField4_ = (bitField4_ & ~0x00000080); + } else { + ensureProductFeeIsMutable(); + productFee_.addAll(other.productFee_); + } + onChanged(); + } + } else { + if (!other.productFee_.isEmpty()) { + if (productFeeBuilder_.isEmpty()) { + productFeeBuilder_.dispose(); + productFeeBuilder_ = null; + productFee_ = other.productFee_; + bitField4_ = (bitField4_ & ~0x00000080); + productFeeBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetProductFeeFieldBuilder() + : null; + } else { + productFeeBuilder_.addAllMessages(other.productFee_); + } + } + } + if (other.hasShortTitle()) { + shortTitle_ = other.shortTitle_; + bitField4_ |= 0x00000100; + onChanged(); + } + if (questionsAndAnswersBuilder_ == null) { + if (!other.questionsAndAnswers_.isEmpty()) { + if (questionsAndAnswers_.isEmpty()) { + questionsAndAnswers_ = other.questionsAndAnswers_; + bitField4_ = (bitField4_ & ~0x00000200); + } else { + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.addAll(other.questionsAndAnswers_); + } + onChanged(); + } + } else { + if (!other.questionsAndAnswers_.isEmpty()) { + if (questionsAndAnswersBuilder_.isEmpty()) { + questionsAndAnswersBuilder_.dispose(); + questionsAndAnswersBuilder_ = null; + questionsAndAnswers_ = other.questionsAndAnswers_; + bitField4_ = (bitField4_ & ~0x00000200); + questionsAndAnswersBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetQuestionsAndAnswersFieldBuilder() + : null; + } else { + questionsAndAnswersBuilder_.addAllMessages(other.questionsAndAnswers_); + } + } + } + if (java.lang.Float.floatToRawIntBits(other.getPopularityRank()) != 0) { + setPopularityRank(other.getPopularityRank()); + } + if (!other.getItemGroupTitle().isEmpty()) { + itemGroupTitle_ = other.itemGroupTitle_; + bitField4_ |= 0x00000800; + onChanged(); + } + if (!other.documentLinks_.isEmpty()) { + if (documentLinks_.isEmpty()) { + documentLinks_ = other.documentLinks_; + bitField4_ |= 0x00001000; + } else { + ensureDocumentLinksIsMutable(); + documentLinks_.addAll(other.documentLinks_); + } + onChanged(); + } + if (variantOptionsBuilder_ == null) { + if (!other.variantOptions_.isEmpty()) { + if (variantOptions_.isEmpty()) { + variantOptions_ = other.variantOptions_; + bitField4_ = (bitField4_ & ~0x00002000); + } else { + ensureVariantOptionsIsMutable(); + variantOptions_.addAll(other.variantOptions_); + } + onChanged(); + } + } else { + if (!other.variantOptions_.isEmpty()) { + if (variantOptionsBuilder_.isEmpty()) { + variantOptionsBuilder_.dispose(); + variantOptionsBuilder_ = null; + variantOptions_ = other.variantOptions_; + bitField4_ = (bitField4_ & ~0x00002000); + variantOptionsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetVariantOptionsFieldBuilder() + : null; + } else { + variantOptionsBuilder_.addAllMessages(other.variantOptions_); + } + } + } + if (relatedProductsBuilder_ == null) { + if (!other.relatedProducts_.isEmpty()) { + if (relatedProducts_.isEmpty()) { + relatedProducts_ = other.relatedProducts_; + bitField4_ = (bitField4_ & ~0x00004000); + } else { + ensureRelatedProductsIsMutable(); + relatedProducts_.addAll(other.relatedProducts_); + } + onChanged(); + } + } else { + if (!other.relatedProducts_.isEmpty()) { + if (relatedProductsBuilder_.isEmpty()) { + relatedProductsBuilder_.dispose(); + relatedProductsBuilder_ = null; + relatedProducts_ = other.relatedProducts_; + bitField4_ = (bitField4_ & ~0x00004000); + relatedProductsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders + ? internalGetRelatedProductsFieldBuilder() + : null; + } else { + relatedProductsBuilder_.addAllMessages(other.relatedProducts_); + } + } + } + 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: + { + externalSellerId_ = input.readStringRequireUtf8(); + bitField2_ |= 0x01000000; + break; + } // case 10 + case 32: + { + identifierExists_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 32 + case 40: + { + isBundle_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 40 + case 50: + { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 50 + case 58: + { + description_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 58 + case 66: + { + link_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 66 + case 74: + { + mobileLink_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 74 + case 82: + { + canonicalLink_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 82 + case 90: + { + imageLink_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 90 + case 98: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureAdditionalImageLinksIsMutable(); + additionalImageLinks_.add(s); + break; + } // case 98 + case 104: + { + pause_ = input.readEnum(); + bitField2_ |= 0x02000000; + break; + } // case 104 + case 114: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureLifestyleImageLinksIsMutable(); + lifestyleImageLinks_.add(s); + break; + } // case 114 + case 130: + { + input.readMessage( + internalGetExpirationDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000200; + break; + } // case 130 + case 136: + { + adult_ = input.readBool(); + bitField0_ |= 0x00000800; + break; + } // case 136 + case 144: + { + ageGroup_ = input.readEnum(); + bitField0_ |= 0x00001000; + break; + } // case 144 + case 152: + { + availability_ = input.readEnum(); + bitField0_ |= 0x00002000; + break; + } // case 152 + case 162: + { + input.readMessage( + internalGetAvailabilityDateFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00004000; + break; + } // case 162 + case 170: + { + brand_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00008000; + break; + } // case 170 + case 178: + { + color_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00010000; + break; + } // case 178 + case 184: + { + condition_ = input.readEnum(); + bitField0_ |= 0x00020000; + break; + } // case 184 + case 192: + { + gender_ = input.readEnum(); + bitField0_ |= 0x00040000; + break; + } // case 192 + case 202: + { + googleProductCategory_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00080000; + break; + } // case 202 + case 218: + { + itemGroupId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00200000; + break; + } // case 218 + case 226: + { + material_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00400000; + break; + } // case 226 + case 234: + { + mpn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00800000; + break; + } // case 234 + case 242: + { + pattern_ = input.readStringRequireUtf8(); + bitField0_ |= 0x01000000; + break; + } // case 242 + case 250: + { + input.readMessage(internalGetPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x02000000; + break; + } // case 250 + case 258: + { + input.readMessage( + internalGetInstallmentFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x08000000; + break; + } // case 258 + case 266: + { + input.readMessage( + internalGetSubscriptionCostFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x10000000; + break; + } // case 266 + case 274: + { + input.readMessage( + internalGetLoyaltyPointsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x20000000; + break; + } // case 274 + case 282: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureProductTypesIsMutable(); + productTypes_.add(s); + break; + } // case 282 + case 290: + { + input.readMessage( + internalGetSalePriceFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x00000001; + break; + } // case 290 + case 298: + { + input.readMessage( + internalGetSalePriceEffectiveDateFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00000002; + break; + } // case 298 + case 304: + { + sellOnGoogleQuantity_ = input.readInt64(); + bitField1_ |= 0x00000004; + break; + } // case 304 + case 314: + { + com.google.shopping.merchant.products.v1.Shipping m = + input.readMessage( + com.google.shopping.merchant.products.v1.Shipping.parser(), + extensionRegistry); + if (shippingBuilder_ == null) { + ensureShippingIsMutable(); + shipping_.add(m); + } else { + shippingBuilder_.addMessage(m); + } + break; + } // case 314 + case 322: + { + input.readMessage( + internalGetShippingWeightFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x00000400; + break; + } // case 322 + case 330: + { + input.readMessage( + internalGetShippingLengthFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x00000800; + break; + } // case 330 + case 338: + { + input.readMessage( + internalGetShippingWidthFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x00001000; + break; + } // case 338 + case 346: + { + input.readMessage( + internalGetShippingHeightFieldBuilder().getBuilder(), extensionRegistry); + bitField1_ |= 0x00002000; + break; + } // case 346 + case 352: + { + maxHandlingTime_ = input.readInt64(); + bitField1_ |= 0x00004000; + break; + } // case 352 + case 360: + { + minHandlingTime_ = input.readInt64(); + bitField1_ |= 0x00008000; + break; + } // case 360 + case 370: + { + shippingLabel_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00080000; + break; + } // case 370 + case 378: + { + transitTimeLabel_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00200000; + break; + } // case 378 + case 386: + { + size_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00400000; + break; + } // case 386 + case 392: + { + sizeSystem_ = input.readEnum(); + bitField1_ |= 0x00800000; + break; + } // case 392 + case 400: + { + int tmpRaw = input.readEnum(); + ensureSizeTypesIsMutable(); + sizeTypes_.addInt(tmpRaw); break; } // case 400 case 402: @@ -17393,31 +37707,31 @@ public Builder mergeFrom( case 570: { customLabel0_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00008000; + bitField2_ |= 0x00010000; break; } // case 570 case 578: { customLabel1_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00010000; + bitField2_ |= 0x00020000; break; } // case 578 case 586: { customLabel2_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00020000; + bitField2_ |= 0x00040000; break; } // case 586 case 594: { customLabel3_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00040000; + bitField2_ |= 0x00080000; break; } // case 594 case 602: { customLabel4_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00080000; + bitField2_ |= 0x00100000; break; } // case 602 case 608: @@ -17485,13 +37799,13 @@ public Builder mergeFrom( case 658: { linkTemplate_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00002000; + bitField2_ |= 0x00004000; break; } // case 658 case 666: { mobileLinkTemplate_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00004000; + bitField2_ |= 0x00008000; break; } // case 666 case 674: @@ -17555,27 +37869,27 @@ public Builder mergeFrom( { input.readMessage( internalGetAutoPricingMinPriceFieldBuilder().getBuilder(), extensionRegistry); - bitField2_ |= 0x80000000; + bitField3_ |= 0x00000001; break; } // case 994 case 1042: { virtualModelLink_ = input.readStringRequireUtf8(); - bitField2_ |= 0x08000000; + bitField2_ |= 0x10000000; break; } // case 1042 case 1058: { input.readMessage( internalGetStructuredTitleFieldBuilder().getBuilder(), extensionRegistry); - bitField2_ |= 0x20000000; + bitField2_ |= 0x40000000; break; } // case 1058 case 1066: { input.readMessage( internalGetStructuredDescriptionFieldBuilder().getBuilder(), extensionRegistry); - bitField2_ |= 0x40000000; + bitField2_ |= 0x80000000; break; } // case 1066 case 1082: @@ -17684,111 +37998,8315 @@ public Builder mergeFrom( case 1154: { com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig - m = - input.readMessage( - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig.parser(), - extensionRegistry); - if (shippingTransitBusinessDaysBuilder_ == null) { - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.add(m); - } else { - shippingTransitBusinessDaysBuilder_.addMessage(m); - } - break; - } // case 1154 - case 1354: - { - java.lang.String s = input.readStringRequireUtf8(); - ensureVideoLinksIsMutable(); - videoLinks_.add(s); - break; - } // case 1354 - case 1362: - { - returnPolicyLabel_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00100000; - break; - } // case 1362 - 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 { + .ShippingBusinessDaysConfig + m = + input.readMessage( + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig.parser(), + extensionRegistry); + if (shippingTransitBusinessDaysBuilder_ == null) { + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.add(m); + } else { + shippingTransitBusinessDaysBuilder_.addMessage(m); + } + break; + } // case 1154 + case 1170: + { + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue m = + input.readMessage( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.parser(), + extensionRegistry); + if (minimumOrderValuesBuilder_ == null) { + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.add(m); + } else { + minimumOrderValuesBuilder_.addMessage(m); + } + break; + } // case 1170 + case 1178: + { + vin_ = input.readStringRequireUtf8(); + bitField3_ |= 0x00000010; + break; + } // case 1178 + case 1186: + { + model_ = input.readStringRequireUtf8(); + bitField3_ |= 0x00000020; + break; + } // case 1186 + case 1194: + { + trim_ = input.readStringRequireUtf8(); + bitField3_ |= 0x00000040; + break; + } // case 1194 + case 1200: + { + bodyStyle_ = input.readEnum(); + bitField3_ |= 0x00000080; + break; + } // case 1200 + case 1208: + { + year_ = input.readInt64(); + bitField3_ |= 0x00000100; + break; + } // case 1208 + case 1218: + { + input.readMessage(internalGetMileageFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00000200; + break; + } // case 1218 + case 1226: + { + input.readMessage( + internalGetElectricRangeFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00000400; + break; + } // case 1226 + case 1234: + { + input.readMessage( + internalGetFuelConsumptionFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00000800; + break; + } // case 1234 + case 1242: + { + input.readMessage( + internalGetFuelConsumptionDischargedBatteryFieldBuilder().getBuilder(), + extensionRegistry); + bitField3_ |= 0x00001000; + break; + } // case 1242 + case 1250: + { + input.readMessage( + internalGetEnergyConsumptionFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00002000; + break; + } // case 1250 + case 1258: + { + input.readMessage( + internalGetCo2EmissionsFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00004000; + break; + } // case 1258 + case 1266: + { + dateFirstRegistered_ = input.readStringRequireUtf8(); + bitField3_ |= 0x00008000; + break; + } // case 1266 + case 1272: + { + engine_ = input.readEnum(); + bitField3_ |= 0x00010000; + break; + } // case 1272 + case 1280: + { + emissionsStandard_ = input.readEnum(); + bitField3_ |= 0x00020000; + break; + } // case 1280 + case 1288: + { + certifiedPreOwned_ = input.readBool(); + bitField3_ |= 0x00040000; + break; + } // case 1288 + case 1298: + { + input.readMessage( + internalGetVehicleMsrpFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00080000; + break; + } // case 1298 + case 1306: + { + input.readMessage( + internalGetVehicleAllInPriceFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00100000; + break; + } // case 1306 + case 1312: + { + vehiclePriceType_ = input.readEnum(); + bitField3_ |= 0x00200000; + break; + } // case 1312 + case 1328: + { + vehicleMandatoryInspectionIncluded_ = input.readBool(); + bitField3_ |= 0x00400000; + break; + } // case 1328 + case 1338: + { + input.readMessage( + internalGetVehicleExpensesFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x00800000; + break; + } // case 1338 + case 1346: + { + input.readMessage( + internalGetWarrantyFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x01000000; + break; + } // case 1346 + case 1354: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureVideoLinksIsMutable(); + videoLinks_.add(s); + break; + } // case 1354 + case 1362: + { + returnPolicyLabel_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00100000; + break; + } // case 1362 + case 1378: + { + input.readMessage( + internalGetPickupCostFieldBuilder().getBuilder(), extensionRegistry); + bitField2_ |= 0x00002000; + break; + } // case 1378 + case 1386: + { + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer m = + input.readMessage( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + .parser(), + extensionRegistry); + if (questionsAndAnswersBuilder_ == null) { + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.add(m); + } else { + questionsAndAnswersBuilder_.addMessage(m); + } + break; + } // case 1386 + case 1397: + { + popularityRank_ = input.readFloat(); + bitField4_ |= 0x00000400; + break; + } // case 1397 + case 1402: + { + itemGroupTitle_ = input.readStringRequireUtf8(); + bitField4_ |= 0x00000800; + break; + } // case 1402 + case 1410: + { + java.lang.String s = input.readStringRequireUtf8(); + ensureDocumentLinksIsMutable(); + documentLinks_.add(s); + break; + } // case 1410 + case 1418: + { + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption m = + input.readMessage( + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + .parser(), + extensionRegistry); + if (variantOptionsBuilder_ == null) { + ensureVariantOptionsIsMutable(); + variantOptions_.add(m); + } else { + variantOptionsBuilder_.addMessage(m); + } + break; + } // case 1418 + case 1426: + { + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct m = + input.readMessage( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .parser(), + extensionRegistry); + if (relatedProductsBuilder_ == null) { + ensureRelatedProductsIsMutable(); + relatedProducts_.add(m); + } else { + relatedProductsBuilder_.addMessage(m); + } + break; + } // case 1426 + case 1434: + { + input.readMessage( + internalGetDisplayAddressFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x02000000; + break; + } // case 1434 + case 1441: + { + latitude_ = input.readDouble(); + bitField3_ |= 0x04000000; + break; + } // case 1441 + case 1449: + { + longitude_ = input.readDouble(); + bitField3_ |= 0x08000000; + break; + } // case 1449 + case 1458: + { + neighborhood_ = input.readStringRequireUtf8(); + bitField3_ |= 0x10000000; + break; + } // case 1458 + case 1466: + { + input.readMessage( + internalGetUnitAreaFieldBuilder().getBuilder(), extensionRegistry); + bitField3_ |= 0x20000000; + break; + } // case 1466 + case 1472: + { + numberOfUnits_ = input.readInt64(); + bitField3_ |= 0x40000000; + break; + } // case 1472 + case 1482: + { + propertyName_ = input.readStringRequireUtf8(); + bitField3_ |= 0x80000000; + break; + } // case 1482 + case 1489: + { + numberOfBedrooms_ = input.readDouble(); + bitField4_ |= 0x00000001; + break; + } // case 1489 + case 1497: + { + numberOfBathrooms_ = input.readDouble(); + bitField4_ |= 0x00000002; + break; + } // case 1497 + case 1504: + { + propertyType_ = input.readEnum(); + bitField4_ |= 0x00000004; + break; + } // case 1504 + case 1512: + { + int tmpRaw = input.readEnum(); + ensureAmenityFeatureIsMutable(); + amenityFeature_.addInt(tmpRaw); + break; + } // case 1512 + case 1514: + { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureAmenityFeatureIsMutable(); + while (input.getBytesUntilLimit() > 0) { + amenityFeature_.addInt(input.readEnum()); + } + input.popLimit(limit); + break; + } // case 1514 + case 1520: + { + int tmpRaw = input.readEnum(); + ensureUtilitiesIncludedIsMutable(); + utilitiesIncluded_.addInt(tmpRaw); + break; + } // case 1520 + case 1522: + { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureUtilitiesIncludedIsMutable(); + while (input.getBytesUntilLimit() > 0) { + utilitiesIncluded_.addInt(input.readEnum()); + } + input.popLimit(limit); + break; + } // case 1522 + case 1530: + { + input.readMessage( + internalGetPetPolicyFieldBuilder().getBuilder(), extensionRegistry); + bitField4_ |= 0x00000020; + break; + } // case 1530 + case 1536: + { + specialtyHousingType_ = input.readEnum(); + bitField4_ |= 0x00000040; + break; + } // case 1536 + case 1546: + { + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee m = + input.readMessage( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee + .parser(), + extensionRegistry); + if (productFeeBuilder_ == null) { + ensureProductFeeIsMutable(); + productFee_.add(m); + } else { + productFeeBuilder_.addMessage(m); + } + break; + } // case 1546 + case 1554: + { + shortTitle_ = input.readStringRequireUtf8(); + bitField4_ |= 0x00000100; + break; + } // case 1554 + 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 bitField1_; + private int bitField2_; + private int bitField3_; + private int bitField4_; + + private boolean identifierExists_; + + /** + * + * + *
+     * Set this value to false when the item does not have unique product
+     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
+     * Defaults to true, if not provided.
+     * 
+ * + * optional bool identifier_exists = 4; + * + * @return Whether the identifierExists field is set. + */ + @java.lang.Override + public boolean hasIdentifierExists() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Set this value to false when the item does not have unique product
+     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
+     * Defaults to true, if not provided.
+     * 
+ * + * optional bool identifier_exists = 4; + * + * @return The identifierExists. + */ + @java.lang.Override + public boolean getIdentifierExists() { + return identifierExists_; + } + + /** + * + * + *
+     * Set this value to false when the item does not have unique product
+     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
+     * Defaults to true, if not provided.
+     * 
+ * + * optional bool identifier_exists = 4; + * + * @param value The identifierExists to set. + * @return This builder for chaining. + */ + public Builder setIdentifierExists(boolean value) { + + identifierExists_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Set this value to false when the item does not have unique product
+     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
+     * Defaults to true, if not provided.
+     * 
+ * + * optional bool identifier_exists = 4; + * + * @return This builder for chaining. + */ + public Builder clearIdentifierExists() { + bitField0_ = (bitField0_ & ~0x00000001); + identifierExists_ = false; + onChanged(); + return this; + } + + private boolean isBundle_; + + /** + * + * + *
+     * Whether the item is a business-defined sub-API. A [sub-API]
+     * (https://support.google.com/merchants/answer/6324449) is a custom
+     * grouping of different products sold by a business for a single price.
+     * 
+ * + * optional bool is_bundle = 5; + * + * @return Whether the isBundle field is set. + */ + @java.lang.Override + public boolean hasIsBundle() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Whether the item is a business-defined sub-API. A [sub-API]
+     * (https://support.google.com/merchants/answer/6324449) is a custom
+     * grouping of different products sold by a business for a single price.
+     * 
+ * + * optional bool is_bundle = 5; + * + * @return The isBundle. + */ + @java.lang.Override + public boolean getIsBundle() { + return isBundle_; + } + + /** + * + * + *
+     * Whether the item is a business-defined sub-API. A [sub-API]
+     * (https://support.google.com/merchants/answer/6324449) is a custom
+     * grouping of different products sold by a business for a single price.
+     * 
+ * + * optional bool is_bundle = 5; + * + * @param value The isBundle to set. + * @return This builder for chaining. + */ + public Builder setIsBundle(boolean value) { + + isBundle_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Whether the item is a business-defined sub-API. A [sub-API]
+     * (https://support.google.com/merchants/answer/6324449) is a custom
+     * grouping of different products sold by a business for a single price.
+     * 
+ * + * optional bool is_bundle = 5; + * + * @return This builder for chaining. + */ + public Builder clearIsBundle() { + bitField0_ = (bitField0_ & ~0x00000002); + isBundle_ = false; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * + * + *
+     * Title of the item.
+     * 
+ * + * optional string title = 6; + * + * @return Whether the title field is set. + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * Title of the item.
+     * 
+ * + * 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 item.
+     * 
+ * + * 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 item.
+     * 
+ * + * 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_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the item.
+     * 
+ * + * optional string title = 6; + * + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * + * + *
+     * Title of the item.
+     * 
+ * + * 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_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object description_ = ""; + + /** + * + * + *
+     * Description of the item.
+     * 
+ * + * optional string description = 7; + * + * @return Whether the description field is set. + */ + public boolean hasDescription() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Description of the item.
+     * 
+ * + * optional string description = 7; + * + * @return The description. + */ + public java.lang.String getDescription() { + java.lang.Object ref = description_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + description_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Description of the item.
+     * 
+ * + * optional string description = 7; + * + * @return The bytes for description. + */ + public com.google.protobuf.ByteString getDescriptionBytes() { + java.lang.Object ref = description_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + description_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Description of the item.
+     * 
+ * + * optional string description = 7; + * + * @param value The description to set. + * @return This builder for chaining. + */ + public Builder setDescription(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + description_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Description of the item.
+     * 
+ * + * optional string description = 7; + * + * @return This builder for chaining. + */ + public Builder clearDescription() { + description_ = getDefaultInstance().getDescription(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * + * + *
+     * Description of the item.
+     * 
+ * + * optional string description = 7; + * + * @param value The bytes for description to set. + * @return This builder for chaining. + */ + public Builder setDescriptionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + description_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object link_ = ""; + + /** + * + * + *
+     * URL directly linking to your item's page on your online store.
+     * 
+ * + * optional string link = 8; + * + * @return Whether the link field is set. + */ + public boolean hasLink() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * URL directly linking to your item's page on your online store.
+     * 
+ * + * optional string link = 8; + * + * @return The link. + */ + public java.lang.String getLink() { + java.lang.Object ref = link_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + link_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * URL directly linking to your item's page on your online store.
+     * 
+ * + * optional string link = 8; + * + * @return The bytes for link. + */ + public com.google.protobuf.ByteString getLinkBytes() { + java.lang.Object ref = link_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + link_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * URL directly linking to your item's page on your online store.
+     * 
+ * + * optional string link = 8; + * + * @param value The link to set. + * @return This builder for chaining. + */ + public Builder setLink(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + link_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * URL directly linking to your item's page on your online store.
+     * 
+ * + * optional string link = 8; + * + * @return This builder for chaining. + */ + public Builder clearLink() { + link_ = getDefaultInstance().getLink(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * + * + *
+     * URL directly linking to your item's page on your online store.
+     * 
+ * + * optional string link = 8; + * + * @param value The bytes for link to set. + * @return This builder for chaining. + */ + public Builder setLinkBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + link_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object mobileLink_ = ""; + + /** + * + * + *
+     * URL for the mobile-optimized version of your item's landing page.
+     * 
+ * + * optional string mobile_link = 9; + * + * @return Whether the mobileLink field is set. + */ + public boolean hasMobileLink() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * URL for the mobile-optimized version of your item's landing page.
+     * 
+ * + * optional string mobile_link = 9; + * + * @return The mobileLink. + */ + public java.lang.String getMobileLink() { + java.lang.Object ref = mobileLink_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + mobileLink_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * URL for the mobile-optimized version of your item's landing page.
+     * 
+ * + * optional string mobile_link = 9; + * + * @return The bytes for mobileLink. + */ + public com.google.protobuf.ByteString getMobileLinkBytes() { + java.lang.Object ref = mobileLink_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + mobileLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * URL for the mobile-optimized version of your item's landing page.
+     * 
+ * + * optional string mobile_link = 9; + * + * @param value The mobileLink to set. + * @return This builder for chaining. + */ + public Builder setMobileLink(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + mobileLink_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * URL for the mobile-optimized version of your item's landing page.
+     * 
+ * + * optional string mobile_link = 9; + * + * @return This builder for chaining. + */ + public Builder clearMobileLink() { + mobileLink_ = getDefaultInstance().getMobileLink(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * + * + *
+     * URL for the mobile-optimized version of your item's landing page.
+     * 
+ * + * optional string mobile_link = 9; + * + * @param value The bytes for mobileLink to set. + * @return This builder for chaining. + */ + public Builder setMobileLinkBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + mobileLink_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object canonicalLink_ = ""; + + /** + * + * + *
+     * URL for the canonical version of your item's landing page.
+     * 
+ * + * optional string canonical_link = 10; + * + * @return Whether the canonicalLink field is set. + */ + public boolean hasCanonicalLink() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * URL for the canonical version of your item's landing page.
+     * 
+ * + * optional string canonical_link = 10; + * + * @return The canonicalLink. + */ + public java.lang.String getCanonicalLink() { + java.lang.Object ref = canonicalLink_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + canonicalLink_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * URL for the canonical version of your item's landing page.
+     * 
+ * + * optional string canonical_link = 10; + * + * @return The bytes for canonicalLink. + */ + public com.google.protobuf.ByteString getCanonicalLinkBytes() { + java.lang.Object ref = canonicalLink_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + canonicalLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * URL for the canonical version of your item's landing page.
+     * 
+ * + * optional string canonical_link = 10; + * + * @param value The canonicalLink to set. + * @return This builder for chaining. + */ + public Builder setCanonicalLink(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + canonicalLink_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * URL for the canonical version of your item's landing page.
+     * 
+ * + * optional string canonical_link = 10; + * + * @return This builder for chaining. + */ + public Builder clearCanonicalLink() { + canonicalLink_ = getDefaultInstance().getCanonicalLink(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + + /** + * + * + *
+     * URL for the canonical version of your item's landing page.
+     * 
+ * + * optional string canonical_link = 10; + * + * @param value The bytes for canonicalLink to set. + * @return This builder for chaining. + */ + public Builder setCanonicalLinkBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + canonicalLink_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object imageLink_ = ""; + + /** + * + * + *
+     * URL of an image of the item.
+     * 
+ * + * optional string image_link = 11; + * + * @return Whether the imageLink field is set. + */ + public boolean hasImageLink() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * + * + *
+     * URL of an image of the item.
+     * 
+ * + * optional string image_link = 11; + * + * @return The imageLink. + */ + public java.lang.String getImageLink() { + java.lang.Object ref = imageLink_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + imageLink_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * URL of an image of the item.
+     * 
+ * + * optional string image_link = 11; + * + * @return The bytes for imageLink. + */ + public com.google.protobuf.ByteString getImageLinkBytes() { + java.lang.Object ref = imageLink_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + imageLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * URL of an image of the item.
+     * 
+ * + * optional string image_link = 11; + * + * @param value The imageLink to set. + * @return This builder for chaining. + */ + public Builder setImageLink(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + imageLink_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * + * + *
+     * URL of an image of the item.
+     * 
+ * + * optional string image_link = 11; + * + * @return This builder for chaining. + */ + public Builder clearImageLink() { + imageLink_ = getDefaultInstance().getImageLink(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + /** + * + * + *
+     * URL of an image of the item.
+     * 
+ * + * optional string image_link = 11; + * + * @param value The bytes for imageLink to set. + * @return This builder for chaining. + */ + public Builder setImageLinkBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + imageLink_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList additionalImageLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureAdditionalImageLinksIsMutable() { + if (!additionalImageLinks_.isModifiable()) { + additionalImageLinks_ = new com.google.protobuf.LazyStringArrayList(additionalImageLinks_); + } + bitField0_ |= 0x00000100; + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @return A list containing the additionalImageLinks. + */ + public com.google.protobuf.ProtocolStringList getAdditionalImageLinksList() { + additionalImageLinks_.makeImmutable(); + return additionalImageLinks_; + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @return The count of additionalImageLinks. + */ + public int getAdditionalImageLinksCount() { + return additionalImageLinks_.size(); + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @param index The index of the element to return. + * @return The additionalImageLinks at the given index. + */ + public java.lang.String getAdditionalImageLinks(int index) { + return additionalImageLinks_.get(index); + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @param index The index of the value to return. + * @return The bytes of the additionalImageLinks at the given index. + */ + public com.google.protobuf.ByteString getAdditionalImageLinksBytes(int index) { + return additionalImageLinks_.getByteString(index); + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @param index The index to set the value at. + * @param value The additionalImageLinks to set. + * @return This builder for chaining. + */ + public Builder setAdditionalImageLinks(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalImageLinksIsMutable(); + additionalImageLinks_.set(index, value); + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @param value The additionalImageLinks to add. + * @return This builder for chaining. + */ + public Builder addAdditionalImageLinks(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalImageLinksIsMutable(); + additionalImageLinks_.add(value); + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @param values The additionalImageLinks to add. + * @return This builder for chaining. + */ + public Builder addAllAdditionalImageLinks(java.lang.Iterable values) { + ensureAdditionalImageLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, additionalImageLinks_); + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @return This builder for chaining. + */ + public Builder clearAdditionalImageLinks() { + additionalImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000100); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * Additional URLs of images of the item.
+     * 
+ * + * repeated string additional_image_links = 12; + * + * @param value The bytes of the additionalImageLinks to add. + * @return This builder for chaining. + */ + public Builder addAdditionalImageLinksBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureAdditionalImageLinksIsMutable(); + additionalImageLinks_.add(value); + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp expirationDate_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + expirationDateBuilder_; + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + * + * @return Whether the expirationDate field is set. + */ + public boolean hasExpirationDate() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + * + * @return The expirationDate. + */ + public com.google.protobuf.Timestamp getExpirationDate() { + if (expirationDateBuilder_ == null) { + return expirationDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : expirationDate_; + } else { + return expirationDateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + public Builder setExpirationDate(com.google.protobuf.Timestamp value) { + if (expirationDateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + expirationDate_ = value; + } else { + expirationDateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + public Builder setExpirationDate(com.google.protobuf.Timestamp.Builder builderForValue) { + if (expirationDateBuilder_ == null) { + expirationDate_ = builderForValue.build(); + } else { + expirationDateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + public Builder mergeExpirationDate(com.google.protobuf.Timestamp value) { + if (expirationDateBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) + && expirationDate_ != null + && expirationDate_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + getExpirationDateBuilder().mergeFrom(value); + } else { + expirationDate_ = value; + } + } else { + expirationDateBuilder_.mergeFrom(value); + } + if (expirationDate_ != null) { + bitField0_ |= 0x00000200; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + public Builder clearExpirationDate() { + bitField0_ = (bitField0_ & ~0x00000200); + expirationDate_ = null; + if (expirationDateBuilder_ != null) { + expirationDateBuilder_.dispose(); + expirationDateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + public com.google.protobuf.Timestamp.Builder getExpirationDateBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return internalGetExpirationDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + public com.google.protobuf.TimestampOrBuilder getExpirationDateOrBuilder() { + if (expirationDateBuilder_ != null) { + return expirationDateBuilder_.getMessageOrBuilder(); + } else { + return expirationDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : expirationDate_; + } + } + + /** + * + * + *
+     * Date on which the item should expire, as specified upon insertion, in
+     * [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
+     * expiration date is exposed in `productstatuses` as
+     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
+     * and might be earlier if `expirationDate` is too far in the future.
+     * 
+ * + * .google.protobuf.Timestamp expiration_date = 16; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + internalGetExpirationDateFieldBuilder() { + if (expirationDateBuilder_ == null) { + expirationDateBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getExpirationDate(), getParentForChildren(), isClean()); + expirationDate_ = null; + } + return expirationDateBuilder_; + } + + private com.google.protobuf.Timestamp disclosureDate_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + disclosureDateBuilder_; + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + * + * @return Whether the disclosureDate field is set. + */ + public boolean hasDisclosureDate() { + return ((bitField0_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + * + * @return The disclosureDate. + */ + public com.google.protobuf.Timestamp getDisclosureDate() { + if (disclosureDateBuilder_ == null) { + return disclosureDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : disclosureDate_; + } else { + return disclosureDateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + public Builder setDisclosureDate(com.google.protobuf.Timestamp value) { + if (disclosureDateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + disclosureDate_ = value; + } else { + disclosureDateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + public Builder setDisclosureDate(com.google.protobuf.Timestamp.Builder builderForValue) { + if (disclosureDateBuilder_ == null) { + disclosureDate_ = builderForValue.build(); + } else { + disclosureDateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + public Builder mergeDisclosureDate(com.google.protobuf.Timestamp value) { + if (disclosureDateBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0) + && disclosureDate_ != null + && disclosureDate_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + getDisclosureDateBuilder().mergeFrom(value); + } else { + disclosureDate_ = value; + } + } else { + disclosureDateBuilder_.mergeFrom(value); + } + if (disclosureDate_ != null) { + bitField0_ |= 0x00000400; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + public Builder clearDisclosureDate() { + bitField0_ = (bitField0_ & ~0x00000400); + disclosureDate_ = null; + if (disclosureDateBuilder_ != null) { + disclosureDateBuilder_.dispose(); + disclosureDateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + public com.google.protobuf.Timestamp.Builder getDisclosureDateBuilder() { + bitField0_ |= 0x00000400; + onChanged(); + return internalGetDisclosureDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + public com.google.protobuf.TimestampOrBuilder getDisclosureDateOrBuilder() { + if (disclosureDateBuilder_ != null) { + return disclosureDateBuilder_.getMessageOrBuilder(); + } else { + return disclosureDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : disclosureDate_; + } + } + + /** + * + * + *
+     * The date time when an offer becomes visible in search results across
+     * Google’s YouTube surfaces, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
+     * for more information.
+     * 
+ * + * .google.protobuf.Timestamp disclosure_date = 79; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + internalGetDisclosureDateFieldBuilder() { + if (disclosureDateBuilder_ == null) { + disclosureDateBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getDisclosureDate(), getParentForChildren(), isClean()); + disclosureDate_ = null; + } + return disclosureDateBuilder_; + } + + private boolean adult_; + + /** + * + * + *
+     * Set to true if the item is targeted towards adults.
+     * 
+ * + * optional bool adult = 17; + * + * @return Whether the adult field is set. + */ + @java.lang.Override + public boolean hasAdult() { + return ((bitField0_ & 0x00000800) != 0); + } + + /** + * + * + *
+     * Set to true if the item is targeted towards adults.
+     * 
+ * + * optional bool adult = 17; + * + * @return The adult. + */ + @java.lang.Override + public boolean getAdult() { + return adult_; + } + + /** + * + * + *
+     * Set to true if the item is targeted towards adults.
+     * 
+ * + * optional bool adult = 17; + * + * @param value The adult to set. + * @return This builder for chaining. + */ + public Builder setAdult(boolean value) { + + adult_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + /** + * + * + *
+     * Set to true if the item is targeted towards adults.
+     * 
+ * + * optional bool adult = 17; + * + * @return This builder for chaining. + */ + public Builder clearAdult() { + bitField0_ = (bitField0_ & ~0x00000800); + adult_ = false; + onChanged(); + return this; + } + + private int ageGroup_ = 0; + + /** + * + * + *
+     * Target [age group](https://support.google.com/merchants/answer/6324463) of
+     * the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @return Whether the ageGroup field is set. + */ + @java.lang.Override + public boolean hasAgeGroup() { + return ((bitField0_ & 0x00001000) != 0); + } + + /** + * + * + *
+     * Target [age group](https://support.google.com/merchants/answer/6324463) of
+     * the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @return The enum numeric value on the wire for ageGroup. + */ + @java.lang.Override + public int getAgeGroupValue() { + return ageGroup_; + } + + /** + * + * + *
+     * Target [age group](https://support.google.com/merchants/answer/6324463) of
+     * the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @param value The enum numeric value on the wire for ageGroup to set. + * @return This builder for chaining. + */ + public Builder setAgeGroupValue(int value) { + ageGroup_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Target [age group](https://support.google.com/merchants/answer/6324463) of
+     * the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @return The ageGroup. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.AgeGroup getAgeGroup() { + com.google.shopping.merchant.products.v1.AgeGroup result = + com.google.shopping.merchant.products.v1.AgeGroup.forNumber(ageGroup_); + return result == null + ? com.google.shopping.merchant.products.v1.AgeGroup.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * Target [age group](https://support.google.com/merchants/answer/6324463) of
+     * the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @param value The ageGroup to set. + * @return This builder for chaining. + */ + public Builder setAgeGroup(com.google.shopping.merchant.products.v1.AgeGroup value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00001000; + ageGroup_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Target [age group](https://support.google.com/merchants/answer/6324463) of
+     * the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; + * + * @return This builder for chaining. + */ + public Builder clearAgeGroup() { + bitField0_ = (bitField0_ & ~0x00001000); + ageGroup_ = 0; + onChanged(); + return this; + } + + private int availability_ = 0; + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) status
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @return Whether the availability field is set. + */ + @java.lang.Override + public boolean hasAvailability() { + return ((bitField0_ & 0x00002000) != 0); + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) status
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @return The enum numeric value on the wire for availability. + */ + @java.lang.Override + public int getAvailabilityValue() { + return availability_; + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) status
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @param value The enum numeric value on the wire for availability to set. + * @return This builder for chaining. + */ + public Builder setAvailabilityValue(int value) { + availability_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) status
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @return The availability. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Availability getAvailability() { + com.google.shopping.merchant.products.v1.Availability result = + com.google.shopping.merchant.products.v1.Availability.forNumber(availability_); + return result == null + ? com.google.shopping.merchant.products.v1.Availability.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) status
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @param value The availability to set. + * @return This builder for chaining. + */ + public Builder setAvailability(com.google.shopping.merchant.products.v1.Availability value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00002000; + availability_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Availability](https://support.google.com/merchants/answer/6324448) status
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Availability availability = 19; + * + * @return This builder for chaining. + */ + public Builder clearAvailability() { + bitField0_ = (bitField0_ & ~0x00002000); + availability_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp availabilityDate_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + availabilityDateBuilder_; + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + * + * @return Whether the availabilityDate field is set. + */ + public boolean hasAvailabilityDate() { + return ((bitField0_ & 0x00004000) != 0); + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + * + * @return The availabilityDate. + */ + public com.google.protobuf.Timestamp getAvailabilityDate() { + if (availabilityDateBuilder_ == null) { + return availabilityDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : availabilityDate_; + } else { + return availabilityDateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + public Builder setAvailabilityDate(com.google.protobuf.Timestamp value) { + if (availabilityDateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + availabilityDate_ = value; + } else { + availabilityDateBuilder_.setMessage(value); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + public Builder setAvailabilityDate(com.google.protobuf.Timestamp.Builder builderForValue) { + if (availabilityDateBuilder_ == null) { + availabilityDate_ = builderForValue.build(); + } else { + availabilityDateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + public Builder mergeAvailabilityDate(com.google.protobuf.Timestamp value) { + if (availabilityDateBuilder_ == null) { + if (((bitField0_ & 0x00004000) != 0) + && availabilityDate_ != null + && availabilityDate_ != com.google.protobuf.Timestamp.getDefaultInstance()) { + getAvailabilityDateBuilder().mergeFrom(value); + } else { + availabilityDate_ = value; + } + } else { + availabilityDateBuilder_.mergeFrom(value); + } + if (availabilityDate_ != null) { + bitField0_ |= 0x00004000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + public Builder clearAvailabilityDate() { + bitField0_ = (bitField0_ & ~0x00004000); + availabilityDate_ = null; + if (availabilityDateBuilder_ != null) { + availabilityDateBuilder_.dispose(); + availabilityDateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + public com.google.protobuf.Timestamp.Builder getAvailabilityDateBuilder() { + bitField0_ |= 0x00004000; + onChanged(); + return internalGetAvailabilityDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + public com.google.protobuf.TimestampOrBuilder getAvailabilityDateOrBuilder() { + if (availabilityDateBuilder_ != null) { + return availabilityDateBuilder_.getMessageOrBuilder(); + } else { + return availabilityDate_ == null + ? com.google.protobuf.Timestamp.getDefaultInstance() + : availabilityDate_; + } + } + + /** + * + * + *
+     * The day a pre-ordered product becomes available for delivery, in [ISO
+     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * 
+ * + * .google.protobuf.Timestamp availability_date = 20; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder> + internalGetAvailabilityDateFieldBuilder() { + if (availabilityDateBuilder_ == null) { + availabilityDateBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, + com.google.protobuf.Timestamp.Builder, + com.google.protobuf.TimestampOrBuilder>( + getAvailabilityDate(), getParentForChildren(), isClean()); + availabilityDate_ = null; + } + return availabilityDateBuilder_; + } + + private java.lang.Object brand_ = ""; + + /** + * + * + *
+     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
+     * For example, "Google".
+     * 
+ * + * optional string brand = 21; + * + * @return Whether the brand field is set. + */ + public boolean hasBrand() { + return ((bitField0_ & 0x00008000) != 0); + } + + /** + * + * + *
+     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
+     * For example, "Google".
+     * 
+ * + * optional string brand = 21; + * + * @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](https://support.google.com/merchants/answer/6324351) of the item.
+     * For example, "Google".
+     * 
+ * + * optional string brand = 21; + * + * @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](https://support.google.com/merchants/answer/6324351) of the item.
+     * For example, "Google".
+     * 
+ * + * optional string brand = 21; + * + * @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_ |= 0x00008000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
+     * For example, "Google".
+     * 
+ * + * optional string brand = 21; + * + * @return This builder for chaining. + */ + public Builder clearBrand() { + brand_ = getDefaultInstance().getBrand(); + bitField0_ = (bitField0_ & ~0x00008000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
+     * For example, "Google".
+     * 
+ * + * optional string brand = 21; + * + * @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_ |= 0x00008000; + onChanged(); + return this; + } + + private java.lang.Object color_ = ""; + + /** + * + * + *
+     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+     * For example, "red".
+     * 
+ * + * optional string color = 22; + * + * @return Whether the color field is set. + */ + public boolean hasColor() { + return ((bitField0_ & 0x00010000) != 0); + } + + /** + * + * + *
+     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+     * For example, "red".
+     * 
+ * + * optional string color = 22; + * + * @return The color. + */ + public java.lang.String getColor() { + java.lang.Object ref = color_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + color_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+     * For example, "red".
+     * 
+ * + * optional string color = 22; + * + * @return The bytes for color. + */ + public com.google.protobuf.ByteString getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+     * For example, "red".
+     * 
+ * + * optional string color = 22; + * + * @param value The color to set. + * @return This builder for chaining. + */ + public Builder setColor(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + color_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+     * For example, "red".
+     * 
+ * + * optional string color = 22; + * + * @return This builder for chaining. + */ + public Builder clearColor() { + color_ = getDefaultInstance().getColor(); + bitField0_ = (bitField0_ & ~0x00010000); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
+     * For example, "red".
+     * 
+ * + * optional string color = 22; + * + * @param value The bytes for color to set. + * @return This builder for chaining. + */ + public Builder setColorBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + color_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + private int condition_ = 0; + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) or state
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @return Whether the condition field is set. + */ + @java.lang.Override + public boolean hasCondition() { + return ((bitField0_ & 0x00020000) != 0); + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) or state
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @return The enum numeric value on the wire for condition. + */ + @java.lang.Override + public int getConditionValue() { + return condition_; + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) or state
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @param value The enum numeric value on the wire for condition to set. + * @return This builder for chaining. + */ + public Builder setConditionValue(int value) { + condition_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) or state
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @return The condition. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Condition getCondition() { + com.google.shopping.merchant.products.v1.Condition result = + com.google.shopping.merchant.products.v1.Condition.forNumber(condition_); + return result == null + ? com.google.shopping.merchant.products.v1.Condition.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) or state
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @param value The condition to set. + * @return This builder for chaining. + */ + public Builder setCondition(com.google.shopping.merchant.products.v1.Condition value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00020000; + condition_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * [Condition](https://support.google.com/merchants/answer/6324469) or state
+     * of the item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * + * @return This builder for chaining. + */ + public Builder clearCondition() { + bitField0_ = (bitField0_ & ~0x00020000); + condition_ = 0; + onChanged(); + return this; + } + + private int gender_ = 0; + + /** + * + * + *
+     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+     * item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @return Whether the gender field is set. + */ + @java.lang.Override + public boolean hasGender() { + return ((bitField0_ & 0x00040000) != 0); + } + + /** + * + * + *
+     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+     * item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @return The enum numeric value on the wire for gender. + */ + @java.lang.Override + public int getGenderValue() { + return gender_; + } + + /** + * + * + *
+     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+     * item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @param value The enum numeric value on the wire for gender to set. + * @return This builder for chaining. + */ + public Builder setGenderValue(int value) { + gender_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+     * item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @return The gender. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.Gender getGender() { + com.google.shopping.merchant.products.v1.Gender result = + com.google.shopping.merchant.products.v1.Gender.forNumber(gender_); + return result == null ? com.google.shopping.merchant.products.v1.Gender.UNRECOGNIZED : result; + } + + /** + * + * + *
+     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+     * item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @param value The gender to set. + * @return This builder for chaining. + */ + public Builder setGender(com.google.shopping.merchant.products.v1.Gender value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00040000; + gender_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
+     * item.
+     * 
+ * + * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * + * @return This builder for chaining. + */ + public Builder clearGender() { + bitField0_ = (bitField0_ & ~0x00040000); + gender_ = 0; + onChanged(); + return this; + } + + private java.lang.Object googleProductCategory_ = ""; + + /** + * + * + *
+     * Google's category of the item (see [Google product
+     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+     * querying products, this field will contain the user provided value. There
+     * is currently no way to get back the auto assigned google product
+     * categories through the API.
+     * 
+ * + * optional string google_product_category = 25; + * + * @return Whether the googleProductCategory field is set. + */ + public boolean hasGoogleProductCategory() { + return ((bitField0_ & 0x00080000) != 0); + } + + /** + * + * + *
+     * Google's category of the item (see [Google product
+     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+     * querying products, this field will contain the user provided value. There
+     * is currently no way to get back the auto assigned google product
+     * categories through the API.
+     * 
+ * + * optional string google_product_category = 25; + * + * @return The googleProductCategory. + */ + public java.lang.String getGoogleProductCategory() { + java.lang.Object ref = googleProductCategory_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + googleProductCategory_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Google's category of the item (see [Google product
+     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+     * querying products, this field will contain the user provided value. There
+     * is currently no way to get back the auto assigned google product
+     * categories through the API.
+     * 
+ * + * optional string google_product_category = 25; + * + * @return The bytes for googleProductCategory. + */ + public com.google.protobuf.ByteString getGoogleProductCategoryBytes() { + java.lang.Object ref = googleProductCategory_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + googleProductCategory_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Google's category of the item (see [Google product
+     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+     * querying products, this field will contain the user provided value. There
+     * is currently no way to get back the auto assigned google product
+     * categories through the API.
+     * 
+ * + * optional string google_product_category = 25; + * + * @param value The googleProductCategory to set. + * @return This builder for chaining. + */ + public Builder setGoogleProductCategory(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + googleProductCategory_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Google's category of the item (see [Google product
+     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+     * querying products, this field will contain the user provided value. There
+     * is currently no way to get back the auto assigned google product
+     * categories through the API.
+     * 
+ * + * optional string google_product_category = 25; + * + * @return This builder for chaining. + */ + public Builder clearGoogleProductCategory() { + googleProductCategory_ = getDefaultInstance().getGoogleProductCategory(); + bitField0_ = (bitField0_ & ~0x00080000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Google's category of the item (see [Google product
+     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
+     * querying products, this field will contain the user provided value. There
+     * is currently no way to get back the auto assigned google product
+     * categories through the API.
+     * 
+ * + * optional string google_product_category = 25; + * + * @param value The bytes for googleProductCategory to set. + * @return This builder for chaining. + */ + public Builder setGoogleProductCategoryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + googleProductCategory_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList gtins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureGtinsIsMutable() { + if (!gtins_.isModifiable()) { + gtins_ = new com.google.protobuf.LazyStringArrayList(gtins_); + } + bitField0_ |= 0x00100000; + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @return A list containing the gtins. + */ + public com.google.protobuf.ProtocolStringList getGtinsList() { + gtins_.makeImmutable(); + return gtins_; + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @return The count of gtins. + */ + public int getGtinsCount() { + return gtins_.size(); + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @param index The index of the element to return. + * @return The gtins at the given index. + */ + public java.lang.String getGtins(int index) { + return gtins_.get(index); + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @param index The index of the value to return. + * @return The bytes of the gtins at the given index. + */ + public com.google.protobuf.ByteString getGtinsBytes(int index) { + return gtins_.getByteString(index); + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @param index The index to set the value at. + * @param value The gtins to set. + * @return This builder for chaining. + */ + public Builder setGtins(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureGtinsIsMutable(); + gtins_.set(index, value); + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @param value The gtins to add. + * @return This builder for chaining. + */ + public Builder addGtins(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureGtinsIsMutable(); + gtins_.add(value); + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @param values The gtins to add. + * @return This builder for chaining. + */ + public Builder addAllGtins(java.lang.Iterable values) { + ensureGtinsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, gtins_); + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @return This builder for chaining. + */ + public Builder clearGtins() { + gtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00100000); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * Global Trade Item Numbers
+     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
+     * item.
+     * You can provide up to 10 GTINs.
+     * 
+ * + * repeated string gtins = 140; + * + * @param value The bytes of the gtins to add. + * @return This builder for chaining. + */ + public Builder addGtinsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureGtinsIsMutable(); + gtins_.add(value); + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + + private java.lang.Object itemGroupId_ = ""; + + /** + * + * + *
+     * Shared identifier for all variants of the same product.
+     * 
+ * + * optional string item_group_id = 27; + * + * @return Whether the itemGroupId field is set. + */ + public boolean hasItemGroupId() { + return ((bitField0_ & 0x00200000) != 0); + } + + /** + * + * + *
+     * Shared identifier for all variants of the same product.
+     * 
+ * + * optional string item_group_id = 27; + * + * @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; + } + } + + /** + * + * + *
+     * Shared identifier for all variants of the same product.
+     * 
+ * + * optional string item_group_id = 27; + * + * @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; + } + } + + /** + * + * + *
+     * Shared identifier for all variants of the same product.
+     * 
+ * + * optional string item_group_id = 27; + * + * @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_ |= 0x00200000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Shared identifier for all variants of the same product.
+     * 
+ * + * optional string item_group_id = 27; + * + * @return This builder for chaining. + */ + public Builder clearItemGroupId() { + itemGroupId_ = getDefaultInstance().getItemGroupId(); + bitField0_ = (bitField0_ & ~0x00200000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Shared identifier for all variants of the same product.
+     * 
+ * + * optional string item_group_id = 27; + * + * @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_ |= 0x00200000; + onChanged(); + return this; + } + + private java.lang.Object material_ = ""; + + /** + * + * + *
+     * The [material](https://support.google.com/merchants/answer/6324410) of
+     * which the item is made. For example, "Leather" or "Cotton".
+     * 
+ * + * optional string material = 28; + * + * @return Whether the material field is set. + */ + public boolean hasMaterial() { + return ((bitField0_ & 0x00400000) != 0); + } + + /** + * + * + *
+     * The [material](https://support.google.com/merchants/answer/6324410) of
+     * which the item is made. For example, "Leather" or "Cotton".
+     * 
+ * + * optional string material = 28; + * + * @return The material. + */ + public java.lang.String getMaterial() { + java.lang.Object ref = material_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + material_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The [material](https://support.google.com/merchants/answer/6324410) of
+     * which the item is made. For example, "Leather" or "Cotton".
+     * 
+ * + * optional string material = 28; + * + * @return The bytes for material. + */ + public com.google.protobuf.ByteString getMaterialBytes() { + java.lang.Object ref = material_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + material_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The [material](https://support.google.com/merchants/answer/6324410) of
+     * which the item is made. For example, "Leather" or "Cotton".
+     * 
+ * + * optional string material = 28; + * + * @param value The material to set. + * @return This builder for chaining. + */ + public Builder setMaterial(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + material_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + + /** + * + * + *
+     * The [material](https://support.google.com/merchants/answer/6324410) of
+     * which the item is made. For example, "Leather" or "Cotton".
+     * 
+ * + * optional string material = 28; + * + * @return This builder for chaining. + */ + public Builder clearMaterial() { + material_ = getDefaultInstance().getMaterial(); + bitField0_ = (bitField0_ & ~0x00400000); + onChanged(); + return this; + } + + /** + * + * + *
+     * The [material](https://support.google.com/merchants/answer/6324410) of
+     * which the item is made. For example, "Leather" or "Cotton".
+     * 
+ * + * optional string material = 28; + * + * @param value The bytes for material to set. + * @return This builder for chaining. + */ + public Builder setMaterialBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + material_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + + private java.lang.Object mpn_ = ""; + + /** + * + * + *
+     * Manufacturer Part Number
+     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+     * item.
+     * 
+ * + * optional string mpn = 29; + * + * @return Whether the mpn field is set. + */ + public boolean hasMpn() { + return ((bitField0_ & 0x00800000) != 0); + } + + /** + * + * + *
+     * Manufacturer Part Number
+     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+     * item.
+     * 
+ * + * optional string mpn = 29; + * + * @return The mpn. + */ + public java.lang.String getMpn() { + java.lang.Object ref = mpn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + mpn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Manufacturer Part Number
+     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+     * item.
+     * 
+ * + * optional string mpn = 29; + * + * @return The bytes for mpn. + */ + public com.google.protobuf.ByteString getMpnBytes() { + java.lang.Object ref = mpn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + mpn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Manufacturer Part Number
+     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+     * item.
+     * 
+ * + * optional string mpn = 29; + * + * @param value The mpn to set. + * @return This builder for chaining. + */ + public Builder setMpn(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + mpn_ = value; + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Manufacturer Part Number
+     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+     * item.
+     * 
+ * + * optional string mpn = 29; + * + * @return This builder for chaining. + */ + public Builder clearMpn() { + mpn_ = getDefaultInstance().getMpn(); + bitField0_ = (bitField0_ & ~0x00800000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Manufacturer Part Number
+     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
+     * item.
+     * 
+ * + * optional string mpn = 29; + * + * @param value The bytes for mpn to set. + * @return This builder for chaining. + */ + public Builder setMpnBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + mpn_ = value; + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + + private java.lang.Object pattern_ = ""; + + /** + * + * + *
+     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+     * For example, polka dots.
+     * 
+ * + * optional string pattern = 30; + * + * @return Whether the pattern field is set. + */ + public boolean hasPattern() { + return ((bitField0_ & 0x01000000) != 0); + } + + /** + * + * + *
+     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+     * For example, polka dots.
+     * 
+ * + * optional string pattern = 30; + * + * @return The pattern. + */ + public java.lang.String getPattern() { + java.lang.Object ref = pattern_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pattern_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+     * For example, polka dots.
+     * 
+ * + * optional string pattern = 30; + * + * @return The bytes for pattern. + */ + public com.google.protobuf.ByteString getPatternBytes() { + java.lang.Object ref = pattern_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + pattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+     * For example, polka dots.
+     * 
+ * + * optional string pattern = 30; + * + * @param value The pattern to set. + * @return This builder for chaining. + */ + public Builder setPattern(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + pattern_ = value; + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+     * For example, polka dots.
+     * 
+ * + * optional string pattern = 30; + * + * @return This builder for chaining. + */ + public Builder clearPattern() { + pattern_ = getDefaultInstance().getPattern(); + bitField0_ = (bitField0_ & ~0x01000000); + onChanged(); + return this; + } + + /** + * + * + *
+     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
+     * For example, polka dots.
+     * 
+ * + * optional string pattern = 30; + * + * @param value The bytes for pattern to set. + * @return This builder for chaining. + */ + public Builder setPatternBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + pattern_ = value; + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + + private com.google.shopping.type.Price price_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + priceBuilder_; + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + * + * @return Whether the price field is set. + */ + public boolean hasPrice() { + return ((bitField0_ & 0x02000000) != 0); + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + * + * @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(); + } + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + */ + 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_ |= 0x02000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + */ + public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (priceBuilder_ == null) { + price_ = builderForValue.build(); + } else { + priceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + */ + public Builder mergePrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (((bitField0_ & 0x02000000) != 0) + && price_ != null + && price_ != com.google.shopping.type.Price.getDefaultInstance()) { + getPriceBuilder().mergeFrom(value); + } else { + price_ = value; + } + } else { + priceBuilder_.mergeFrom(value); + } + if (price_ != null) { + bitField0_ |= 0x02000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + */ + public Builder clearPrice() { + bitField0_ = (bitField0_ & ~0x02000000); + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + */ + public com.google.shopping.type.Price.Builder getPriceBuilder() { + bitField0_ |= 0x02000000; + onChanged(); + return internalGetPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + */ + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + if (priceBuilder_ != null) { + return priceBuilder_.getMessageOrBuilder(); + } else { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + } + + /** + * + * + *
+     * Price of the item.
+     * 
+ * + * .google.shopping.type.Price price = 31; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetPriceFieldBuilder() { + if (priceBuilder_ == null) { + priceBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + 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 maximumRetailPrice_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + maximumRetailPriceBuilder_; + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + * + * @return Whether the maximumRetailPrice field is set. + */ + public boolean hasMaximumRetailPrice() { + return ((bitField0_ & 0x04000000) != 0); + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + * + * @return The maximumRetailPrice. + */ + public com.google.shopping.type.Price getMaximumRetailPrice() { + if (maximumRetailPriceBuilder_ == null) { + return maximumRetailPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : maximumRetailPrice_; + } else { + return maximumRetailPriceBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + public Builder setMaximumRetailPrice(com.google.shopping.type.Price value) { + if (maximumRetailPriceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + maximumRetailPrice_ = value; + } else { + maximumRetailPriceBuilder_.setMessage(value); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + public Builder setMaximumRetailPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (maximumRetailPriceBuilder_ == null) { + maximumRetailPrice_ = builderForValue.build(); + } else { + maximumRetailPriceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + public Builder mergeMaximumRetailPrice(com.google.shopping.type.Price value) { + if (maximumRetailPriceBuilder_ == null) { + if (((bitField0_ & 0x04000000) != 0) + && maximumRetailPrice_ != null + && maximumRetailPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { + getMaximumRetailPriceBuilder().mergeFrom(value); + } else { + maximumRetailPrice_ = value; + } + } else { + maximumRetailPriceBuilder_.mergeFrom(value); + } + if (maximumRetailPrice_ != null) { + bitField0_ |= 0x04000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + public Builder clearMaximumRetailPrice() { + bitField0_ = (bitField0_ & ~0x04000000); + maximumRetailPrice_ = null; + if (maximumRetailPriceBuilder_ != null) { + maximumRetailPriceBuilder_.dispose(); + maximumRetailPriceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + public com.google.shopping.type.Price.Builder getMaximumRetailPriceBuilder() { + bitField0_ |= 0x04000000; + onChanged(); + return internalGetMaximumRetailPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + public com.google.shopping.type.PriceOrBuilder getMaximumRetailPriceOrBuilder() { + if (maximumRetailPriceBuilder_ != null) { + return maximumRetailPriceBuilder_.getMessageOrBuilder(); + } else { + return maximumRetailPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : maximumRetailPrice_; + } + } + + /** + * + * + *
+     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * 
+ * + * .google.shopping.type.Price maximum_retail_price = 139; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetMaximumRetailPriceFieldBuilder() { + if (maximumRetailPriceBuilder_ == null) { + maximumRetailPriceBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getMaximumRetailPrice(), getParentForChildren(), isClean()); + maximumRetailPrice_ = null; + } + return maximumRetailPriceBuilder_; + } + + private com.google.shopping.merchant.products.v1.ProductInstallment installment_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductInstallment, + com.google.shopping.merchant.products.v1.ProductInstallment.Builder, + com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder> + installmentBuilder_; + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * + * @return Whether the installment field is set. + */ + public boolean hasInstallment() { + return ((bitField0_ & 0x08000000) != 0); + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * + * @return The installment. + */ + public com.google.shopping.merchant.products.v1.ProductInstallment getInstallment() { + if (installmentBuilder_ == null) { + return installment_ == null + ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() + : installment_; + } else { + return installmentBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + public Builder setInstallment( + com.google.shopping.merchant.products.v1.ProductInstallment value) { + if (installmentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + installment_ = value; + } else { + installmentBuilder_.setMessage(value); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + public Builder setInstallment( + com.google.shopping.merchant.products.v1.ProductInstallment.Builder builderForValue) { + if (installmentBuilder_ == null) { + installment_ = builderForValue.build(); + } else { + installmentBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + public Builder mergeInstallment( + com.google.shopping.merchant.products.v1.ProductInstallment value) { + if (installmentBuilder_ == null) { + if (((bitField0_ & 0x08000000) != 0) + && installment_ != null + && installment_ + != com.google.shopping.merchant.products.v1.ProductInstallment + .getDefaultInstance()) { + getInstallmentBuilder().mergeFrom(value); + } else { + installment_ = value; + } + } else { + installmentBuilder_.mergeFrom(value); + } + if (installment_ != null) { + bitField0_ |= 0x08000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + public Builder clearInstallment() { + bitField0_ = (bitField0_ & ~0x08000000); + installment_ = null; + if (installmentBuilder_ != null) { + installmentBuilder_.dispose(); + installmentBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + public com.google.shopping.merchant.products.v1.ProductInstallment.Builder + getInstallmentBuilder() { + bitField0_ |= 0x08000000; + onChanged(); + return internalGetInstallmentFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + public com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder + getInstallmentOrBuilder() { + if (installmentBuilder_ != null) { + return installmentBuilder_.getMessageOrBuilder(); + } else { + return installment_ == null + ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() + : installment_; + } + } + + /** + * + * + *
+     * Number and amount of installments to pay for an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductInstallment, + com.google.shopping.merchant.products.v1.ProductInstallment.Builder, + com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder> + internalGetInstallmentFieldBuilder() { + if (installmentBuilder_ == null) { + installmentBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductInstallment, + com.google.shopping.merchant.products.v1.ProductInstallment.Builder, + com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder>( + getInstallment(), getParentForChildren(), isClean()); + installment_ = null; + } + return installmentBuilder_; + } + + private com.google.shopping.merchant.products.v1.SubscriptionCost subscriptionCost_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.SubscriptionCost, + com.google.shopping.merchant.products.v1.SubscriptionCost.Builder, + com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder> + subscriptionCostBuilder_; + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * + * @return Whether the subscriptionCost field is set. + */ + public boolean hasSubscriptionCost() { + return ((bitField0_ & 0x10000000) != 0); + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * + * @return The subscriptionCost. + */ + public com.google.shopping.merchant.products.v1.SubscriptionCost getSubscriptionCost() { + if (subscriptionCostBuilder_ == null) { + return subscriptionCost_ == null + ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() + : subscriptionCost_; + } else { + return subscriptionCostBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + public Builder setSubscriptionCost( + com.google.shopping.merchant.products.v1.SubscriptionCost value) { + if (subscriptionCostBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + subscriptionCost_ = value; + } else { + subscriptionCostBuilder_.setMessage(value); + } + bitField0_ |= 0x10000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + public Builder setSubscriptionCost( + com.google.shopping.merchant.products.v1.SubscriptionCost.Builder builderForValue) { + if (subscriptionCostBuilder_ == null) { + subscriptionCost_ = builderForValue.build(); + } else { + subscriptionCostBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x10000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + public Builder mergeSubscriptionCost( + com.google.shopping.merchant.products.v1.SubscriptionCost value) { + if (subscriptionCostBuilder_ == null) { + if (((bitField0_ & 0x10000000) != 0) + && subscriptionCost_ != null + && subscriptionCost_ + != com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance()) { + getSubscriptionCostBuilder().mergeFrom(value); + } else { + subscriptionCost_ = value; + } + } else { + subscriptionCostBuilder_.mergeFrom(value); + } + if (subscriptionCost_ != null) { + bitField0_ |= 0x10000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + public Builder clearSubscriptionCost() { + bitField0_ = (bitField0_ & ~0x10000000); + subscriptionCost_ = null; + if (subscriptionCostBuilder_ != null) { + subscriptionCostBuilder_.dispose(); + subscriptionCostBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + public com.google.shopping.merchant.products.v1.SubscriptionCost.Builder + getSubscriptionCostBuilder() { + bitField0_ |= 0x10000000; + onChanged(); + return internalGetSubscriptionCostFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + public com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder + getSubscriptionCostOrBuilder() { + if (subscriptionCostBuilder_ != null) { + return subscriptionCostBuilder_.getMessageOrBuilder(); + } else { + return subscriptionCost_ == null + ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() + : subscriptionCost_; + } + } + + /** + * + * + *
+     * Number of periods (weeks, months or years) and amount of payment per period
+     * for an item with an associated subscription contract.
+     * 
+ * + * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.SubscriptionCost, + com.google.shopping.merchant.products.v1.SubscriptionCost.Builder, + com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder> + internalGetSubscriptionCostFieldBuilder() { + if (subscriptionCostBuilder_ == null) { + subscriptionCostBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.SubscriptionCost, + com.google.shopping.merchant.products.v1.SubscriptionCost.Builder, + com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder>( + getSubscriptionCost(), getParentForChildren(), isClean()); + subscriptionCost_ = null; + } + return subscriptionCostBuilder_; + } + + private com.google.shopping.merchant.products.v1.LoyaltyPoints loyaltyPoints_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.LoyaltyPoints, + com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder, + com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder> + loyaltyPointsBuilder_; + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * + * @return Whether the loyaltyPoints field is set. + */ + public boolean hasLoyaltyPoints() { + return ((bitField0_ & 0x20000000) != 0); + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * + * @return The loyaltyPoints. + */ + public com.google.shopping.merchant.products.v1.LoyaltyPoints getLoyaltyPoints() { + if (loyaltyPointsBuilder_ == null) { + return loyaltyPoints_ == null + ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() + : loyaltyPoints_; + } else { + return loyaltyPointsBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + public Builder setLoyaltyPoints(com.google.shopping.merchant.products.v1.LoyaltyPoints value) { + if (loyaltyPointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + loyaltyPoints_ = value; + } else { + loyaltyPointsBuilder_.setMessage(value); + } + bitField0_ |= 0x20000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + public Builder setLoyaltyPoints( + com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder builderForValue) { + if (loyaltyPointsBuilder_ == null) { + loyaltyPoints_ = builderForValue.build(); + } else { + loyaltyPointsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x20000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + public Builder mergeLoyaltyPoints( + com.google.shopping.merchant.products.v1.LoyaltyPoints value) { + if (loyaltyPointsBuilder_ == null) { + if (((bitField0_ & 0x20000000) != 0) + && loyaltyPoints_ != null + && loyaltyPoints_ + != com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance()) { + getLoyaltyPointsBuilder().mergeFrom(value); + } else { + loyaltyPoints_ = value; + } + } else { + loyaltyPointsBuilder_.mergeFrom(value); + } + if (loyaltyPoints_ != null) { + bitField0_ |= 0x20000000; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + public Builder clearLoyaltyPoints() { + bitField0_ = (bitField0_ & ~0x20000000); + loyaltyPoints_ = null; + if (loyaltyPointsBuilder_ != null) { + loyaltyPointsBuilder_.dispose(); + loyaltyPointsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + public com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder + getLoyaltyPointsBuilder() { + bitField0_ |= 0x20000000; + onChanged(); + return internalGetLoyaltyPointsFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + public com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder + getLoyaltyPointsOrBuilder() { + if (loyaltyPointsBuilder_ != null) { + return loyaltyPointsBuilder_.getMessageOrBuilder(); + } else { + return loyaltyPoints_ == null + ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() + : loyaltyPoints_; + } + } + + /** + * + * + *
+     * Loyalty points that users receive after purchasing the item. Japan only.
+     * 
+ * + * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.LoyaltyPoints, + com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder, + com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder> + internalGetLoyaltyPointsFieldBuilder() { + if (loyaltyPointsBuilder_ == null) { + loyaltyPointsBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.LoyaltyPoints, + com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder, + com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder>( + getLoyaltyPoints(), getParentForChildren(), isClean()); + loyaltyPoints_ = null; + } + return loyaltyPointsBuilder_; + } + + private java.util.List + loyaltyPrograms_ = java.util.Collections.emptyList(); + + private void ensureLoyaltyProgramsIsMutable() { + if (!((bitField0_ & 0x40000000) != 0)) { + loyaltyPrograms_ = + new java.util.ArrayList( + loyaltyPrograms_); + bitField0_ |= 0x40000000; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.LoyaltyProgram, + com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder, + com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder> + loyaltyProgramsBuilder_; + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public java.util.List + getLoyaltyProgramsList() { + if (loyaltyProgramsBuilder_ == null) { + return java.util.Collections.unmodifiableList(loyaltyPrograms_); + } else { + return loyaltyProgramsBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public int getLoyaltyProgramsCount() { + if (loyaltyProgramsBuilder_ == null) { + return loyaltyPrograms_.size(); + } else { + return loyaltyProgramsBuilder_.getCount(); + } + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public com.google.shopping.merchant.products.v1.LoyaltyProgram getLoyaltyPrograms(int index) { + if (loyaltyProgramsBuilder_ == null) { + return loyaltyPrograms_.get(index); + } else { + return loyaltyProgramsBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder setLoyaltyPrograms( + int index, com.google.shopping.merchant.products.v1.LoyaltyProgram value) { + if (loyaltyProgramsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.set(index, value); + onChanged(); + } else { + loyaltyProgramsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder setLoyaltyPrograms( + int index, + com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder builderForValue) { + if (loyaltyProgramsBuilder_ == null) { + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.set(index, builderForValue.build()); + onChanged(); + } else { + loyaltyProgramsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder addLoyaltyPrograms( + com.google.shopping.merchant.products.v1.LoyaltyProgram value) { + if (loyaltyProgramsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.add(value); + onChanged(); + } else { + loyaltyProgramsBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder addLoyaltyPrograms( + int index, com.google.shopping.merchant.products.v1.LoyaltyProgram value) { + if (loyaltyProgramsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.add(index, value); + onChanged(); + } else { + loyaltyProgramsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder addLoyaltyPrograms( + com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder builderForValue) { + if (loyaltyProgramsBuilder_ == null) { + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.add(builderForValue.build()); + onChanged(); + } else { + loyaltyProgramsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder addLoyaltyPrograms( + int index, + com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder builderForValue) { + if (loyaltyProgramsBuilder_ == null) { + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.add(index, builderForValue.build()); + onChanged(); + } else { + loyaltyProgramsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder addAllLoyaltyPrograms( + java.lang.Iterable + values) { + if (loyaltyProgramsBuilder_ == null) { + ensureLoyaltyProgramsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, loyaltyPrograms_); + onChanged(); + } else { + loyaltyProgramsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder clearLoyaltyPrograms() { + if (loyaltyProgramsBuilder_ == null) { + loyaltyPrograms_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x40000000); + onChanged(); + } else { + loyaltyProgramsBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public Builder removeLoyaltyPrograms(int index) { + if (loyaltyProgramsBuilder_ == null) { + ensureLoyaltyProgramsIsMutable(); + loyaltyPrograms_.remove(index); + onChanged(); + } else { + loyaltyProgramsBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder + getLoyaltyProgramsBuilder(int index) { + return internalGetLoyaltyProgramsFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder + getLoyaltyProgramsOrBuilder(int index) { + if (loyaltyProgramsBuilder_ == null) { + return loyaltyPrograms_.get(index); + } else { + return loyaltyProgramsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder> + getLoyaltyProgramsOrBuilderList() { + if (loyaltyProgramsBuilder_ != null) { + return loyaltyProgramsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(loyaltyPrograms_); + } + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder + addLoyaltyProgramsBuilder() { + return internalGetLoyaltyProgramsFieldBuilder() + .addBuilder(com.google.shopping.merchant.products.v1.LoyaltyProgram.getDefaultInstance()); + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder + addLoyaltyProgramsBuilder(int index) { + return internalGetLoyaltyProgramsFieldBuilder() + .addBuilder( + index, com.google.shopping.merchant.products.v1.LoyaltyProgram.getDefaultInstance()); + } + + /** + * + * + *
+     * A list of loyalty program information that is used to surface loyalty
+     * benefits (for example, better pricing, points, etc) to the user of this
+     * item.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * + */ + public java.util.List + getLoyaltyProgramsBuilderList() { + return internalGetLoyaltyProgramsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.LoyaltyProgram, + com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder, + com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder> + internalGetLoyaltyProgramsFieldBuilder() { + if (loyaltyProgramsBuilder_ == null) { + loyaltyProgramsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.LoyaltyProgram, + com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder, + com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder>( + loyaltyPrograms_, + ((bitField0_ & 0x40000000) != 0), + getParentForChildren(), + isClean()); + loyaltyPrograms_ = null; + } + return loyaltyProgramsBuilder_; + } + + private com.google.protobuf.LazyStringArrayList productTypes_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureProductTypesIsMutable() { + if (!productTypes_.isModifiable()) { + productTypes_ = new com.google.protobuf.LazyStringArrayList(productTypes_); + } + bitField0_ |= 0x80000000; + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @return A list containing the productTypes. + */ + public com.google.protobuf.ProtocolStringList getProductTypesList() { + productTypes_.makeImmutable(); + return productTypes_; + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @return The count of productTypes. + */ + public int getProductTypesCount() { + return productTypes_.size(); + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @param index The index of the element to return. + * @return The productTypes at the given index. + */ + public java.lang.String getProductTypes(int index) { + return productTypes_.get(index); + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @param index The index of the value to return. + * @return The bytes of the productTypes at the given index. + */ + public com.google.protobuf.ByteString getProductTypesBytes(int index) { + return productTypes_.getByteString(index); + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @param index The index to set the value at. + * @param value The productTypes to set. + * @return This builder for chaining. + */ + public Builder setProductTypes(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureProductTypesIsMutable(); + productTypes_.set(index, value); + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @param value The productTypes to add. + * @return This builder for chaining. + */ + public Builder addProductTypes(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureProductTypesIsMutable(); + productTypes_.add(value); + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @param values The productTypes to add. + * @return This builder for chaining. + */ + public Builder addAllProductTypes(java.lang.Iterable values) { + ensureProductTypesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, productTypes_); + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @return This builder for chaining. + */ + public Builder clearProductTypes() { + productTypes_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x80000000); + ; + onChanged(); + return this; + } + + /** + * + * + *
+     * Categories of the item (formatted as in [product data
+     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * 
+ * + * repeated string product_types = 35; + * + * @param value The bytes of the productTypes to add. + * @return This builder for chaining. + */ + public Builder addProductTypesBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureProductTypesIsMutable(); + productTypes_.add(value); + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + + private com.google.shopping.type.Price salePrice_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + salePriceBuilder_; + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + * + * @return Whether the salePrice field is set. + */ + public boolean hasSalePrice() { + return ((bitField1_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + * + * @return The salePrice. + */ + public com.google.shopping.type.Price getSalePrice() { + if (salePriceBuilder_ == null) { + return salePrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : salePrice_; + } else { + return salePriceBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + public Builder setSalePrice(com.google.shopping.type.Price value) { + if (salePriceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + salePrice_ = value; + } else { + salePriceBuilder_.setMessage(value); + } + bitField1_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + public Builder setSalePrice(com.google.shopping.type.Price.Builder builderForValue) { + if (salePriceBuilder_ == null) { + salePrice_ = builderForValue.build(); + } else { + salePriceBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + public Builder mergeSalePrice(com.google.shopping.type.Price value) { + if (salePriceBuilder_ == null) { + if (((bitField1_ & 0x00000001) != 0) + && salePrice_ != null + && salePrice_ != com.google.shopping.type.Price.getDefaultInstance()) { + getSalePriceBuilder().mergeFrom(value); + } else { + salePrice_ = value; + } + } else { + salePriceBuilder_.mergeFrom(value); + } + if (salePrice_ != null) { + bitField1_ |= 0x00000001; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + public Builder clearSalePrice() { + bitField1_ = (bitField1_ & ~0x00000001); + salePrice_ = null; + if (salePriceBuilder_ != null) { + salePriceBuilder_.dispose(); + salePriceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + public com.google.shopping.type.Price.Builder getSalePriceBuilder() { + bitField1_ |= 0x00000001; + onChanged(); + return internalGetSalePriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + public com.google.shopping.type.PriceOrBuilder getSalePriceOrBuilder() { + if (salePriceBuilder_ != null) { + return salePriceBuilder_.getMessageOrBuilder(); + } else { + return salePrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : salePrice_; + } + } + + /** + * + * + *
+     * Advertised sale price of the item.
+     * 
+ * + * .google.shopping.type.Price sale_price = 36; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetSalePriceFieldBuilder() { + if (salePriceBuilder_ == null) { + salePriceBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getSalePrice(), getParentForChildren(), isClean()); + salePrice_ = null; + } + return salePriceBuilder_; + } + + private com.google.type.Interval salePriceEffectiveDate_; + private com.google.protobuf.SingleFieldBuilder< + com.google.type.Interval, + com.google.type.Interval.Builder, + com.google.type.IntervalOrBuilder> + salePriceEffectiveDateBuilder_; + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + * + * @return Whether the salePriceEffectiveDate field is set. + */ + public boolean hasSalePriceEffectiveDate() { + return ((bitField1_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + * + * @return The salePriceEffectiveDate. + */ + public com.google.type.Interval getSalePriceEffectiveDate() { + if (salePriceEffectiveDateBuilder_ == null) { + return salePriceEffectiveDate_ == null + ? com.google.type.Interval.getDefaultInstance() + : salePriceEffectiveDate_; + } else { + return salePriceEffectiveDateBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + public Builder setSalePriceEffectiveDate(com.google.type.Interval value) { + if (salePriceEffectiveDateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + salePriceEffectiveDate_ = value; + } else { + salePriceEffectiveDateBuilder_.setMessage(value); + } + bitField1_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + public Builder setSalePriceEffectiveDate(com.google.type.Interval.Builder builderForValue) { + if (salePriceEffectiveDateBuilder_ == null) { + salePriceEffectiveDate_ = builderForValue.build(); + } else { + salePriceEffectiveDateBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + public Builder mergeSalePriceEffectiveDate(com.google.type.Interval value) { + if (salePriceEffectiveDateBuilder_ == null) { + if (((bitField1_ & 0x00000002) != 0) + && salePriceEffectiveDate_ != null + && salePriceEffectiveDate_ != com.google.type.Interval.getDefaultInstance()) { + getSalePriceEffectiveDateBuilder().mergeFrom(value); + } else { + salePriceEffectiveDate_ = value; + } + } else { + salePriceEffectiveDateBuilder_.mergeFrom(value); + } + if (salePriceEffectiveDate_ != null) { + bitField1_ |= 0x00000002; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + public Builder clearSalePriceEffectiveDate() { + bitField1_ = (bitField1_ & ~0x00000002); + salePriceEffectiveDate_ = null; + if (salePriceEffectiveDateBuilder_ != null) { + salePriceEffectiveDateBuilder_.dispose(); + salePriceEffectiveDateBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + public com.google.type.Interval.Builder getSalePriceEffectiveDateBuilder() { + bitField1_ |= 0x00000002; + onChanged(); + return internalGetSalePriceEffectiveDateFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + public com.google.type.IntervalOrBuilder getSalePriceEffectiveDateOrBuilder() { + if (salePriceEffectiveDateBuilder_ != null) { + return salePriceEffectiveDateBuilder_.getMessageOrBuilder(); + } else { + return salePriceEffectiveDate_ == null + ? com.google.type.Interval.getDefaultInstance() + : salePriceEffectiveDate_; + } + } + + /** + * + * + *
+     * Date range during which the item is on sale, see [product data
+     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * 
+ * + * .google.type.Interval sale_price_effective_date = 37; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.type.Interval, + com.google.type.Interval.Builder, + com.google.type.IntervalOrBuilder> + internalGetSalePriceEffectiveDateFieldBuilder() { + if (salePriceEffectiveDateBuilder_ == null) { + salePriceEffectiveDateBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.type.Interval, + com.google.type.Interval.Builder, + com.google.type.IntervalOrBuilder>( + getSalePriceEffectiveDate(), getParentForChildren(), isClean()); + salePriceEffectiveDate_ = null; + } + return salePriceEffectiveDateBuilder_; + } + + private long sellOnGoogleQuantity_; + + /** + * + * + *
+     * The quantity of the product that is available for selling on Google.
+     * Supported only for online products.
+     * 
+ * + * optional int64 sell_on_google_quantity = 38; + * + * @return Whether the sellOnGoogleQuantity field is set. + */ + @java.lang.Override + public boolean hasSellOnGoogleQuantity() { + return ((bitField1_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * The quantity of the product that is available for selling on Google.
+     * Supported only for online products.
+     * 
+ * + * optional int64 sell_on_google_quantity = 38; + * + * @return The sellOnGoogleQuantity. + */ + @java.lang.Override + public long getSellOnGoogleQuantity() { + return sellOnGoogleQuantity_; + } + + /** + * + * + *
+     * The quantity of the product that is available for selling on Google.
+     * Supported only for online products.
+     * 
+ * + * optional int64 sell_on_google_quantity = 38; + * + * @param value The sellOnGoogleQuantity to set. + * @return This builder for chaining. + */ + public Builder setSellOnGoogleQuantity(long value) { + + sellOnGoogleQuantity_ = value; + bitField1_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * The quantity of the product that is available for selling on Google.
+     * Supported only for online products.
+     * 
+ * + * optional int64 sell_on_google_quantity = 38; + * + * @return This builder for chaining. + */ + public Builder clearSellOnGoogleQuantity() { + bitField1_ = (bitField1_ & ~0x00000004); + sellOnGoogleQuantity_ = 0L; + onChanged(); + return this; + } + + private com.google.shopping.merchant.products.v1.ProductDimension productHeight_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> + productHeightBuilder_; + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * + * @return Whether the productHeight field is set. + */ + public boolean hasProductHeight() { + return ((bitField1_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * + * @return The productHeight. + */ + public com.google.shopping.merchant.products.v1.ProductDimension getProductHeight() { + if (productHeightBuilder_ == null) { + return productHeight_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productHeight_; + } else { + return productHeightBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + public Builder setProductHeight( + com.google.shopping.merchant.products.v1.ProductDimension value) { + if (productHeightBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + productHeight_ = value; + } else { + productHeightBuilder_.setMessage(value); + } + bitField1_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + public Builder setProductHeight( + com.google.shopping.merchant.products.v1.ProductDimension.Builder builderForValue) { + if (productHeightBuilder_ == null) { + productHeight_ = builderForValue.build(); + } else { + productHeightBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + public Builder mergeProductHeight( + com.google.shopping.merchant.products.v1.ProductDimension value) { + if (productHeightBuilder_ == null) { + if (((bitField1_ & 0x00000008) != 0) + && productHeight_ != null + && productHeight_ + != com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance()) { + getProductHeightBuilder().mergeFrom(value); + } else { + productHeight_ = value; + } + } else { + productHeightBuilder_.mergeFrom(value); + } + if (productHeight_ != null) { + bitField1_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + public Builder clearProductHeight() { + bitField1_ = (bitField1_ & ~0x00000008); + productHeight_ = null; + if (productHeightBuilder_ != null) { + productHeightBuilder_.dispose(); + productHeightBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + public com.google.shopping.merchant.products.v1.ProductDimension.Builder + getProductHeightBuilder() { + bitField1_ |= 0x00000008; + onChanged(); + return internalGetProductHeightFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder + getProductHeightOrBuilder() { + if (productHeightBuilder_ != null) { + return productHeightBuilder_.getMessageOrBuilder(); + } else { + return productHeight_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productHeight_; + } + } + + /** + * + * + *
+     * The height of the product in the units provided. The value must be
+     * between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> + internalGetProductHeightFieldBuilder() { + if (productHeightBuilder_ == null) { + productHeightBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder>( + getProductHeight(), getParentForChildren(), isClean()); + productHeight_ = null; + } + return productHeightBuilder_; + } + + private com.google.shopping.merchant.products.v1.ProductDimension productLength_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> + productLengthBuilder_; + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * + * @return Whether the productLength field is set. + */ + public boolean hasProductLength() { + return ((bitField1_ & 0x00000010) != 0); + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * + * @return The productLength. + */ + public com.google.shopping.merchant.products.v1.ProductDimension getProductLength() { + if (productLengthBuilder_ == null) { + return productLength_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productLength_; + } else { + return productLengthBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + public Builder setProductLength( + com.google.shopping.merchant.products.v1.ProductDimension value) { + if (productLengthBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + productLength_ = value; + } else { + productLengthBuilder_.setMessage(value); + } + bitField1_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + public Builder setProductLength( + com.google.shopping.merchant.products.v1.ProductDimension.Builder builderForValue) { + if (productLengthBuilder_ == null) { + productLength_ = builderForValue.build(); + } else { + productLengthBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + public Builder mergeProductLength( + com.google.shopping.merchant.products.v1.ProductDimension value) { + if (productLengthBuilder_ == null) { + if (((bitField1_ & 0x00000010) != 0) + && productLength_ != null + && productLength_ + != com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance()) { + getProductLengthBuilder().mergeFrom(value); + } else { + productLength_ = value; + } + } else { + productLengthBuilder_.mergeFrom(value); + } + if (productLength_ != null) { + bitField1_ |= 0x00000010; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + public Builder clearProductLength() { + bitField1_ = (bitField1_ & ~0x00000010); + productLength_ = null; + if (productLengthBuilder_ != null) { + productLengthBuilder_.dispose(); + productLengthBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + public com.google.shopping.merchant.products.v1.ProductDimension.Builder + getProductLengthBuilder() { + bitField1_ |= 0x00000010; + onChanged(); + return internalGetProductLengthFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder + getProductLengthOrBuilder() { + if (productLengthBuilder_ != null) { + return productLengthBuilder_.getMessageOrBuilder(); + } else { + return productLength_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productLength_; + } + } + + /** + * + * + *
+     * The length of the product in the units provided. The value must be
+     * between 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> + internalGetProductLengthFieldBuilder() { + if (productLengthBuilder_ == null) { + productLengthBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder>( + getProductLength(), getParentForChildren(), isClean()); + productLength_ = null; + } + return productLengthBuilder_; + } + + private com.google.shopping.merchant.products.v1.ProductDimension productWidth_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> + productWidthBuilder_; + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * + * @return Whether the productWidth field is set. + */ + public boolean hasProductWidth() { + return ((bitField1_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * + * @return The productWidth. + */ + public com.google.shopping.merchant.products.v1.ProductDimension getProductWidth() { + if (productWidthBuilder_ == null) { + return productWidth_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productWidth_; + } else { + return productWidthBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + public Builder setProductWidth( + com.google.shopping.merchant.products.v1.ProductDimension value) { + if (productWidthBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + productWidth_ = value; + } else { + productWidthBuilder_.setMessage(value); + } + bitField1_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + public Builder setProductWidth( + com.google.shopping.merchant.products.v1.ProductDimension.Builder builderForValue) { + if (productWidthBuilder_ == null) { + productWidth_ = builderForValue.build(); + } else { + productWidthBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + public Builder mergeProductWidth( + com.google.shopping.merchant.products.v1.ProductDimension value) { + if (productWidthBuilder_ == null) { + if (((bitField1_ & 0x00000020) != 0) + && productWidth_ != null + && productWidth_ + != com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance()) { + getProductWidthBuilder().mergeFrom(value); + } else { + productWidth_ = value; + } + } else { + productWidthBuilder_.mergeFrom(value); + } + if (productWidth_ != null) { + bitField1_ |= 0x00000020; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + public Builder clearProductWidth() { + bitField1_ = (bitField1_ & ~0x00000020); + productWidth_ = null; + if (productWidthBuilder_ != null) { + productWidthBuilder_.dispose(); + productWidthBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + public com.google.shopping.merchant.products.v1.ProductDimension.Builder + getProductWidthBuilder() { + bitField1_ |= 0x00000020; + onChanged(); + return internalGetProductWidthFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder + getProductWidthOrBuilder() { + if (productWidthBuilder_ != null) { + return productWidthBuilder_.getMessageOrBuilder(); + } else { + return productWidth_ == null + ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() + : productWidth_; + } + } + + /** + * + * + *
+     * The width of the product in the units provided. The value must be between
+     * 0 (exclusive) and 3000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> + internalGetProductWidthFieldBuilder() { + if (productWidthBuilder_ == null) { + productWidthBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductDimension, + com.google.shopping.merchant.products.v1.ProductDimension.Builder, + com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder>( + getProductWidth(), getParentForChildren(), isClean()); + productWidth_ = null; + } + return productWidthBuilder_; + } + + private com.google.shopping.merchant.products.v1.ProductWeight productWeight_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductWeight, + com.google.shopping.merchant.products.v1.ProductWeight.Builder, + com.google.shopping.merchant.products.v1.ProductWeightOrBuilder> + productWeightBuilder_; + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * @return Whether the productWeight field is set. + */ + public boolean hasProductWeight() { + return ((bitField1_ & 0x00000040) != 0); + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * @return The productWeight. + */ + public com.google.shopping.merchant.products.v1.ProductWeight getProductWeight() { + if (productWeightBuilder_ == null) { + return productWeight_ == null + ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() + : productWeight_; + } else { + return productWeightBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + public Builder setProductWeight(com.google.shopping.merchant.products.v1.ProductWeight value) { + if (productWeightBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + productWeight_ = value; + } else { + productWeightBuilder_.setMessage(value); + } + bitField1_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + public Builder setProductWeight( + com.google.shopping.merchant.products.v1.ProductWeight.Builder builderForValue) { + if (productWeightBuilder_ == null) { + productWeight_ = builderForValue.build(); + } else { + productWeightBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + public Builder mergeProductWeight( + com.google.shopping.merchant.products.v1.ProductWeight value) { + if (productWeightBuilder_ == null) { + if (((bitField1_ & 0x00000040) != 0) + && productWeight_ != null + && productWeight_ + != com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance()) { + getProductWeightBuilder().mergeFrom(value); + } else { + productWeight_ = value; + } + } else { + productWeightBuilder_.mergeFrom(value); + } + if (productWeight_ != null) { + bitField1_ |= 0x00000040; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + public Builder clearProductWeight() { + bitField1_ = (bitField1_ & ~0x00000040); + productWeight_ = null; + if (productWeightBuilder_ != null) { + productWeightBuilder_.dispose(); + productWeightBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + public com.google.shopping.merchant.products.v1.ProductWeight.Builder + getProductWeightBuilder() { + bitField1_ |= 0x00000040; + onChanged(); + return internalGetProductWeightFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + public com.google.shopping.merchant.products.v1.ProductWeightOrBuilder + getProductWeightOrBuilder() { + if (productWeightBuilder_ != null) { + return productWeightBuilder_.getMessageOrBuilder(); + } else { + return productWeight_ == null + ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() + : productWeight_; + } + } + + /** + * + * + *
+     * The weight of the product in the units provided. The value must be
+     * between 0 (exclusive) and 2000 (inclusive).
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductWeight, + com.google.shopping.merchant.products.v1.ProductWeight.Builder, + com.google.shopping.merchant.products.v1.ProductWeightOrBuilder> + internalGetProductWeightFieldBuilder() { + if (productWeightBuilder_ == null) { + productWeightBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductWeight, + com.google.shopping.merchant.products.v1.ProductWeight.Builder, + com.google.shopping.merchant.products.v1.ProductWeightOrBuilder>( + getProductWeight(), getParentForChildren(), isClean()); + productWeight_ = null; + } + return productWeightBuilder_; + } + + private java.util.List shipping_ = + java.util.Collections.emptyList(); + + private void ensureShippingIsMutable() { + if (!((bitField1_ & 0x00000080) != 0)) { + shipping_ = + new java.util.ArrayList(shipping_); + bitField1_ |= 0x00000080; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.Shipping, + com.google.shopping.merchant.products.v1.Shipping.Builder, + com.google.shopping.merchant.products.v1.ShippingOrBuilder> + shippingBuilder_; + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public java.util.List getShippingList() { + if (shippingBuilder_ == null) { + return java.util.Collections.unmodifiableList(shipping_); + } else { + return shippingBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public int getShippingCount() { + if (shippingBuilder_ == null) { + return shipping_.size(); + } else { + return shippingBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public com.google.shopping.merchant.products.v1.Shipping getShipping(int index) { + if (shippingBuilder_ == null) { + return shipping_.get(index); + } else { + return shippingBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder setShipping(int index, com.google.shopping.merchant.products.v1.Shipping value) { + if (shippingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingIsMutable(); + shipping_.set(index, value); + onChanged(); + } else { + shippingBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder setShipping( + int index, com.google.shopping.merchant.products.v1.Shipping.Builder builderForValue) { + if (shippingBuilder_ == null) { + ensureShippingIsMutable(); + shipping_.set(index, builderForValue.build()); + onChanged(); + } else { + shippingBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder addShipping(com.google.shopping.merchant.products.v1.Shipping value) { + if (shippingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingIsMutable(); + shipping_.add(value); + onChanged(); + } else { + shippingBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder addShipping(int index, com.google.shopping.merchant.products.v1.Shipping value) { + if (shippingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingIsMutable(); + shipping_.add(index, value); + onChanged(); + } else { + shippingBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder addShipping( + com.google.shopping.merchant.products.v1.Shipping.Builder builderForValue) { + if (shippingBuilder_ == null) { + ensureShippingIsMutable(); + shipping_.add(builderForValue.build()); + onChanged(); + } else { + shippingBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder addShipping( + int index, com.google.shopping.merchant.products.v1.Shipping.Builder builderForValue) { + if (shippingBuilder_ == null) { + ensureShippingIsMutable(); + shipping_.add(index, builderForValue.build()); + onChanged(); + } else { + shippingBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder addAllShipping( + java.lang.Iterable values) { + if (shippingBuilder_ == null) { + ensureShippingIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, shipping_); + onChanged(); + } else { + shippingBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder clearShipping() { + if (shippingBuilder_ == null) { + shipping_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00000080); + onChanged(); + } else { + shippingBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public Builder removeShipping(int index) { + if (shippingBuilder_ == null) { + ensureShippingIsMutable(); + shipping_.remove(index); + onChanged(); + } else { + shippingBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public com.google.shopping.merchant.products.v1.Shipping.Builder getShippingBuilder(int index) { + return internalGetShippingFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public com.google.shopping.merchant.products.v1.ShippingOrBuilder getShippingOrBuilder( + int index) { + if (shippingBuilder_ == null) { + return shipping_.get(index); + } else { + return shippingBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public java.util.List + getShippingOrBuilderList() { + if (shippingBuilder_ != null) { + return shippingBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(shipping_); + } + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public com.google.shopping.merchant.products.v1.Shipping.Builder addShippingBuilder() { + return internalGetShippingFieldBuilder() + .addBuilder(com.google.shopping.merchant.products.v1.Shipping.getDefaultInstance()); + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public com.google.shopping.merchant.products.v1.Shipping.Builder addShippingBuilder(int index) { + return internalGetShippingFieldBuilder() + .addBuilder( + index, com.google.shopping.merchant.products.v1.Shipping.getDefaultInstance()); + } + + /** + * + * + *
+     * Shipping rules.
+     * 
+ * + * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + */ + public java.util.List + getShippingBuilderList() { + return internalGetShippingFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.Shipping, + com.google.shopping.merchant.products.v1.Shipping.Builder, + com.google.shopping.merchant.products.v1.ShippingOrBuilder> + internalGetShippingFieldBuilder() { + if (shippingBuilder_ == null) { + shippingBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.Shipping, + com.google.shopping.merchant.products.v1.Shipping.Builder, + com.google.shopping.merchant.products.v1.ShippingOrBuilder>( + shipping_, ((bitField1_ & 0x00000080) != 0), getParentForChildren(), isClean()); + shipping_ = null; + } + return shippingBuilder_; + } + + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping> + carrierShipping_ = java.util.Collections.emptyList(); + + private void ensureCarrierShippingIsMutable() { + if (!((bitField1_ & 0x00000100) != 0)) { + carrierShipping_ = + new java.util.ArrayList< + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping>( + carrierShipping_); + bitField1_ |= 0x00000100; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> + carrierShippingBuilder_; + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping> + getCarrierShippingList() { + if (carrierShippingBuilder_ == null) { + return java.util.Collections.unmodifiableList(carrierShipping_); + } else { + return carrierShippingBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public int getCarrierShippingCount() { + if (carrierShippingBuilder_ == null) { + return carrierShipping_.size(); + } else { + return carrierShippingBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + getCarrierShipping(int index) { + if (carrierShippingBuilder_ == null) { + return carrierShipping_.get(index); + } else { + return carrierShippingBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder setCarrierShipping( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping value) { + if (carrierShippingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCarrierShippingIsMutable(); + carrierShipping_.set(index, value); + onChanged(); + } else { + carrierShippingBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder setCarrierShipping( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + builderForValue) { + if (carrierShippingBuilder_ == null) { + ensureCarrierShippingIsMutable(); + carrierShipping_.set(index, builderForValue.build()); + onChanged(); + } else { + carrierShippingBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder addCarrierShipping( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping value) { + if (carrierShippingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCarrierShippingIsMutable(); + carrierShipping_.add(value); + onChanged(); + } else { + carrierShippingBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder addCarrierShipping( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping value) { + if (carrierShippingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCarrierShippingIsMutable(); + carrierShipping_.add(index, value); + onChanged(); + } else { + carrierShippingBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder addCarrierShipping( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + builderForValue) { + if (carrierShippingBuilder_ == null) { + ensureCarrierShippingIsMutable(); + carrierShipping_.add(builderForValue.build()); + onChanged(); + } else { + carrierShippingBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder addCarrierShipping( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + builderForValue) { + if (carrierShippingBuilder_ == null) { + ensureCarrierShippingIsMutable(); + carrierShipping_.add(index, builderForValue.build()); + onChanged(); + } else { + carrierShippingBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder addAllCarrierShipping( + java.lang.Iterable< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping> + values) { + if (carrierShippingBuilder_ == null) { + ensureCarrierShippingIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, carrierShipping_); + onChanged(); + } else { + carrierShippingBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder clearCarrierShipping() { + if (carrierShippingBuilder_ == null) { + carrierShipping_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00000100); + onChanged(); + } else { + carrierShippingBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public Builder removeCarrierShipping(int index) { + if (carrierShippingBuilder_ == null) { + ensureCarrierShippingIsMutable(); + carrierShipping_.remove(index); + onChanged(); + } else { + carrierShippingBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + getCarrierShippingBuilder(int index) { + return internalGetCarrierShippingFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder + getCarrierShippingOrBuilder(int index) { + if (carrierShippingBuilder_ == null) { + return carrierShipping_.get(index); + } else { + return carrierShippingBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> + getCarrierShippingOrBuilderList() { + if (carrierShippingBuilder_ != null) { + return carrierShippingBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(carrierShipping_); + } + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + addCarrierShippingBuilder() { + return internalGetCarrierShippingFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + .getDefaultInstance()); + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder + addCarrierShippingBuilder(int index) { + return internalGetCarrierShippingFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping + .getDefaultInstance()); + } + + /** + * + * + *
+     * Rules for carrier-based shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; + * + */ + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder> + getCarrierShippingBuilderList() { + return internalGetCarrierShippingFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> + internalGetCarrierShippingFieldBuilder() { + if (carrierShippingBuilder_ == null) { + carrierShippingBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping, + com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .CarrierShippingOrBuilder>( + carrierShipping_, + ((bitField1_ & 0x00000100) != 0), + getParentForChildren(), + isClean()); + carrierShipping_ = null; + } + return carrierShippingBuilder_; + } + + private java.util.List + freeShippingThreshold_ = java.util.Collections.emptyList(); + + private void ensureFreeShippingThresholdIsMutable() { + if (!((bitField1_ & 0x00000200) != 0)) { + freeShippingThreshold_ = + new java.util.ArrayList( + freeShippingThreshold_); + bitField1_ |= 0x00000200; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.FreeShippingThreshold, + com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder, + com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> + freeShippingThresholdBuilder_; + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public java.util.List + getFreeShippingThresholdList() { + if (freeShippingThresholdBuilder_ == null) { + return java.util.Collections.unmodifiableList(freeShippingThreshold_); + } else { + return freeShippingThresholdBuilder_.getMessageList(); + } + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public int getFreeShippingThresholdCount() { + if (freeShippingThresholdBuilder_ == null) { + return freeShippingThreshold_.size(); + } else { + return freeShippingThresholdBuilder_.getCount(); + } + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public com.google.shopping.merchant.products.v1.FreeShippingThreshold getFreeShippingThreshold( + int index) { + if (freeShippingThresholdBuilder_ == null) { + return freeShippingThreshold_.get(index); + } else { + return freeShippingThresholdBuilder_.getMessage(index); + } + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder setFreeShippingThreshold( + int index, com.google.shopping.merchant.products.v1.FreeShippingThreshold value) { + if (freeShippingThresholdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.set(index, value); onChanged(); - } // finally + } else { + freeShippingThresholdBuilder_.setMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder setFreeShippingThreshold( + int index, + com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder builderForValue) { + if (freeShippingThresholdBuilder_ == null) { + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.set(index, builderForValue.build()); + onChanged(); + } else { + freeShippingThresholdBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder addFreeShippingThreshold( + com.google.shopping.merchant.products.v1.FreeShippingThreshold value) { + if (freeShippingThresholdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.add(value); + onChanged(); + } else { + freeShippingThresholdBuilder_.addMessage(value); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder addFreeShippingThreshold( + int index, com.google.shopping.merchant.products.v1.FreeShippingThreshold value) { + if (freeShippingThresholdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.add(index, value); + onChanged(); + } else { + freeShippingThresholdBuilder_.addMessage(index, value); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder addFreeShippingThreshold( + com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder builderForValue) { + if (freeShippingThresholdBuilder_ == null) { + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.add(builderForValue.build()); + onChanged(); + } else { + freeShippingThresholdBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder addFreeShippingThreshold( + int index, + com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder builderForValue) { + if (freeShippingThresholdBuilder_ == null) { + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.add(index, builderForValue.build()); + onChanged(); + } else { + freeShippingThresholdBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder addAllFreeShippingThreshold( + java.lang.Iterable + values) { + if (freeShippingThresholdBuilder_ == null) { + ensureFreeShippingThresholdIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, freeShippingThreshold_); + onChanged(); + } else { + freeShippingThresholdBuilder_.addAllMessages(values); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder clearFreeShippingThreshold() { + if (freeShippingThresholdBuilder_ == null) { + freeShippingThreshold_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00000200); + onChanged(); + } else { + freeShippingThresholdBuilder_.clear(); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public Builder removeFreeShippingThreshold(int index) { + if (freeShippingThresholdBuilder_ == null) { + ensureFreeShippingThresholdIsMutable(); + freeShippingThreshold_.remove(index); + onChanged(); + } else { + freeShippingThresholdBuilder_.remove(index); + } + return this; + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder + getFreeShippingThresholdBuilder(int index) { + return internalGetFreeShippingThresholdFieldBuilder().getBuilder(index); + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder + getFreeShippingThresholdOrBuilder(int index) { + if (freeShippingThresholdBuilder_ == null) { + return freeShippingThreshold_.get(index); + } else { + return freeShippingThresholdBuilder_.getMessageOrBuilder(index); + } + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> + getFreeShippingThresholdOrBuilderList() { + if (freeShippingThresholdBuilder_ != null) { + return freeShippingThresholdBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(freeShippingThreshold_); + } + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder + addFreeShippingThresholdBuilder() { + return internalGetFreeShippingThresholdFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.FreeShippingThreshold.getDefaultInstance()); + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder + addFreeShippingThresholdBuilder(int index) { + return internalGetFreeShippingThresholdFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.FreeShippingThreshold.getDefaultInstance()); + } + + /** + * + * + *
+     * Conditions to be met for a product to have free shipping.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * + */ + public java.util.List + getFreeShippingThresholdBuilderList() { + return internalGetFreeShippingThresholdFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.FreeShippingThreshold, + com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder, + com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> + internalGetFreeShippingThresholdFieldBuilder() { + if (freeShippingThresholdBuilder_ == null) { + freeShippingThresholdBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.FreeShippingThreshold, + com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder, + com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder>( + freeShippingThreshold_, + ((bitField1_ & 0x00000200) != 0), + getParentForChildren(), + isClean()); + freeShippingThreshold_ = null; + } + return freeShippingThresholdBuilder_; + } + + private com.google.shopping.merchant.products.v1.ShippingWeight shippingWeight_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingWeight, + com.google.shopping.merchant.products.v1.ShippingWeight.Builder, + com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder> + shippingWeightBuilder_; + + /** + * + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * + * @return Whether the shippingWeight field is set. + */ + public boolean hasShippingWeight() { + return ((bitField1_ & 0x00000400) != 0); + } + + /** + * + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * + * @return The shippingWeight. + */ + public com.google.shopping.merchant.products.v1.ShippingWeight getShippingWeight() { + if (shippingWeightBuilder_ == null) { + return shippingWeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() + : shippingWeight_; + } else { + return shippingWeightBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + */ + public Builder setShippingWeight( + com.google.shopping.merchant.products.v1.ShippingWeight value) { + if (shippingWeightBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + shippingWeight_ = value; + } else { + shippingWeightBuilder_.setMessage(value); + } + bitField1_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + */ + public Builder setShippingWeight( + com.google.shopping.merchant.products.v1.ShippingWeight.Builder builderForValue) { + if (shippingWeightBuilder_ == null) { + shippingWeight_ = builderForValue.build(); + } else { + shippingWeightBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000400; + onChanged(); + return this; + } + + /** + * + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + */ + public Builder mergeShippingWeight( + com.google.shopping.merchant.products.v1.ShippingWeight value) { + if (shippingWeightBuilder_ == null) { + if (((bitField1_ & 0x00000400) != 0) + && shippingWeight_ != null + && shippingWeight_ + != com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance()) { + getShippingWeightBuilder().mergeFrom(value); + } else { + shippingWeight_ = value; + } + } else { + shippingWeightBuilder_.mergeFrom(value); + } + if (shippingWeight_ != null) { + bitField1_ |= 0x00000400; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + */ + public Builder clearShippingWeight() { + bitField1_ = (bitField1_ & ~0x00000400); + shippingWeight_ = null; + if (shippingWeightBuilder_ != null) { + shippingWeightBuilder_.dispose(); + shippingWeightBuilder_ = null; + } + onChanged(); return this; } - private int bitField0_; - private int bitField1_; - private int bitField2_; - private int bitField3_; - - private boolean identifierExists_; + /** + * + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + */ + public com.google.shopping.merchant.products.v1.ShippingWeight.Builder + getShippingWeightBuilder() { + bitField1_ |= 0x00000400; + onChanged(); + return internalGetShippingWeightFieldBuilder().getBuilder(); + } /** * * *
-     * Set this value to false when the item does not have unique product
-     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
-     * Defaults to true, if not provided.
+     * Weight of the item for shipping.
      * 
* - * optional bool identifier_exists = 4; + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + */ + public com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder + getShippingWeightOrBuilder() { + if (shippingWeightBuilder_ != null) { + return shippingWeightBuilder_.getMessageOrBuilder(); + } else { + return shippingWeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() + : shippingWeight_; + } + } + + /** * - * @return Whether the identifierExists field is set. + * + *
+     * Weight of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; */ - @java.lang.Override - public boolean hasIdentifierExists() { - return ((bitField0_ & 0x00000001) != 0); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingWeight, + com.google.shopping.merchant.products.v1.ShippingWeight.Builder, + com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder> + internalGetShippingWeightFieldBuilder() { + if (shippingWeightBuilder_ == null) { + shippingWeightBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingWeight, + com.google.shopping.merchant.products.v1.ShippingWeight.Builder, + com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder>( + getShippingWeight(), getParentForChildren(), isClean()); + shippingWeight_ = null; + } + return shippingWeightBuilder_; } + private com.google.shopping.merchant.products.v1.ShippingDimension shippingLength_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> + shippingLengthBuilder_; + /** * * *
-     * Set this value to false when the item does not have unique product
-     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
-     * Defaults to true, if not provided.
+     * Length of the item for shipping.
      * 
* - * optional bool identifier_exists = 4; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; * - * @return The identifierExists. + * @return Whether the shippingLength field is set. */ - @java.lang.Override - public boolean getIdentifierExists() { - return identifierExists_; + public boolean hasShippingLength() { + return ((bitField1_ & 0x00000800) != 0); } /** * * *
-     * Set this value to false when the item does not have unique product
-     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
-     * Defaults to true, if not provided.
+     * Length of the item for shipping.
      * 
* - * optional bool identifier_exists = 4; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; * - * @param value The identifierExists to set. - * @return This builder for chaining. + * @return The shippingLength. */ - public Builder setIdentifierExists(boolean value) { + public com.google.shopping.merchant.products.v1.ShippingDimension getShippingLength() { + if (shippingLengthBuilder_ == null) { + return shippingLength_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingLength_; + } else { + return shippingLengthBuilder_.getMessage(); + } + } - identifierExists_ = value; - bitField0_ |= 0x00000001; + /** + * + * + *
+     * Length of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + */ + public Builder setShippingLength( + com.google.shopping.merchant.products.v1.ShippingDimension value) { + if (shippingLengthBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + shippingLength_ = value; + } else { + shippingLengthBuilder_.setMessage(value); + } + bitField1_ |= 0x00000800; onChanged(); return this; } @@ -17797,139 +46315,176 @@ public Builder setIdentifierExists(boolean value) { * * *
-     * Set this value to false when the item does not have unique product
-     * identifiers appropriate to its category, such as GTIN, MPN, and brand.
-     * Defaults to true, if not provided.
+     * Length of the item for shipping.
      * 
* - * optional bool identifier_exists = 4; - * - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; */ - public Builder clearIdentifierExists() { - bitField0_ = (bitField0_ & ~0x00000001); - identifierExists_ = false; + public Builder setShippingLength( + com.google.shopping.merchant.products.v1.ShippingDimension.Builder builderForValue) { + if (shippingLengthBuilder_ == null) { + shippingLength_ = builderForValue.build(); + } else { + shippingLengthBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000800; onChanged(); return this; } - private boolean isBundle_; - /** * * *
-     * Whether the item is a business-defined sub-API. A [sub-API]
-     * (https://support.google.com/merchants/answer/6324449) is a custom
-     * grouping of different products sold by a business for a single price.
+     * Length of the item for shipping.
      * 
* - * optional bool is_bundle = 5; - * - * @return Whether the isBundle field is set. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; */ - @java.lang.Override - public boolean hasIsBundle() { - return ((bitField0_ & 0x00000002) != 0); + public Builder mergeShippingLength( + com.google.shopping.merchant.products.v1.ShippingDimension value) { + if (shippingLengthBuilder_ == null) { + if (((bitField1_ & 0x00000800) != 0) + && shippingLength_ != null + && shippingLength_ + != com.google.shopping.merchant.products.v1.ShippingDimension + .getDefaultInstance()) { + getShippingLengthBuilder().mergeFrom(value); + } else { + shippingLength_ = value; + } + } else { + shippingLengthBuilder_.mergeFrom(value); + } + if (shippingLength_ != null) { + bitField1_ |= 0x00000800; + onChanged(); + } + return this; } /** * * *
-     * Whether the item is a business-defined sub-API. A [sub-API]
-     * (https://support.google.com/merchants/answer/6324449) is a custom
-     * grouping of different products sold by a business for a single price.
+     * Length of the item for shipping.
      * 
* - * optional bool is_bundle = 5; - * - * @return The isBundle. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; */ - @java.lang.Override - public boolean getIsBundle() { - return isBundle_; + public Builder clearShippingLength() { + bitField1_ = (bitField1_ & ~0x00000800); + shippingLength_ = null; + if (shippingLengthBuilder_ != null) { + shippingLengthBuilder_.dispose(); + shippingLengthBuilder_ = null; + } + onChanged(); + return this; } /** * * *
-     * Whether the item is a business-defined sub-API. A [sub-API]
-     * (https://support.google.com/merchants/answer/6324449) is a custom
-     * grouping of different products sold by a business for a single price.
+     * Length of the item for shipping.
      * 
* - * optional bool is_bundle = 5; - * - * @param value The isBundle to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; */ - public Builder setIsBundle(boolean value) { - - isBundle_ = value; - bitField0_ |= 0x00000002; + public com.google.shopping.merchant.products.v1.ShippingDimension.Builder + getShippingLengthBuilder() { + bitField1_ |= 0x00000800; onChanged(); - return this; + return internalGetShippingLengthFieldBuilder().getBuilder(); } /** * * *
-     * Whether the item is a business-defined sub-API. A [sub-API]
-     * (https://support.google.com/merchants/answer/6324449) is a custom
-     * grouping of different products sold by a business for a single price.
+     * Length of the item for shipping.
      * 
* - * optional bool is_bundle = 5; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + */ + public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder + getShippingLengthOrBuilder() { + if (shippingLengthBuilder_ != null) { + return shippingLengthBuilder_.getMessageOrBuilder(); + } else { + return shippingLength_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingLength_; + } + } + + /** * - * @return This builder for chaining. + * + *
+     * Length of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; */ - public Builder clearIsBundle() { - bitField0_ = (bitField0_ & ~0x00000002); - isBundle_ = false; - onChanged(); - return this; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> + internalGetShippingLengthFieldBuilder() { + if (shippingLengthBuilder_ == null) { + shippingLengthBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder>( + getShippingLength(), getParentForChildren(), isClean()); + shippingLength_ = null; + } + return shippingLengthBuilder_; } - private java.lang.Object title_ = ""; + private com.google.shopping.merchant.products.v1.ShippingDimension shippingWidth_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> + shippingWidthBuilder_; /** * * *
-     * Title of the item.
+     * Width of the item for shipping.
      * 
* - * optional string title = 6; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; * - * @return Whether the title field is set. + * @return Whether the shippingWidth field is set. */ - public boolean hasTitle() { - return ((bitField0_ & 0x00000004) != 0); + public boolean hasShippingWidth() { + return ((bitField1_ & 0x00001000) != 0); } /** * * *
-     * Title of the item.
+     * Width of the item for shipping.
      * 
* - * optional string title = 6; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; * - * @return The title. + * @return The shippingWidth. */ - 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; + public com.google.shopping.merchant.products.v1.ShippingDimension getShippingWidth() { + if (shippingWidthBuilder_ == null) { + return shippingWidth_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingWidth_; } else { - return (java.lang.String) ref; + return shippingWidthBuilder_.getMessage(); } } @@ -17937,43 +46492,43 @@ public java.lang.String getTitle() { * * *
-     * Title of the item.
+     * Width of the item for shipping.
      * 
* - * optional string title = 6; - * - * @return The bytes for title. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; */ - 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; + public Builder setShippingWidth( + com.google.shopping.merchant.products.v1.ShippingDimension value) { + if (shippingWidthBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + shippingWidth_ = value; } else { - return (com.google.protobuf.ByteString) ref; + shippingWidthBuilder_.setMessage(value); } + bitField1_ |= 0x00001000; + onChanged(); + return this; } /** * * *
-     * Title of the item.
+     * Width of the item for shipping.
      * 
* - * optional string title = 6; - * - * @param value The title to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; */ - public Builder setTitle(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setShippingWidth( + com.google.shopping.merchant.products.v1.ShippingDimension.Builder builderForValue) { + if (shippingWidthBuilder_ == null) { + shippingWidth_ = builderForValue.build(); + } else { + shippingWidthBuilder_.setMessage(builderForValue.build()); } - title_ = value; - bitField0_ |= 0x00000004; + bitField1_ |= 0x00001000; onChanged(); return this; } @@ -17982,16 +46537,49 @@ public Builder setTitle(java.lang.String value) { * * *
-     * Title of the item.
+     * Width of the item for shipping.
      * 
* - * optional string title = 6; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + */ + public Builder mergeShippingWidth( + com.google.shopping.merchant.products.v1.ShippingDimension value) { + if (shippingWidthBuilder_ == null) { + if (((bitField1_ & 0x00001000) != 0) + && shippingWidth_ != null + && shippingWidth_ + != com.google.shopping.merchant.products.v1.ShippingDimension + .getDefaultInstance()) { + getShippingWidthBuilder().mergeFrom(value); + } else { + shippingWidth_ = value; + } + } else { + shippingWidthBuilder_.mergeFrom(value); + } + if (shippingWidth_ != null) { + bitField1_ |= 0x00001000; + onChanged(); + } + return this; + } + + /** * - * @return This builder for chaining. + * + *
+     * Width of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; */ - public Builder clearTitle() { - title_ = getDefaultInstance().getTitle(); - bitField0_ = (bitField0_ & ~0x00000004); + public Builder clearShippingWidth() { + bitField1_ = (bitField1_ & ~0x00001000); + shippingWidth_ = null; + if (shippingWidthBuilder_ != null) { + shippingWidthBuilder_.dispose(); + shippingWidthBuilder_ = null; + } onChanged(); return this; } @@ -18000,62 +46588,104 @@ public Builder clearTitle() { * * *
-     * Title of the item.
+     * Width of the item for shipping.
      * 
* - * optional string title = 6; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + */ + public com.google.shopping.merchant.products.v1.ShippingDimension.Builder + getShippingWidthBuilder() { + bitField1_ |= 0x00001000; + onChanged(); + return internalGetShippingWidthFieldBuilder().getBuilder(); + } + + /** * - * @param value The bytes for title to set. - * @return This builder for chaining. + * + *
+     * Width of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; */ - public Builder setTitleBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder + getShippingWidthOrBuilder() { + if (shippingWidthBuilder_ != null) { + return shippingWidthBuilder_.getMessageOrBuilder(); + } else { + return shippingWidth_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingWidth_; } - checkByteStringIsUtf8(value); - title_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; } - private java.lang.Object description_ = ""; + /** + * + * + *
+     * Width of the item for shipping.
+     * 
+ * + * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> + internalGetShippingWidthFieldBuilder() { + if (shippingWidthBuilder_ == null) { + shippingWidthBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder>( + getShippingWidth(), getParentForChildren(), isClean()); + shippingWidth_ = null; + } + return shippingWidthBuilder_; + } + + private com.google.shopping.merchant.products.v1.ShippingDimension shippingHeight_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> + shippingHeightBuilder_; /** * * *
-     * Description of the item.
+     * Height of the item for shipping.
      * 
* - * optional string description = 7; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; * - * @return Whether the description field is set. + * @return Whether the shippingHeight field is set. */ - public boolean hasDescription() { - return ((bitField0_ & 0x00000008) != 0); + public boolean hasShippingHeight() { + return ((bitField1_ & 0x00002000) != 0); } /** * * *
-     * Description of the item.
+     * Height of the item for shipping.
      * 
* - * optional string description = 7; + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; * - * @return The description. + * @return The shippingHeight. */ - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - description_ = s; - return s; + public com.google.shopping.merchant.products.v1.ShippingDimension getShippingHeight() { + if (shippingHeightBuilder_ == null) { + return shippingHeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingHeight_; } else { - return (java.lang.String) ref; + return shippingHeightBuilder_.getMessage(); } } @@ -18063,43 +46693,43 @@ public java.lang.String getDescription() { * * *
-     * Description of the item.
+     * Height of the item for shipping.
      * 
* - * optional string description = 7; - * - * @return The bytes for description. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; */ - public com.google.protobuf.ByteString getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - description_ = b; - return b; + public Builder setShippingHeight( + com.google.shopping.merchant.products.v1.ShippingDimension value) { + if (shippingHeightBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + shippingHeight_ = value; } else { - return (com.google.protobuf.ByteString) ref; + shippingHeightBuilder_.setMessage(value); } + bitField1_ |= 0x00002000; + onChanged(); + return this; } /** * * *
-     * Description of the item.
+     * Height of the item for shipping.
      * 
* - * optional string description = 7; - * - * @param value The description to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; */ - public Builder setDescription(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setShippingHeight( + com.google.shopping.merchant.products.v1.ShippingDimension.Builder builderForValue) { + if (shippingHeightBuilder_ == null) { + shippingHeight_ = builderForValue.build(); + } else { + shippingHeightBuilder_.setMessage(builderForValue.build()); } - description_ = value; - bitField0_ |= 0x00000008; + bitField1_ |= 0x00002000; onChanged(); return this; } @@ -18108,17 +46738,30 @@ public Builder setDescription(java.lang.String value) { * * *
-     * Description of the item.
+     * Height of the item for shipping.
      * 
* - * optional string description = 7; - * - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; */ - public Builder clearDescription() { - description_ = getDefaultInstance().getDescription(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); + public Builder mergeShippingHeight( + com.google.shopping.merchant.products.v1.ShippingDimension value) { + if (shippingHeightBuilder_ == null) { + if (((bitField1_ & 0x00002000) != 0) + && shippingHeight_ != null + && shippingHeight_ + != com.google.shopping.merchant.products.v1.ShippingDimension + .getDefaultInstance()) { + getShippingHeightBuilder().mergeFrom(value); + } else { + shippingHeight_ = value; + } + } else { + shippingHeightBuilder_.mergeFrom(value); + } + if (shippingHeight_ != null) { + bitField1_ |= 0x00002000; + onChanged(); + } return this; } @@ -18126,62 +46769,55 @@ public Builder clearDescription() { * * *
-     * Description of the item.
+     * Height of the item for shipping.
      * 
* - * optional string description = 7; - * - * @param value The bytes for description to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; */ - public Builder setDescriptionBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder clearShippingHeight() { + bitField1_ = (bitField1_ & ~0x00002000); + shippingHeight_ = null; + if (shippingHeightBuilder_ != null) { + shippingHeightBuilder_.dispose(); + shippingHeightBuilder_ = null; } - checkByteStringIsUtf8(value); - description_ = value; - bitField0_ |= 0x00000008; onChanged(); return this; } - private java.lang.Object link_ = ""; - /** * * *
-     * URL directly linking to your item's page on your online store.
+     * Height of the item for shipping.
      * 
* - * optional string link = 8; - * - * @return Whether the link field is set. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; */ - public boolean hasLink() { - return ((bitField0_ & 0x00000010) != 0); + public com.google.shopping.merchant.products.v1.ShippingDimension.Builder + getShippingHeightBuilder() { + bitField1_ |= 0x00002000; + onChanged(); + return internalGetShippingHeightFieldBuilder().getBuilder(); } /** * * *
-     * URL directly linking to your item's page on your online store.
+     * Height of the item for shipping.
      * 
* - * optional string link = 8; - * - * @return The link. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; */ - public java.lang.String getLink() { - java.lang.Object ref = link_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - link_ = s; - return s; + public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder + getShippingHeightOrBuilder() { + if (shippingHeightBuilder_ != null) { + return shippingHeightBuilder_.getMessageOrBuilder(); } else { - return (java.lang.String) ref; + return shippingHeight_ == null + ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() + : shippingHeight_; } } @@ -18189,187 +46825,150 @@ public java.lang.String getLink() { * * *
-     * URL directly linking to your item's page on your online store.
+     * Height of the item for shipping.
      * 
* - * optional string link = 8; - * - * @return The bytes for link. + * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; */ - public com.google.protobuf.ByteString getLinkBytes() { - java.lang.Object ref = link_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - link_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> + internalGetShippingHeightFieldBuilder() { + if (shippingHeightBuilder_ == null) { + shippingHeightBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ShippingDimension, + com.google.shopping.merchant.products.v1.ShippingDimension.Builder, + com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder>( + getShippingHeight(), getParentForChildren(), isClean()); + shippingHeight_ = null; } + return shippingHeightBuilder_; } + private long maxHandlingTime_; + /** * * *
-     * URL directly linking to your item's page on your online store.
+     * Maximal product handling time (in business days).
      * 
* - * optional string link = 8; + * optional int64 max_handling_time = 44; * - * @param value The link to set. - * @return This builder for chaining. + * @return Whether the maxHandlingTime field is set. */ - public Builder setLink(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - link_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; + @java.lang.Override + public boolean hasMaxHandlingTime() { + return ((bitField1_ & 0x00004000) != 0); } /** * * *
-     * URL directly linking to your item's page on your online store.
+     * Maximal product handling time (in business days).
      * 
* - * optional string link = 8; + * optional int64 max_handling_time = 44; * - * @return This builder for chaining. + * @return The maxHandlingTime. */ - public Builder clearLink() { - link_ = getDefaultInstance().getLink(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; + @java.lang.Override + public long getMaxHandlingTime() { + return maxHandlingTime_; } /** * * *
-     * URL directly linking to your item's page on your online store.
+     * Maximal product handling time (in business days).
      * 
* - * optional string link = 8; + * optional int64 max_handling_time = 44; * - * @param value The bytes for link to set. + * @param value The maxHandlingTime to set. * @return This builder for chaining. */ - public Builder setLinkBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - link_ = value; - bitField0_ |= 0x00000010; + public Builder setMaxHandlingTime(long value) { + + maxHandlingTime_ = value; + bitField1_ |= 0x00004000; onChanged(); return this; } - private java.lang.Object mobileLink_ = ""; - /** * * *
-     * URL for the mobile-optimized version of your item's landing page.
+     * Maximal product handling time (in business days).
      * 
* - * optional string mobile_link = 9; + * optional int64 max_handling_time = 44; * - * @return Whether the mobileLink field is set. + * @return This builder for chaining. */ - public boolean hasMobileLink() { - return ((bitField0_ & 0x00000020) != 0); + public Builder clearMaxHandlingTime() { + bitField1_ = (bitField1_ & ~0x00004000); + maxHandlingTime_ = 0L; + onChanged(); + return this; } - /** - * - * - *
-     * URL for the mobile-optimized version of your item's landing page.
-     * 
- * - * optional string mobile_link = 9; - * - * @return The mobileLink. - */ - public java.lang.String getMobileLink() { - java.lang.Object ref = mobileLink_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - mobileLink_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + private long minHandlingTime_; /** * * *
-     * URL for the mobile-optimized version of your item's landing page.
+     * Minimal product handling time (in business days).
      * 
* - * optional string mobile_link = 9; + * optional int64 min_handling_time = 45; * - * @return The bytes for mobileLink. + * @return Whether the minHandlingTime field is set. */ - public com.google.protobuf.ByteString getMobileLinkBytes() { - java.lang.Object ref = mobileLink_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - mobileLink_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public boolean hasMinHandlingTime() { + return ((bitField1_ & 0x00008000) != 0); } /** * * *
-     * URL for the mobile-optimized version of your item's landing page.
+     * Minimal product handling time (in business days).
      * 
* - * optional string mobile_link = 9; + * optional int64 min_handling_time = 45; * - * @param value The mobileLink to set. - * @return This builder for chaining. + * @return The minHandlingTime. */ - public Builder setMobileLink(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - mobileLink_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; + @java.lang.Override + public long getMinHandlingTime() { + return minHandlingTime_; } /** * * *
-     * URL for the mobile-optimized version of your item's landing page.
+     * Minimal product handling time (in business days).
      * 
* - * optional string mobile_link = 9; + * optional int64 min_handling_time = 45; * + * @param value The minHandlingTime to set. * @return This builder for chaining. */ - public Builder clearMobileLink() { - mobileLink_ = getDefaultInstance().getMobileLink(); - bitField0_ = (bitField0_ & ~0x00000020); + public Builder setMinHandlingTime(long value) { + + minHandlingTime_ = value; + bitField1_ |= 0x00008000; onChanged(); return this; } @@ -18378,62 +46977,61 @@ public Builder clearMobileLink() { * * *
-     * URL for the mobile-optimized version of your item's landing page.
+     * Minimal product handling time (in business days).
      * 
* - * optional string mobile_link = 9; + * optional int64 min_handling_time = 45; * - * @param value The bytes for mobileLink to set. * @return This builder for chaining. */ - public Builder setMobileLinkBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - mobileLink_ = value; - bitField0_ |= 0x00000020; + public Builder clearMinHandlingTime() { + bitField1_ = (bitField1_ & ~0x00008000); + minHandlingTime_ = 0L; onChanged(); return this; } - private java.lang.Object canonicalLink_ = ""; + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + shippingHandlingBusinessDays_ = java.util.Collections.emptyList(); - /** - * - * - *
-     * URL for the canonical version of your item's landing page.
-     * 
- * - * optional string canonical_link = 10; - * - * @return Whether the canonicalLink field is set. - */ - public boolean hasCanonicalLink() { - return ((bitField0_ & 0x00000040) != 0); + private void ensureShippingHandlingBusinessDaysIsMutable() { + if (!((bitField1_ & 0x00010000) != 0)) { + shippingHandlingBusinessDays_ = + new java.util.ArrayList< + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig>(shippingHandlingBusinessDays_); + bitField1_ |= 0x00010000; + } } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + shippingHandlingBusinessDaysBuilder_; + /** * * *
-     * URL for the canonical version of your item's landing page.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string canonical_link = 10; - * - * @return The canonicalLink. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public java.lang.String getCanonicalLink() { - java.lang.Object ref = canonicalLink_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - canonicalLink_ = s; - return s; + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + getShippingHandlingBusinessDaysList() { + if (shippingHandlingBusinessDaysBuilder_ == null) { + return java.util.Collections.unmodifiableList(shippingHandlingBusinessDays_); } else { - return (java.lang.String) ref; + return shippingHandlingBusinessDaysBuilder_.getMessageList(); } } @@ -18441,22 +47039,19 @@ public java.lang.String getCanonicalLink() { * * *
-     * URL for the canonical version of your item's landing page.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string canonical_link = 10; - * - * @return The bytes for canonicalLink. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public com.google.protobuf.ByteString getCanonicalLinkBytes() { - java.lang.Object ref = canonicalLink_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - canonicalLink_ = b; - return b; + public int getShippingHandlingBusinessDaysCount() { + if (shippingHandlingBusinessDaysBuilder_ == null) { + return shippingHandlingBusinessDays_.size(); } else { - return (com.google.protobuf.ByteString) ref; + return shippingHandlingBusinessDaysBuilder_.getCount(); } } @@ -18464,39 +47059,49 @@ public com.google.protobuf.ByteString getCanonicalLinkBytes() { * * *
-     * URL for the canonical version of your item's landing page.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string canonical_link = 10; - * - * @param value The canonicalLink to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder setCanonicalLink(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + getShippingHandlingBusinessDays(int index) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + return shippingHandlingBusinessDays_.get(index); + } else { + return shippingHandlingBusinessDaysBuilder_.getMessage(index); } - canonicalLink_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; } /** * * *
-     * URL for the canonical version of your item's landing page.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string canonical_link = 10; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder clearCanonicalLink() { - canonicalLink_ = getDefaultInstance().getCanonicalLink(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); + public Builder setShippingHandlingBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + value) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.set(index, value); + onChanged(); + } else { + shippingHandlingBusinessDaysBuilder_.setMessage(index, value); + } return this; } @@ -18504,107 +47109,109 @@ public Builder clearCanonicalLink() { * * *
-     * URL for the canonical version of your item's landing page.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string canonical_link = 10; - * - * @param value The bytes for canonicalLink to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder setCanonicalLinkBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder setShippingHandlingBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + builderForValue) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.set(index, builderForValue.build()); + onChanged(); + } else { + shippingHandlingBusinessDaysBuilder_.setMessage(index, builderForValue.build()); } - checkByteStringIsUtf8(value); - canonicalLink_ = value; - bitField0_ |= 0x00000040; - onChanged(); return this; } - private java.lang.Object imageLink_ = ""; - - /** - * - * - *
-     * URL of an image of the item.
-     * 
- * - * optional string image_link = 11; - * - * @return Whether the imageLink field is set. - */ - public boolean hasImageLink() { - return ((bitField0_ & 0x00000080) != 0); - } - /** * * *
-     * URL of an image of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string image_link = 11; - * - * @return The imageLink. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public java.lang.String getImageLink() { - java.lang.Object ref = imageLink_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - imageLink_ = s; - return s; + public Builder addShippingHandlingBusinessDays( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + value) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.add(value); + onChanged(); } else { - return (java.lang.String) ref; + shippingHandlingBusinessDaysBuilder_.addMessage(value); } + return this; } /** * * *
-     * URL of an image of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string image_link = 11; - * - * @return The bytes for imageLink. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public com.google.protobuf.ByteString getImageLinkBytes() { - java.lang.Object ref = imageLink_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - imageLink_ = b; - return b; + public Builder addShippingHandlingBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + value) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.add(index, value); + onChanged(); } else { - return (com.google.protobuf.ByteString) ref; + shippingHandlingBusinessDaysBuilder_.addMessage(index, value); } + return this; } /** * * *
-     * URL of an image of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string image_link = 11; - * - * @param value The imageLink to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder setImageLink(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder addShippingHandlingBusinessDays( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + builderForValue) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.add(builderForValue.build()); + onChanged(); + } else { + shippingHandlingBusinessDaysBuilder_.addMessage(builderForValue.build()); } - imageLink_ = value; - bitField0_ |= 0x00000080; - onChanged(); return this; } @@ -18612,17 +47219,26 @@ public Builder setImageLink(java.lang.String value) { * * *
-     * URL of an image of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string image_link = 11; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder clearImageLink() { - imageLink_ = getDefaultInstance().getImageLink(); - bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); + public Builder addShippingHandlingBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + builderForValue) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.add(index, builderForValue.build()); + onChanged(); + } else { + shippingHandlingBusinessDaysBuilder_.addMessage(index, builderForValue.build()); + } return this; } @@ -18630,258 +47246,289 @@ public Builder clearImageLink() { * * *
-     * URL of an image of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * optional string image_link = 11; - * - * @param value The bytes for imageLink to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder setImageLinkBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder addAllShippingHandlingBusinessDays( + java.lang.Iterable< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig> + values) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + ensureShippingHandlingBusinessDaysIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, shippingHandlingBusinessDays_); + onChanged(); + } else { + shippingHandlingBusinessDaysBuilder_.addAllMessages(values); } - checkByteStringIsUtf8(value); - imageLink_ = value; - bitField0_ |= 0x00000080; - onChanged(); return this; } - private com.google.protobuf.LazyStringArrayList additionalImageLinks_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensureAdditionalImageLinksIsMutable() { - if (!additionalImageLinks_.isModifiable()) { - additionalImageLinks_ = new com.google.protobuf.LazyStringArrayList(additionalImageLinks_); - } - bitField0_ |= 0x00000100; - } - /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @return A list containing the additionalImageLinks. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public com.google.protobuf.ProtocolStringList getAdditionalImageLinksList() { - additionalImageLinks_.makeImmutable(); - return additionalImageLinks_; + public Builder clearShippingHandlingBusinessDays() { + if (shippingHandlingBusinessDaysBuilder_ == null) { + shippingHandlingBusinessDays_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00010000); + onChanged(); + } else { + shippingHandlingBusinessDaysBuilder_.clear(); + } + return this; } /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @return The count of additionalImageLinks. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public int getAdditionalImageLinksCount() { - return additionalImageLinks_.size(); + public Builder removeShippingHandlingBusinessDays(int index) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + ensureShippingHandlingBusinessDaysIsMutable(); + shippingHandlingBusinessDays_.remove(index); + onChanged(); + } else { + shippingHandlingBusinessDaysBuilder_.remove(index); + } + return this; } /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @param index The index of the element to return. - * @return The additionalImageLinks at the given index. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public java.lang.String getAdditionalImageLinks(int index) { - return additionalImageLinks_.get(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + getShippingHandlingBusinessDaysBuilder(int index) { + return internalGetShippingHandlingBusinessDaysFieldBuilder().getBuilder(index); } /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @param index The index of the value to return. - * @return The bytes of the additionalImageLinks at the given index. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public com.google.protobuf.ByteString getAdditionalImageLinksBytes(int index) { - return additionalImageLinks_.getByteString(index); + public com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder + getShippingHandlingBusinessDaysOrBuilder(int index) { + if (shippingHandlingBusinessDaysBuilder_ == null) { + return shippingHandlingBusinessDays_.get(index); + } else { + return shippingHandlingBusinessDaysBuilder_.getMessageOrBuilder(index); + } } /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @param index The index to set the value at. - * @param value The additionalImageLinks to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder setAdditionalImageLinks(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + getShippingHandlingBusinessDaysOrBuilderList() { + if (shippingHandlingBusinessDaysBuilder_ != null) { + return shippingHandlingBusinessDaysBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(shippingHandlingBusinessDays_); } - ensureAdditionalImageLinksIsMutable(); - additionalImageLinks_.set(index, value); - bitField0_ |= 0x00000100; - onChanged(); - return this; } /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @param value The additionalImageLinks to add. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder addAdditionalImageLinks(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureAdditionalImageLinksIsMutable(); - additionalImageLinks_.add(value); - bitField0_ |= 0x00000100; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + addShippingHandlingBusinessDaysBuilder() { + return internalGetShippingHandlingBusinessDaysFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .getDefaultInstance()); } /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @param values The additionalImageLinks to add. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder addAllAdditionalImageLinks(java.lang.Iterable values) { - ensureAdditionalImageLinksIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, additionalImageLinks_); - bitField0_ |= 0x00000100; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + addShippingHandlingBusinessDaysBuilder(int index) { + return internalGetShippingHandlingBusinessDaysFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .getDefaultInstance()); } /** * * *
-     * Additional URLs of images of the item.
+     * The business days during which orders can be handled. If not provided,
+     * Monday to Friday business days will be assumed.
      * 
* - * repeated string additional_image_links = 12; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * */ - public Builder clearAdditionalImageLinks() { - additionalImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField0_ = (bitField0_ & ~0x00000100); - ; - onChanged(); - return this; + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder> + getShippingHandlingBusinessDaysBuilderList() { + return internalGetShippingHandlingBusinessDaysFieldBuilder().getBuilderList(); } - /** - * - * - *
-     * Additional URLs of images of the item.
-     * 
- * - * repeated string additional_image_links = 12; - * - * @param value The bytes of the additionalImageLinks to add. - * @return This builder for chaining. - */ - public Builder addAdditionalImageLinksBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + internalGetShippingHandlingBusinessDaysFieldBuilder() { + if (shippingHandlingBusinessDaysBuilder_ == null) { + shippingHandlingBusinessDaysBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder>( + shippingHandlingBusinessDays_, + ((bitField1_ & 0x00010000) != 0), + getParentForChildren(), + isClean()); + shippingHandlingBusinessDays_ = null; } - checkByteStringIsUtf8(value); - ensureAdditionalImageLinksIsMutable(); - additionalImageLinks_.add(value); - bitField0_ |= 0x00000100; - onChanged(); - return this; + return shippingHandlingBusinessDaysBuilder_; } - private com.google.protobuf.Timestamp expirationDate_; - private com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder> - expirationDateBuilder_; + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + shippingTransitBusinessDays_ = java.util.Collections.emptyList(); + + private void ensureShippingTransitBusinessDaysIsMutable() { + if (!((bitField1_ & 0x00020000) != 0)) { + shippingTransitBusinessDays_ = + new java.util.ArrayList< + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig>(shippingTransitBusinessDays_); + bitField1_ |= 0x00020000; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + shippingTransitBusinessDaysBuilder_; /** * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; - * - * @return Whether the expirationDate field is set. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public boolean hasExpirationDate() { - return ((bitField0_ & 0x00000200) != 0); + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> + getShippingTransitBusinessDaysList() { + if (shippingTransitBusinessDaysBuilder_ == null) { + return java.util.Collections.unmodifiableList(shippingTransitBusinessDays_); + } else { + return shippingTransitBusinessDaysBuilder_.getMessageList(); + } } /** * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; - * - * @return The expirationDate. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public com.google.protobuf.Timestamp getExpirationDate() { - if (expirationDateBuilder_ == null) { - return expirationDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : expirationDate_; + public int getShippingTransitBusinessDaysCount() { + if (shippingTransitBusinessDaysBuilder_ == null) { + return shippingTransitBusinessDays_.size(); } else { - return expirationDateBuilder_.getMessage(); + return shippingTransitBusinessDaysBuilder_.getCount(); } } @@ -18889,52 +47536,49 @@ public com.google.protobuf.Timestamp getExpirationDate() { * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder setExpirationDate(com.google.protobuf.Timestamp value) { - if (expirationDateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - expirationDate_ = value; + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + getShippingTransitBusinessDays(int index) { + if (shippingTransitBusinessDaysBuilder_ == null) { + return shippingTransitBusinessDays_.get(index); } else { - expirationDateBuilder_.setMessage(value); + return shippingTransitBusinessDaysBuilder_.getMessage(index); } - bitField0_ |= 0x00000200; - onChanged(); - return this; } /** * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder setExpirationDate(com.google.protobuf.Timestamp.Builder builderForValue) { - if (expirationDateBuilder_ == null) { - expirationDate_ = builderForValue.build(); + public Builder setShippingTransitBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + value) { + if (shippingTransitBusinessDaysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.set(index, value); + onChanged(); } else { - expirationDateBuilder_.setMessage(builderForValue.build()); + shippingTransitBusinessDaysBuilder_.setMessage(index, value); } - bitField0_ |= 0x00000200; - onChanged(); return this; } @@ -18942,31 +47586,25 @@ public Builder setExpirationDate(com.google.protobuf.Timestamp.Builder builderFo * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder mergeExpirationDate(com.google.protobuf.Timestamp value) { - if (expirationDateBuilder_ == null) { - if (((bitField0_ & 0x00000200) != 0) - && expirationDate_ != null - && expirationDate_ != com.google.protobuf.Timestamp.getDefaultInstance()) { - getExpirationDateBuilder().mergeFrom(value); - } else { - expirationDate_ = value; - } - } else { - expirationDateBuilder_.mergeFrom(value); - } - if (expirationDate_ != null) { - bitField0_ |= 0x00000200; + public Builder setShippingTransitBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + builderForValue) { + if (shippingTransitBusinessDaysBuilder_ == null) { + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.set(index, builderForValue.build()); onChanged(); + } else { + shippingTransitBusinessDaysBuilder_.setMessage(index, builderForValue.build()); } return this; } @@ -18975,24 +47613,27 @@ public Builder mergeExpirationDate(com.google.protobuf.Timestamp value) { * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder clearExpirationDate() { - bitField0_ = (bitField0_ & ~0x00000200); - expirationDate_ = null; - if (expirationDateBuilder_ != null) { - expirationDateBuilder_.dispose(); - expirationDateBuilder_ = null; + public Builder addShippingTransitBusinessDays( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + value) { + if (shippingTransitBusinessDaysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.add(value); + onChanged(); + } else { + shippingTransitBusinessDaysBuilder_.addMessage(value); } - onChanged(); return this; } @@ -19000,152 +47641,156 @@ public Builder clearExpirationDate() { * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public com.google.protobuf.Timestamp.Builder getExpirationDateBuilder() { - bitField0_ |= 0x00000200; - onChanged(); - return internalGetExpirationDateFieldBuilder().getBuilder(); + public Builder addShippingTransitBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + value) { + if (shippingTransitBusinessDaysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.add(index, value); + onChanged(); + } else { + shippingTransitBusinessDaysBuilder_.addMessage(index, value); + } + return this; } /** * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public com.google.protobuf.TimestampOrBuilder getExpirationDateOrBuilder() { - if (expirationDateBuilder_ != null) { - return expirationDateBuilder_.getMessageOrBuilder(); + public Builder addShippingTransitBusinessDays( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + builderForValue) { + if (shippingTransitBusinessDaysBuilder_ == null) { + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.add(builderForValue.build()); + onChanged(); } else { - return expirationDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : expirationDate_; + shippingTransitBusinessDaysBuilder_.addMessage(builderForValue.build()); } + return this; } /** * * *
-     * Date on which the item should expire, as specified upon insertion, in
-     * [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual
-     * expiration date is exposed in `productstatuses` as
-     * [googleExpirationDate](https://support.google.com/merchants/answer/6324499)
-     * and might be earlier if `expirationDate` is too far in the future.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp expiration_date = 16; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - private com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder> - internalGetExpirationDateFieldBuilder() { - if (expirationDateBuilder_ == null) { - expirationDateBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder>( - getExpirationDate(), getParentForChildren(), isClean()); - expirationDate_ = null; + public Builder addShippingTransitBusinessDays( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + builderForValue) { + if (shippingTransitBusinessDaysBuilder_ == null) { + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.add(index, builderForValue.build()); + onChanged(); + } else { + shippingTransitBusinessDaysBuilder_.addMessage(index, builderForValue.build()); } - return expirationDateBuilder_; + return this; } - private com.google.protobuf.Timestamp disclosureDate_; - private com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder> - disclosureDateBuilder_; - /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; - * - * @return Whether the disclosureDate field is set. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public boolean hasDisclosureDate() { - return ((bitField0_ & 0x00000400) != 0); + public Builder addAllShippingTransitBusinessDays( + java.lang.Iterable< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig> + values) { + if (shippingTransitBusinessDaysBuilder_ == null) { + ensureShippingTransitBusinessDaysIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, shippingTransitBusinessDays_); + onChanged(); + } else { + shippingTransitBusinessDaysBuilder_.addAllMessages(values); + } + return this; } /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; - * - * @return The disclosureDate. + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public com.google.protobuf.Timestamp getDisclosureDate() { - if (disclosureDateBuilder_ == null) { - return disclosureDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : disclosureDate_; + public Builder clearShippingTransitBusinessDays() { + if (shippingTransitBusinessDaysBuilder_ == null) { + shippingTransitBusinessDays_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00020000); + onChanged(); } else { - return disclosureDateBuilder_.getMessage(); + shippingTransitBusinessDaysBuilder_.clear(); } + return this; } /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder setDisclosureDate(com.google.protobuf.Timestamp value) { - if (disclosureDateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - disclosureDate_ = value; + public Builder removeShippingTransitBusinessDays(int index) { + if (shippingTransitBusinessDaysBuilder_ == null) { + ensureShippingTransitBusinessDaysIsMutable(); + shippingTransitBusinessDays_.remove(index); + onChanged(); } else { - disclosureDateBuilder_.setMessage(value); + shippingTransitBusinessDaysBuilder_.remove(index); } - bitField0_ |= 0x00000400; - onChanged(); return this; } @@ -19153,279 +47798,329 @@ public Builder setDisclosureDate(com.google.protobuf.Timestamp value) { * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder setDisclosureDate(com.google.protobuf.Timestamp.Builder builderForValue) { - if (disclosureDateBuilder_ == null) { - disclosureDate_ = builderForValue.build(); - } else { - disclosureDateBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000400; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + getShippingTransitBusinessDaysBuilder(int index) { + return internalGetShippingTransitBusinessDaysFieldBuilder().getBuilder(index); } /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder mergeDisclosureDate(com.google.protobuf.Timestamp value) { - if (disclosureDateBuilder_ == null) { - if (((bitField0_ & 0x00000400) != 0) - && disclosureDate_ != null - && disclosureDate_ != com.google.protobuf.Timestamp.getDefaultInstance()) { - getDisclosureDateBuilder().mergeFrom(value); - } else { - disclosureDate_ = value; - } + public com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder + getShippingTransitBusinessDaysOrBuilder(int index) { + if (shippingTransitBusinessDaysBuilder_ == null) { + return shippingTransitBusinessDays_.get(index); } else { - disclosureDateBuilder_.mergeFrom(value); - } - if (disclosureDate_ != null) { - bitField0_ |= 0x00000400; - onChanged(); + return shippingTransitBusinessDaysBuilder_.getMessageOrBuilder(index); } - return this; } /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public Builder clearDisclosureDate() { - bitField0_ = (bitField0_ & ~0x00000400); - disclosureDate_ = null; - if (disclosureDateBuilder_ != null) { - disclosureDateBuilder_.dispose(); - disclosureDateBuilder_ = null; + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + getShippingTransitBusinessDaysOrBuilderList() { + if (shippingTransitBusinessDaysBuilder_ != null) { + return shippingTransitBusinessDaysBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(shippingTransitBusinessDays_); } - onChanged(); - return this; } /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public com.google.protobuf.Timestamp.Builder getDisclosureDateBuilder() { - bitField0_ |= 0x00000400; - onChanged(); - return internalGetDisclosureDateFieldBuilder().getBuilder(); + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + addShippingTransitBusinessDaysBuilder() { + return internalGetShippingTransitBusinessDaysFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .getDefaultInstance()); } /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - public com.google.protobuf.TimestampOrBuilder getDisclosureDateOrBuilder() { - if (disclosureDateBuilder_ != null) { - return disclosureDateBuilder_.getMessageOrBuilder(); - } else { - return disclosureDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : disclosureDate_; - } + public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder + addShippingTransitBusinessDaysBuilder(int index) { + return internalGetShippingTransitBusinessDaysFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .getDefaultInstance()); } /** * * *
-     * The date time when an offer becomes visible in search results across
-     * Google’s YouTube surfaces, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * See [Disclosure date](https://support.google.com/merchants/answer/13034208)
-     * for more information.
+     * The business days during which orders are in transit.
+     * If not provided, Monday to Friday business days will be assumed.
      * 
* - * .google.protobuf.Timestamp disclosure_date = 79; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * */ - private com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder> - internalGetDisclosureDateFieldBuilder() { - if (disclosureDateBuilder_ == null) { - disclosureDateBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder>( - getDisclosureDate(), getParentForChildren(), isClean()); - disclosureDate_ = null; + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder> + getShippingTransitBusinessDaysBuilderList() { + return internalGetShippingTransitBusinessDaysFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, + com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + .Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder> + internalGetShippingTransitBusinessDaysFieldBuilder() { + if (shippingTransitBusinessDaysBuilder_ == null) { + shippingTransitBusinessDaysBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfig.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .ShippingBusinessDaysConfigOrBuilder>( + shippingTransitBusinessDays_, + ((bitField1_ & 0x00020000) != 0), + getParentForChildren(), + isClean()); + shippingTransitBusinessDays_ = null; } - return disclosureDateBuilder_; + return shippingTransitBusinessDaysBuilder_; } - private boolean adult_; + private java.util.List + handlingCutoffTimes_ = java.util.Collections.emptyList(); + + private void ensureHandlingCutoffTimesIsMutable() { + if (!((bitField1_ & 0x00040000) != 0)) { + handlingCutoffTimes_ = + new java.util.ArrayList( + handlingCutoffTimes_); + bitField1_ |= 0x00040000; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.HandlingCutoffTime, + com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder, + com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> + handlingCutoffTimesBuilder_; /** * * *
-     * Set to true if the item is targeted towards adults.
+     * The handling cutoff times for shipping.
      * 
* - * optional bool adult = 17; - * - * @return Whether the adult field is set. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public boolean hasAdult() { - return ((bitField0_ & 0x00000800) != 0); + public java.util.List + getHandlingCutoffTimesList() { + if (handlingCutoffTimesBuilder_ == null) { + return java.util.Collections.unmodifiableList(handlingCutoffTimes_); + } else { + return handlingCutoffTimesBuilder_.getMessageList(); + } } /** * * *
-     * Set to true if the item is targeted towards adults.
+     * The handling cutoff times for shipping.
      * 
* - * optional bool adult = 17; - * - * @return The adult. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public boolean getAdult() { - return adult_; + public int getHandlingCutoffTimesCount() { + if (handlingCutoffTimesBuilder_ == null) { + return handlingCutoffTimes_.size(); + } else { + return handlingCutoffTimesBuilder_.getCount(); + } } /** * * *
-     * Set to true if the item is targeted towards adults.
+     * The handling cutoff times for shipping.
      * 
* - * optional bool adult = 17; - * - * @param value The adult to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder setAdult(boolean value) { - - adult_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.HandlingCutoffTime getHandlingCutoffTimes( + int index) { + if (handlingCutoffTimesBuilder_ == null) { + return handlingCutoffTimes_.get(index); + } else { + return handlingCutoffTimesBuilder_.getMessage(index); + } } /** * * *
-     * Set to true if the item is targeted towards adults.
+     * The handling cutoff times for shipping.
      * 
* - * optional bool adult = 17; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder clearAdult() { - bitField0_ = (bitField0_ & ~0x00000800); - adult_ = false; - onChanged(); + public Builder setHandlingCutoffTimes( + int index, com.google.shopping.merchant.products.v1.HandlingCutoffTime value) { + if (handlingCutoffTimesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.set(index, value); + onChanged(); + } else { + handlingCutoffTimesBuilder_.setMessage(index, value); + } return this; } - private int ageGroup_ = 0; - /** * * *
-     * Target [age group](https://support.google.com/merchants/answer/6324463) of
-     * the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @return Whether the ageGroup field is set. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public boolean hasAgeGroup() { - return ((bitField0_ & 0x00001000) != 0); + public Builder setHandlingCutoffTimes( + int index, + com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder builderForValue) { + if (handlingCutoffTimesBuilder_ == null) { + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.set(index, builderForValue.build()); + onChanged(); + } else { + handlingCutoffTimesBuilder_.setMessage(index, builderForValue.build()); + } + return this; } /** * * *
-     * Target [age group](https://support.google.com/merchants/answer/6324463) of
-     * the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @return The enum numeric value on the wire for ageGroup. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public int getAgeGroupValue() { - return ageGroup_; + public Builder addHandlingCutoffTimes( + com.google.shopping.merchant.products.v1.HandlingCutoffTime value) { + if (handlingCutoffTimesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.add(value); + onChanged(); + } else { + handlingCutoffTimesBuilder_.addMessage(value); + } + return this; } /** * * *
-     * Target [age group](https://support.google.com/merchants/answer/6324463) of
-     * the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @param value The enum numeric value on the wire for ageGroup to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder setAgeGroupValue(int value) { - ageGroup_ = value; - bitField0_ |= 0x00001000; - onChanged(); + public Builder addHandlingCutoffTimes( + int index, com.google.shopping.merchant.products.v1.HandlingCutoffTime value) { + if (handlingCutoffTimesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.add(index, value); + onChanged(); + } else { + handlingCutoffTimesBuilder_.addMessage(index, value); + } return this; } @@ -19433,43 +48128,46 @@ public Builder setAgeGroupValue(int value) { * * *
-     * Target [age group](https://support.google.com/merchants/answer/6324463) of
-     * the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @return The ageGroup. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.AgeGroup getAgeGroup() { - com.google.shopping.merchant.products.v1.AgeGroup result = - com.google.shopping.merchant.products.v1.AgeGroup.forNumber(ageGroup_); - return result == null - ? com.google.shopping.merchant.products.v1.AgeGroup.UNRECOGNIZED - : result; + public Builder addHandlingCutoffTimes( + com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder builderForValue) { + if (handlingCutoffTimesBuilder_ == null) { + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.add(builderForValue.build()); + onChanged(); + } else { + handlingCutoffTimesBuilder_.addMessage(builderForValue.build()); + } + return this; } /** * * *
-     * Target [age group](https://support.google.com/merchants/answer/6324463) of
-     * the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @param value The ageGroup to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder setAgeGroup(com.google.shopping.merchant.products.v1.AgeGroup value) { - if (value == null) { - throw new NullPointerException(); + public Builder addHandlingCutoffTimes( + int index, + com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder builderForValue) { + if (handlingCutoffTimesBuilder_ == null) { + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.add(index, builderForValue.build()); + onChanged(); + } else { + handlingCutoffTimesBuilder_.addMessage(index, builderForValue.build()); } - bitField0_ |= 0x00001000; - ageGroup_ = value.getNumber(); - onChanged(); return this; } @@ -19477,276 +48175,289 @@ public Builder setAgeGroup(com.google.shopping.merchant.products.v1.AgeGroup val * * *
-     * Target [age group](https://support.google.com/merchants/answer/6324463) of
-     * the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.AgeGroup age_group = 18; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder clearAgeGroup() { - bitField0_ = (bitField0_ & ~0x00001000); - ageGroup_ = 0; - onChanged(); + public Builder addAllHandlingCutoffTimes( + java.lang.Iterable + values) { + if (handlingCutoffTimesBuilder_ == null) { + ensureHandlingCutoffTimesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, handlingCutoffTimes_); + onChanged(); + } else { + handlingCutoffTimesBuilder_.addAllMessages(values); + } return this; } - private int availability_ = 0; - /** * * *
-     * [Availability](https://support.google.com/merchants/answer/6324448) status
-     * of the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @return Whether the availability field is set. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public boolean hasAvailability() { - return ((bitField0_ & 0x00002000) != 0); + public Builder clearHandlingCutoffTimes() { + if (handlingCutoffTimesBuilder_ == null) { + handlingCutoffTimes_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00040000); + onChanged(); + } else { + handlingCutoffTimesBuilder_.clear(); + } + return this; } /** * * *
-     * [Availability](https://support.google.com/merchants/answer/6324448) status
-     * of the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @return The enum numeric value on the wire for availability. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public int getAvailabilityValue() { - return availability_; + public Builder removeHandlingCutoffTimes(int index) { + if (handlingCutoffTimesBuilder_ == null) { + ensureHandlingCutoffTimesIsMutable(); + handlingCutoffTimes_.remove(index); + onChanged(); + } else { + handlingCutoffTimesBuilder_.remove(index); + } + return this; } /** * * *
-     * [Availability](https://support.google.com/merchants/answer/6324448) status
-     * of the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @param value The enum numeric value on the wire for availability to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder setAvailabilityValue(int value) { - availability_ = value; - bitField0_ |= 0x00002000; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder + getHandlingCutoffTimesBuilder(int index) { + return internalGetHandlingCutoffTimesFieldBuilder().getBuilder(index); } /** * * *
-     * [Availability](https://support.google.com/merchants/answer/6324448) status
-     * of the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @return The availability. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Availability getAvailability() { - com.google.shopping.merchant.products.v1.Availability result = - com.google.shopping.merchant.products.v1.Availability.forNumber(availability_); - return result == null - ? com.google.shopping.merchant.products.v1.Availability.UNRECOGNIZED - : result; + public com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder + getHandlingCutoffTimesOrBuilder(int index) { + if (handlingCutoffTimesBuilder_ == null) { + return handlingCutoffTimes_.get(index); + } else { + return handlingCutoffTimesBuilder_.getMessageOrBuilder(index); + } } /** * * *
-     * [Availability](https://support.google.com/merchants/answer/6324448) status
-     * of the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @param value The availability to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder setAvailability(com.google.shopping.merchant.products.v1.Availability value) { - if (value == null) { - throw new NullPointerException(); + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> + getHandlingCutoffTimesOrBuilderList() { + if (handlingCutoffTimesBuilder_ != null) { + return handlingCutoffTimesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(handlingCutoffTimes_); } - bitField0_ |= 0x00002000; - availability_ = value.getNumber(); - onChanged(); - return this; } /** * * *
-     * [Availability](https://support.google.com/merchants/answer/6324448) status
-     * of the item.
+     * The handling cutoff times for shipping.
      * 
* - * optional .google.shopping.merchant.products.v1.Availability availability = 19; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public Builder clearAvailability() { - bitField0_ = (bitField0_ & ~0x00002000); - availability_ = 0; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder + addHandlingCutoffTimesBuilder() { + return internalGetHandlingCutoffTimesFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.HandlingCutoffTime.getDefaultInstance()); } - private com.google.protobuf.Timestamp availabilityDate_; - private com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder> - availabilityDateBuilder_; - /** * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The handling cutoff times for shipping.
      * 
* - * .google.protobuf.Timestamp availability_date = 20; - * - * @return Whether the availabilityDate field is set. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public boolean hasAvailabilityDate() { - return ((bitField0_ & 0x00004000) != 0); + public com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder + addHandlingCutoffTimesBuilder(int index) { + return internalGetHandlingCutoffTimesFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.HandlingCutoffTime.getDefaultInstance()); } /** * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The handling cutoff times for shipping.
      * 
* - * .google.protobuf.Timestamp availability_date = 20; - * - * @return The availabilityDate. + * + * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * */ - public com.google.protobuf.Timestamp getAvailabilityDate() { - if (availabilityDateBuilder_ == null) { - return availabilityDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : availabilityDate_; - } else { - return availabilityDateBuilder_.getMessage(); + public java.util.List + getHandlingCutoffTimesBuilderList() { + return internalGetHandlingCutoffTimesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.HandlingCutoffTime, + com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder, + com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> + internalGetHandlingCutoffTimesFieldBuilder() { + if (handlingCutoffTimesBuilder_ == null) { + handlingCutoffTimesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.HandlingCutoffTime, + com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder, + com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder>( + handlingCutoffTimes_, + ((bitField1_ & 0x00040000) != 0), + getParentForChildren(), + isClean()); + handlingCutoffTimes_ = null; } + return handlingCutoffTimesBuilder_; } + private java.lang.Object shippingLabel_ = ""; + /** * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The shipping label of the product, used to group products in account-level
+     * shipping rules. Max. 100 characters. For more information, see
+     * [Shipping label](https://support.google.com/merchants/answer/6324504).
      * 
* - * .google.protobuf.Timestamp availability_date = 20; + * optional string shipping_label = 46; + * + * @return Whether the shippingLabel field is set. */ - public Builder setAvailabilityDate(com.google.protobuf.Timestamp value) { - if (availabilityDateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - availabilityDate_ = value; - } else { - availabilityDateBuilder_.setMessage(value); - } - bitField0_ |= 0x00004000; - onChanged(); - return this; + public boolean hasShippingLabel() { + return ((bitField1_ & 0x00080000) != 0); } /** * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The shipping label of the product, used to group products in account-level
+     * shipping rules. Max. 100 characters. For more information, see
+     * [Shipping label](https://support.google.com/merchants/answer/6324504).
      * 
* - * .google.protobuf.Timestamp availability_date = 20; + * optional string shipping_label = 46; + * + * @return The shippingLabel. */ - public Builder setAvailabilityDate(com.google.protobuf.Timestamp.Builder builderForValue) { - if (availabilityDateBuilder_ == null) { - availabilityDate_ = builderForValue.build(); + 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 { - availabilityDateBuilder_.setMessage(builderForValue.build()); + return (java.lang.String) ref; } - bitField0_ |= 0x00004000; - onChanged(); - return this; } /** * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The shipping label of the product, used to group products in account-level
+     * shipping rules. Max. 100 characters. For more information, see
+     * [Shipping label](https://support.google.com/merchants/answer/6324504).
      * 
* - * .google.protobuf.Timestamp availability_date = 20; + * optional string shipping_label = 46; + * + * @return The bytes for shippingLabel. */ - public Builder mergeAvailabilityDate(com.google.protobuf.Timestamp value) { - if (availabilityDateBuilder_ == null) { - if (((bitField0_ & 0x00004000) != 0) - && availabilityDate_ != null - && availabilityDate_ != com.google.protobuf.Timestamp.getDefaultInstance()) { - getAvailabilityDateBuilder().mergeFrom(value); - } else { - availabilityDate_ = value; - } + 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 { - availabilityDateBuilder_.mergeFrom(value); - } - if (availabilityDate_ != null) { - bitField0_ |= 0x00004000; - onChanged(); + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The shipping label of the product, used to group products in account-level
+     * shipping rules. Max. 100 characters. For more information, see
+     * [Shipping label](https://support.google.com/merchants/answer/6324504).
      * 
* - * .google.protobuf.Timestamp availability_date = 20; + * optional string shipping_label = 46; + * + * @param value The shippingLabel to set. + * @return This builder for chaining. */ - public Builder clearAvailabilityDate() { - bitField0_ = (bitField0_ & ~0x00004000); - availabilityDate_ = null; - if (availabilityDateBuilder_ != null) { - availabilityDateBuilder_.dispose(); - availabilityDateBuilder_ = null; + public Builder setShippingLabel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + shippingLabel_ = value; + bitField1_ |= 0x00080000; onChanged(); return this; } @@ -19755,101 +48466,85 @@ public Builder clearAvailabilityDate() { * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The shipping label of the product, used to group products in account-level
+     * shipping rules. Max. 100 characters. For more information, see
+     * [Shipping label](https://support.google.com/merchants/answer/6324504).
      * 
* - * .google.protobuf.Timestamp availability_date = 20; + * optional string shipping_label = 46; + * + * @return This builder for chaining. */ - public com.google.protobuf.Timestamp.Builder getAvailabilityDateBuilder() { - bitField0_ |= 0x00004000; + public Builder clearShippingLabel() { + shippingLabel_ = getDefaultInstance().getShippingLabel(); + bitField1_ = (bitField1_ & ~0x00080000); onChanged(); - return internalGetAvailabilityDateFieldBuilder().getBuilder(); + return this; } /** * * *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
+     * The shipping label of the product, used to group products in account-level
+     * shipping rules. Max. 100 characters. For more information, see
+     * [Shipping label](https://support.google.com/merchants/answer/6324504).
      * 
* - * .google.protobuf.Timestamp availability_date = 20; - */ - public com.google.protobuf.TimestampOrBuilder getAvailabilityDateOrBuilder() { - if (availabilityDateBuilder_ != null) { - return availabilityDateBuilder_.getMessageOrBuilder(); - } else { - return availabilityDate_ == null - ? com.google.protobuf.Timestamp.getDefaultInstance() - : availabilityDate_; - } - } - - /** - * - * - *
-     * The day a pre-ordered product becomes available for delivery, in [ISO
-     * 8601](http://en.wikipedia.org/wiki/ISO_8601) format.
-     * 
+ * optional string shipping_label = 46; * - * .google.protobuf.Timestamp availability_date = 20; + * @param value The bytes for shippingLabel to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder> - internalGetAvailabilityDateFieldBuilder() { - if (availabilityDateBuilder_ == null) { - availabilityDateBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, - com.google.protobuf.Timestamp.Builder, - com.google.protobuf.TimestampOrBuilder>( - getAvailabilityDate(), getParentForChildren(), isClean()); - availabilityDate_ = null; + public Builder setShippingLabelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - return availabilityDateBuilder_; + checkByteStringIsUtf8(value); + shippingLabel_ = value; + bitField1_ |= 0x00080000; + onChanged(); + return this; } - private java.lang.Object brand_ = ""; + private java.lang.Object returnPolicyLabel_ = ""; /** * * *
-     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-     * For example, "Google".
+     * The return label of the product, used to group products in account-level
+     * return policies. Max. 100 characters. For more information, see
+     * [Return policy label](https://support.google.com/merchants/answer/9445425).
      * 
* - * optional string brand = 21; + * optional string return_policy_label = 170; * - * @return Whether the brand field is set. + * @return Whether the returnPolicyLabel field is set. */ - public boolean hasBrand() { - return ((bitField0_ & 0x00008000) != 0); + public boolean hasReturnPolicyLabel() { + return ((bitField1_ & 0x00100000) != 0); } /** * * *
-     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-     * For example, "Google".
+     * The return label of the product, used to group products in account-level
+     * return policies. Max. 100 characters. For more information, see
+     * [Return policy label](https://support.google.com/merchants/answer/9445425).
      * 
* - * optional string brand = 21; + * optional string return_policy_label = 170; * - * @return The brand. + * @return The returnPolicyLabel. */ - public java.lang.String getBrand() { - java.lang.Object ref = brand_; + public java.lang.String getReturnPolicyLabel() { + java.lang.Object ref = returnPolicyLabel_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - brand_ = s; + returnPolicyLabel_ = s; return s; } else { return (java.lang.String) ref; @@ -19860,20 +48555,21 @@ public java.lang.String getBrand() { * * *
-     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-     * For example, "Google".
+     * The return label of the product, used to group products in account-level
+     * return policies. Max. 100 characters. For more information, see
+     * [Return policy label](https://support.google.com/merchants/answer/9445425).
      * 
* - * optional string brand = 21; + * optional string return_policy_label = 170; * - * @return The bytes for brand. + * @return The bytes for returnPolicyLabel. */ - public com.google.protobuf.ByteString getBrandBytes() { - java.lang.Object ref = brand_; + public com.google.protobuf.ByteString getReturnPolicyLabelBytes() { + java.lang.Object ref = returnPolicyLabel_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - brand_ = b; + returnPolicyLabel_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -19884,21 +48580,22 @@ public com.google.protobuf.ByteString getBrandBytes() { * * *
-     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-     * For example, "Google".
+     * The return label of the product, used to group products in account-level
+     * return policies. Max. 100 characters. For more information, see
+     * [Return policy label](https://support.google.com/merchants/answer/9445425).
      * 
* - * optional string brand = 21; + * optional string return_policy_label = 170; * - * @param value The brand to set. + * @param value The returnPolicyLabel to set. * @return This builder for chaining. */ - public Builder setBrand(java.lang.String value) { + public Builder setReturnPolicyLabel(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - brand_ = value; - bitField0_ |= 0x00008000; + returnPolicyLabel_ = value; + bitField1_ |= 0x00100000; onChanged(); return this; } @@ -19907,17 +48604,18 @@ public Builder setBrand(java.lang.String value) { * * *
-     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-     * For example, "Google".
+     * The return label of the product, used to group products in account-level
+     * return policies. Max. 100 characters. For more information, see
+     * [Return policy label](https://support.google.com/merchants/answer/9445425).
      * 
* - * optional string brand = 21; + * optional string return_policy_label = 170; * * @return This builder for chaining. */ - public Builder clearBrand() { - brand_ = getDefaultInstance().getBrand(); - bitField0_ = (bitField0_ & ~0x00008000); + public Builder clearReturnPolicyLabel() { + returnPolicyLabel_ = getDefaultInstance().getReturnPolicyLabel(); + bitField1_ = (bitField1_ & ~0x00100000); onChanged(); return this; } @@ -19926,62 +48624,63 @@ public Builder clearBrand() { * * *
-     * [Brand](https://support.google.com/merchants/answer/6324351) of the item.
-     * For example, "Google".
+     * The return label of the product, used to group products in account-level
+     * return policies. Max. 100 characters. For more information, see
+     * [Return policy label](https://support.google.com/merchants/answer/9445425).
      * 
* - * optional string brand = 21; + * optional string return_policy_label = 170; * - * @param value The bytes for brand to set. + * @param value The bytes for returnPolicyLabel to set. * @return This builder for chaining. */ - public Builder setBrandBytes(com.google.protobuf.ByteString value) { + public Builder setReturnPolicyLabelBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - brand_ = value; - bitField0_ |= 0x00008000; + returnPolicyLabel_ = value; + bitField1_ |= 0x00100000; onChanged(); return this; } - private java.lang.Object color_ = ""; + private java.lang.Object transitTimeLabel_ = ""; /** * * *
-     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-     * For example, "red".
+     * The transit time label of the product, used to group product in
+     * account-level transit time tables.
      * 
* - * optional string color = 22; + * optional string transit_time_label = 47; * - * @return Whether the color field is set. + * @return Whether the transitTimeLabel field is set. */ - public boolean hasColor() { - return ((bitField0_ & 0x00010000) != 0); + public boolean hasTransitTimeLabel() { + return ((bitField1_ & 0x00200000) != 0); } /** * * *
-     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-     * For example, "red".
+     * The transit time label of the product, used to group product in
+     * account-level transit time tables.
      * 
* - * optional string color = 22; + * optional string transit_time_label = 47; * - * @return The color. + * @return The transitTimeLabel. */ - public java.lang.String getColor() { - java.lang.Object ref = color_; + public java.lang.String getTransitTimeLabel() { + java.lang.Object ref = transitTimeLabel_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - color_ = s; + transitTimeLabel_ = s; return s; } else { return (java.lang.String) ref; @@ -19992,20 +48691,20 @@ public java.lang.String getColor() { * * *
-     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-     * For example, "red".
+     * The transit time label of the product, used to group product in
+     * account-level transit time tables.
      * 
* - * optional string color = 22; + * optional string transit_time_label = 47; * - * @return The bytes for color. + * @return The bytes for transitTimeLabel. */ - public com.google.protobuf.ByteString getColorBytes() { - java.lang.Object ref = color_; + public com.google.protobuf.ByteString getTransitTimeLabelBytes() { + java.lang.Object ref = transitTimeLabel_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - color_ = b; + transitTimeLabel_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -20016,21 +48715,21 @@ public com.google.protobuf.ByteString getColorBytes() { * * *
-     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-     * For example, "red".
+     * The transit time label of the product, used to group product in
+     * account-level transit time tables.
      * 
* - * optional string color = 22; + * optional string transit_time_label = 47; * - * @param value The color to set. + * @param value The transitTimeLabel to set. * @return This builder for chaining. */ - public Builder setColor(java.lang.String value) { + public Builder setTransitTimeLabel(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - color_ = value; - bitField0_ |= 0x00010000; + transitTimeLabel_ = value; + bitField1_ |= 0x00200000; onChanged(); return this; } @@ -20039,17 +48738,17 @@ public Builder setColor(java.lang.String value) { * * *
-     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-     * For example, "red".
+     * The transit time label of the product, used to group product in
+     * account-level transit time tables.
      * 
* - * optional string color = 22; + * optional string transit_time_label = 47; * * @return This builder for chaining. */ - public Builder clearColor() { - color_ = getDefaultInstance().getColor(); - bitField0_ = (bitField0_ & ~0x00010000); + public Builder clearTransitTimeLabel() { + transitTimeLabel_ = getDefaultInstance().getTransitTimeLabel(); + bitField1_ = (bitField1_ & ~0x00200000); onChanged(); return this; } @@ -20058,122 +48757,140 @@ public Builder clearColor() { * * *
-     * [Color](https://support.google.com/merchants/answer/6324487) of the item.
-     * For example, "red".
+     * The transit time label of the product, used to group product in
+     * account-level transit time tables.
      * 
* - * optional string color = 22; + * optional string transit_time_label = 47; * - * @param value The bytes for color to set. + * @param value The bytes for transitTimeLabel to set. * @return This builder for chaining. */ - public Builder setColorBytes(com.google.protobuf.ByteString value) { + public Builder setTransitTimeLabelBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - color_ = value; - bitField0_ |= 0x00010000; + transitTimeLabel_ = value; + bitField1_ |= 0x00200000; onChanged(); return this; } - private int condition_ = 0; + private java.lang.Object size_ = ""; /** * * *
-     * [Condition](https://support.google.com/merchants/answer/6324469) or state
-     * of the item.
+     * Size of the item. Only one value is allowed. For variants with different
+     * sizes, insert a separate product for each size with the same
+     * `itemGroupId` value, see
+     * [Size](https://support.google.com/merchants/answer/6324492).
      * 
* - * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * optional string size = 48; * - * @return Whether the condition field is set. + * @return Whether the size field is set. */ - @java.lang.Override - public boolean hasCondition() { - return ((bitField0_ & 0x00020000) != 0); + public boolean hasSize() { + return ((bitField1_ & 0x00400000) != 0); } /** * * *
-     * [Condition](https://support.google.com/merchants/answer/6324469) or state
-     * of the item.
+     * Size of the item. Only one value is allowed. For variants with different
+     * sizes, insert a separate product for each size with the same
+     * `itemGroupId` value, see
+     * [Size](https://support.google.com/merchants/answer/6324492).
      * 
* - * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * optional string size = 48; * - * @return The enum numeric value on the wire for condition. + * @return The size. */ - @java.lang.Override - public int getConditionValue() { - return condition_; + public java.lang.String getSize() { + java.lang.Object ref = size_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + size_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** * * *
-     * [Condition](https://support.google.com/merchants/answer/6324469) or state
-     * of the item.
+     * Size of the item. Only one value is allowed. For variants with different
+     * sizes, insert a separate product for each size with the same
+     * `itemGroupId` value, see
+     * [Size](https://support.google.com/merchants/answer/6324492).
      * 
* - * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * optional string size = 48; * - * @param value The enum numeric value on the wire for condition to set. - * @return This builder for chaining. + * @return The bytes for size. */ - public Builder setConditionValue(int value) { - condition_ = value; - bitField0_ |= 0x00020000; - onChanged(); - return this; + public com.google.protobuf.ByteString getSizeBytes() { + java.lang.Object ref = size_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + size_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** * * *
-     * [Condition](https://support.google.com/merchants/answer/6324469) or state
-     * of the item.
+     * Size of the item. Only one value is allowed. For variants with different
+     * sizes, insert a separate product for each size with the same
+     * `itemGroupId` value, see
+     * [Size](https://support.google.com/merchants/answer/6324492).
      * 
* - * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * optional string size = 48; * - * @return The condition. + * @param value The size to set. + * @return This builder for chaining. */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Condition getCondition() { - com.google.shopping.merchant.products.v1.Condition result = - com.google.shopping.merchant.products.v1.Condition.forNumber(condition_); - return result == null - ? com.google.shopping.merchant.products.v1.Condition.UNRECOGNIZED - : result; + public Builder setSize(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + size_ = value; + bitField1_ |= 0x00400000; + onChanged(); + return this; } /** * * *
-     * [Condition](https://support.google.com/merchants/answer/6324469) or state
-     * of the item.
+     * Size of the item. Only one value is allowed. For variants with different
+     * sizes, insert a separate product for each size with the same
+     * `itemGroupId` value, see
+     * [Size](https://support.google.com/merchants/answer/6324492).
      * 
* - * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * optional string size = 48; * - * @param value The condition to set. * @return This builder for chaining. */ - public Builder setCondition(com.google.shopping.merchant.products.v1.Condition value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00020000; - condition_ = value.getNumber(); + public Builder clearSize() { + size_ = getDefaultInstance().getSize(); + bitField1_ = (bitField1_ & ~0x00400000); onChanged(); return this; } @@ -20182,73 +48899,83 @@ public Builder setCondition(com.google.shopping.merchant.products.v1.Condition v * * *
-     * [Condition](https://support.google.com/merchants/answer/6324469) or state
-     * of the item.
+     * Size of the item. Only one value is allowed. For variants with different
+     * sizes, insert a separate product for each size with the same
+     * `itemGroupId` value, see
+     * [Size](https://support.google.com/merchants/answer/6324492).
      * 
* - * optional .google.shopping.merchant.products.v1.Condition condition = 23; + * optional string size = 48; * + * @param value The bytes for size to set. * @return This builder for chaining. */ - public Builder clearCondition() { - bitField0_ = (bitField0_ & ~0x00020000); - condition_ = 0; + public Builder setSizeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + size_ = value; + bitField1_ |= 0x00400000; onChanged(); return this; } - private int gender_ = 0; + private int sizeSystem_ = 0; /** * * *
-     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-     * item.
+     * System in which the size is specified. Recommended for apparel items.
+     * For more information, see
+     * [Size system](https://support.google.com/merchants/answer/6324502).
      * 
* - * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; * - * @return Whether the gender field is set. + * @return Whether the sizeSystem field is set. */ @java.lang.Override - public boolean hasGender() { - return ((bitField0_ & 0x00040000) != 0); + public boolean hasSizeSystem() { + return ((bitField1_ & 0x00800000) != 0); } /** * * *
-     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-     * item.
+     * System in which the size is specified. Recommended for apparel items.
+     * For more information, see
+     * [Size system](https://support.google.com/merchants/answer/6324502).
      * 
* - * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; * - * @return The enum numeric value on the wire for gender. + * @return The enum numeric value on the wire for sizeSystem. */ @java.lang.Override - public int getGenderValue() { - return gender_; + public int getSizeSystemValue() { + return sizeSystem_; } /** * * *
-     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-     * item.
+     * System in which the size is specified. Recommended for apparel items.
+     * For more information, see
+     * [Size system](https://support.google.com/merchants/answer/6324502).
      * 
* - * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; * - * @param value The enum numeric value on the wire for gender to set. + * @param value The enum numeric value on the wire for sizeSystem to set. * @return This builder for chaining. */ - public Builder setGenderValue(int value) { - gender_ = value; - bitField0_ |= 0x00040000; + public Builder setSizeSystemValue(int value) { + sizeSystem_ = value; + bitField1_ |= 0x00800000; onChanged(); return this; } @@ -20257,40 +48984,44 @@ public Builder setGenderValue(int value) { * * *
-     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-     * item.
+     * System in which the size is specified. Recommended for apparel items.
+     * For more information, see
+     * [Size system](https://support.google.com/merchants/answer/6324502).
      * 
* - * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; * - * @return The gender. + * @return The sizeSystem. */ @java.lang.Override - public com.google.shopping.merchant.products.v1.Gender getGender() { - com.google.shopping.merchant.products.v1.Gender result = - com.google.shopping.merchant.products.v1.Gender.forNumber(gender_); - return result == null ? com.google.shopping.merchant.products.v1.Gender.UNRECOGNIZED : result; + public com.google.shopping.merchant.products.v1.SizeSystem getSizeSystem() { + com.google.shopping.merchant.products.v1.SizeSystem result = + com.google.shopping.merchant.products.v1.SizeSystem.forNumber(sizeSystem_); + return result == null + ? com.google.shopping.merchant.products.v1.SizeSystem.UNRECOGNIZED + : result; } /** * * *
-     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-     * item.
+     * System in which the size is specified. Recommended for apparel items.
+     * For more information, see
+     * [Size system](https://support.google.com/merchants/answer/6324502).
      * 
* - * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; * - * @param value The gender to set. + * @param value The sizeSystem to set. * @return This builder for chaining. */ - public Builder setGender(com.google.shopping.merchant.products.v1.Gender value) { + public Builder setSizeSystem(com.google.shopping.merchant.products.v1.SizeSystem value) { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00040000; - gender_ = value.getNumber(); + bitField1_ |= 0x00800000; + sizeSystem_ = value.getNumber(); onChanged(); return this; } @@ -20299,305 +49030,232 @@ public Builder setGender(com.google.shopping.merchant.products.v1.Gender value) * * *
-     * Target [gender](https://support.google.com/merchants/answer/6324479) of the
-     * item.
+     * System in which the size is specified. Recommended for apparel items.
+     * For more information, see
+     * [Size system](https://support.google.com/merchants/answer/6324502).
      * 
* - * optional .google.shopping.merchant.products.v1.Gender gender = 24; + * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; * * @return This builder for chaining. */ - public Builder clearGender() { - bitField0_ = (bitField0_ & ~0x00040000); - gender_ = 0; + public Builder clearSizeSystem() { + bitField1_ = (bitField1_ & ~0x00800000); + sizeSystem_ = 0; onChanged(); return this; } - private java.lang.Object googleProductCategory_ = ""; - - /** - * - * - *
-     * Google's category of the item (see [Google product
-     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-     * querying products, this field will contain the user provided value. There
-     * is currently no way to get back the auto assigned google product
-     * categories through the API.
-     * 
- * - * optional string google_product_category = 25; - * - * @return Whether the googleProductCategory field is set. - */ - public boolean hasGoogleProductCategory() { - return ((bitField0_ & 0x00080000) != 0); - } + private com.google.protobuf.Internal.IntList sizeTypes_ = emptyIntList(); - /** - * - * - *
-     * Google's category of the item (see [Google product
-     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-     * querying products, this field will contain the user provided value. There
-     * is currently no way to get back the auto assigned google product
-     * categories through the API.
-     * 
- * - * optional string google_product_category = 25; - * - * @return The googleProductCategory. - */ - public java.lang.String getGoogleProductCategory() { - java.lang.Object ref = googleProductCategory_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - googleProductCategory_ = s; - return s; - } else { - return (java.lang.String) ref; + private void ensureSizeTypesIsMutable() { + if (!sizeTypes_.isModifiable()) { + sizeTypes_ = makeMutableCopy(sizeTypes_); } + bitField1_ |= 0x01000000; } /** * * *
-     * Google's category of the item (see [Google product
-     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-     * querying products, this field will contain the user provided value. There
-     * is currently no way to get back the auto assigned google product
-     * categories through the API.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * optional string google_product_category = 25; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @return The bytes for googleProductCategory. + * @return A list containing the sizeTypes. */ - public com.google.protobuf.ByteString getGoogleProductCategoryBytes() { - java.lang.Object ref = googleProductCategory_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - googleProductCategory_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public java.util.List getSizeTypesList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.merchant.products.v1.SizeType>(sizeTypes_, sizeTypes_converter_); } /** * * *
-     * Google's category of the item (see [Google product
-     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-     * querying products, this field will contain the user provided value. There
-     * is currently no way to get back the auto assigned google product
-     * categories through the API.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * optional string google_product_category = 25; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @param value The googleProductCategory to set. - * @return This builder for chaining. + * @return The count of sizeTypes. */ - public Builder setGoogleProductCategory(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - googleProductCategory_ = value; - bitField0_ |= 0x00080000; - onChanged(); - return this; + public int getSizeTypesCount() { + return sizeTypes_.size(); } /** * * *
-     * Google's category of the item (see [Google product
-     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-     * querying products, this field will contain the user provided value. There
-     * is currently no way to get back the auto assigned google product
-     * categories through the API.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * optional string google_product_category = 25; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @return This builder for chaining. + * @param index The index of the element to return. + * @return The sizeTypes at the given index. */ - public Builder clearGoogleProductCategory() { - googleProductCategory_ = getDefaultInstance().getGoogleProductCategory(); - bitField0_ = (bitField0_ & ~0x00080000); - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.SizeType getSizeTypes(int index) { + return sizeTypes_converter_.convert(sizeTypes_.getInt(index)); } /** * * *
-     * Google's category of the item (see [Google product
-     * taxonomy](https://support.google.com/merchants/answer/1705911)). When
-     * querying products, this field will contain the user provided value. There
-     * is currently no way to get back the auto assigned google product
-     * categories through the API.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * optional string google_product_category = 25; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @param value The bytes for googleProductCategory to set. + * @param index The index to set the value at. + * @param value The sizeTypes to set. * @return This builder for chaining. */ - public Builder setGoogleProductCategoryBytes(com.google.protobuf.ByteString value) { + public Builder setSizeTypes( + int index, com.google.shopping.merchant.products.v1.SizeType value) { if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - googleProductCategory_ = value; - bitField0_ |= 0x00080000; + ensureSizeTypesIsMutable(); + sizeTypes_.setInt(index, value.getNumber()); onChanged(); return this; } - private com.google.protobuf.LazyStringArrayList gtins_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensureGtinsIsMutable() { - if (!gtins_.isModifiable()) { - gtins_ = new com.google.protobuf.LazyStringArrayList(gtins_); - } - bitField0_ |= 0x00100000; - } - /** * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @return A list containing the gtins. + * @param value The sizeTypes to add. + * @return This builder for chaining. */ - public com.google.protobuf.ProtocolStringList getGtinsList() { - gtins_.makeImmutable(); - return gtins_; + public Builder addSizeTypes(com.google.shopping.merchant.products.v1.SizeType value) { + if (value == null) { + throw new NullPointerException(); + } + ensureSizeTypesIsMutable(); + sizeTypes_.addInt(value.getNumber()); + onChanged(); + return this; } /** * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @return The count of gtins. + * @param values The sizeTypes to add. + * @return This builder for chaining. */ - public int getGtinsCount() { - return gtins_.size(); + public Builder addAllSizeTypes( + java.lang.Iterable values) { + ensureSizeTypesIsMutable(); + for (com.google.shopping.merchant.products.v1.SizeType value : values) { + sizeTypes_.addInt(value.getNumber()); + } + onChanged(); + return this; } /** * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @param index The index of the element to return. - * @return The gtins at the given index. + * @return This builder for chaining. */ - public java.lang.String getGtins(int index) { - return gtins_.get(index); + public Builder clearSizeTypes() { + sizeTypes_ = emptyIntList(); + bitField1_ = (bitField1_ & ~0x01000000); + onChanged(); + return this; } /** * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @param index The index of the value to return. - * @return The bytes of the gtins at the given index. + * @return A list containing the enum numeric values on the wire for sizeTypes. */ - public com.google.protobuf.ByteString getGtinsBytes(int index) { - return gtins_.getByteString(index); + public java.util.List getSizeTypesValueList() { + sizeTypes_.makeImmutable(); + return sizeTypes_; } /** * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @param index The index to set the value at. - * @param value The gtins to set. - * @return This builder for chaining. + * @param index The index of the value to return. + * @return The enum numeric value on the wire of sizeTypes at the given index. */ - public Builder setGtins(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureGtinsIsMutable(); - gtins_.set(index, value); - bitField0_ |= 0x00100000; - onChanged(); - return this; + public int getSizeTypesValue(int index) { + return sizeTypes_.getInt(index); } /** * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @param value The gtins to add. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for sizeTypes to set. * @return This builder for chaining. */ - public Builder addGtins(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureGtinsIsMutable(); - gtins_.add(value); - bitField0_ |= 0x00100000; + public Builder setSizeTypesValue(int index, int value) { + ensureSizeTypesIsMutable(); + sizeTypes_.setInt(index, value); onChanged(); return this; } @@ -20606,21 +49264,19 @@ public Builder addGtins(java.lang.String value) { * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * - * @param values The gtins to add. + * @param value The enum numeric value on the wire for sizeTypes to add. * @return This builder for chaining. */ - public Builder addAllGtins(java.lang.Iterable values) { - ensureGtinsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, gtins_); - bitField0_ |= 0x00100000; + public Builder addSizeTypesValue(int value) { + ensureSizeTypesIsMutable(); + sizeTypes_.addInt(value); onChanged(); return this; } @@ -20629,132 +49285,139 @@ public Builder addAllGtins(java.lang.Iterable values) { * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The cut of the item. It can be used to represent combined size types for
+     * apparel items. Maximum two of size types can be provided, see
+     * [Size type](https://support.google.com/merchants/answer/6324497).
      * 
* - * repeated string gtins = 140; + * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; * + * @param values The enum numeric values on the wire for sizeTypes to add. * @return This builder for chaining. */ - public Builder clearGtins() { - gtins_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField0_ = (bitField0_ & ~0x00100000); - ; + public Builder addAllSizeTypesValue(java.lang.Iterable values) { + ensureSizeTypesIsMutable(); + for (int value : values) { + sizeTypes_.addInt(value); + } onChanged(); return this; } + private int energyEfficiencyClass_ = 0; + /** * * *
-     * Global Trade Item Numbers
-     * ([GTIN](https://support.google.com/merchants/answer/6324461)) of the
-     * item.
-     * You can provide up to 10 GTINs.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * repeated string gtins = 140; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * * - * @param value The bytes of the gtins to add. - * @return This builder for chaining. + * @return Whether the energyEfficiencyClass field is set. */ - public Builder addGtinsBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureGtinsIsMutable(); - gtins_.add(value); - bitField0_ |= 0x00100000; - onChanged(); - return this; + @java.lang.Override + public boolean hasEnergyEfficiencyClass() { + return ((bitField1_ & 0x02000000) != 0); } - private java.lang.Object itemGroupId_ = ""; - /** * * *
-     * Shared identifier for all variants of the same product.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string item_group_id = 27; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * * - * @return Whether the itemGroupId field is set. + * @return The enum numeric value on the wire for energyEfficiencyClass. */ - public boolean hasItemGroupId() { - return ((bitField0_ & 0x00200000) != 0); + @java.lang.Override + public int getEnergyEfficiencyClassValue() { + return energyEfficiencyClass_; } /** * * *
-     * Shared identifier for all variants of the same product.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string item_group_id = 27; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * * - * @return The itemGroupId. + * @param value The enum numeric value on the wire for energyEfficiencyClass to set. + * @return This builder for chaining. */ - 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; - } + public Builder setEnergyEfficiencyClassValue(int value) { + energyEfficiencyClass_ = value; + bitField1_ |= 0x02000000; + onChanged(); + return this; } /** * * *
-     * Shared identifier for all variants of the same product.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string item_group_id = 27; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * * - * @return The bytes for itemGroupId. + * @return The energyEfficiencyClass. */ - 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; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass + getEnergyEfficiencyClass() { + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( + energyEfficiencyClass_); + return result == null + ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED + : result; } /** * * *
-     * Shared identifier for all variants of the same product.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string item_group_id = 27; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * * - * @param value The itemGroupId to set. + * @param value The energyEfficiencyClass to set. * @return This builder for chaining. */ - public Builder setItemGroupId(java.lang.String value) { + public Builder setEnergyEfficiencyClass( + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass value) { if (value == null) { throw new NullPointerException(); } - itemGroupId_ = value; - bitField0_ |= 0x00200000; + bitField1_ |= 0x02000000; + energyEfficiencyClass_ = value.getNumber(); onChanged(); return this; } @@ -20763,128 +49426,138 @@ public Builder setItemGroupId(java.lang.String value) { * * *
-     * Shared identifier for all variants of the same product.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string item_group_id = 27; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; + * * * @return This builder for chaining. */ - public Builder clearItemGroupId() { - itemGroupId_ = getDefaultInstance().getItemGroupId(); - bitField0_ = (bitField0_ & ~0x00200000); + public Builder clearEnergyEfficiencyClass() { + bitField1_ = (bitField1_ & ~0x02000000); + energyEfficiencyClass_ = 0; onChanged(); return this; } + private int minEnergyEfficiencyClass_ = 0; + /** * * *
-     * Shared identifier for all variants of the same product.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string item_group_id = 27; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * * - * @param value The bytes for itemGroupId to set. - * @return This builder for chaining. + * @return Whether the minEnergyEfficiencyClass field is set. */ - public Builder setItemGroupIdBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - itemGroupId_ = value; - bitField0_ |= 0x00200000; - onChanged(); - return this; + @java.lang.Override + public boolean hasMinEnergyEfficiencyClass() { + return ((bitField1_ & 0x04000000) != 0); } - private java.lang.Object material_ = ""; - /** * * *
-     * The [material](https://support.google.com/merchants/answer/6324410) of
-     * which the item is made. For example, "Leather" or "Cotton".
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string material = 28; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * * - * @return Whether the material field is set. + * @return The enum numeric value on the wire for minEnergyEfficiencyClass. */ - public boolean hasMaterial() { - return ((bitField0_ & 0x00400000) != 0); + @java.lang.Override + public int getMinEnergyEfficiencyClassValue() { + return minEnergyEfficiencyClass_; } /** * * *
-     * The [material](https://support.google.com/merchants/answer/6324410) of
-     * which the item is made. For example, "Leather" or "Cotton".
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string material = 28; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * * - * @return The material. + * @param value The enum numeric value on the wire for minEnergyEfficiencyClass to set. + * @return This builder for chaining. */ - public java.lang.String getMaterial() { - java.lang.Object ref = material_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - material_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public Builder setMinEnergyEfficiencyClassValue(int value) { + minEnergyEfficiencyClass_ = value; + bitField1_ |= 0x04000000; + onChanged(); + return this; } /** * * *
-     * The [material](https://support.google.com/merchants/answer/6324410) of
-     * which the item is made. For example, "Leather" or "Cotton".
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string material = 28; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * * - * @return The bytes for material. + * @return The minEnergyEfficiencyClass. */ - public com.google.protobuf.ByteString getMaterialBytes() { - java.lang.Object ref = material_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - material_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass + getMinEnergyEfficiencyClass() { + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( + minEnergyEfficiencyClass_); + return result == null + ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED + : result; } /** * * *
-     * The [material](https://support.google.com/merchants/answer/6324410) of
-     * which the item is made. For example, "Leather" or "Cotton".
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string material = 28; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * * - * @param value The material to set. + * @param value The minEnergyEfficiencyClass to set. * @return This builder for chaining. */ - public Builder setMaterial(java.lang.String value) { + public Builder setMinEnergyEfficiencyClass( + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass value) { if (value == null) { throw new NullPointerException(); } - material_ = value; - bitField0_ |= 0x00400000; + bitField1_ |= 0x04000000; + minEnergyEfficiencyClass_ = value.getNumber(); onChanged(); return this; } @@ -20893,134 +49566,138 @@ public Builder setMaterial(java.lang.String value) { * * *
-     * The [material](https://support.google.com/merchants/answer/6324410) of
-     * which the item is made. For example, "Leather" or "Cotton".
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string material = 28; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * * * @return This builder for chaining. */ - public Builder clearMaterial() { - material_ = getDefaultInstance().getMaterial(); - bitField0_ = (bitField0_ & ~0x00400000); + public Builder clearMinEnergyEfficiencyClass() { + bitField1_ = (bitField1_ & ~0x04000000); + minEnergyEfficiencyClass_ = 0; onChanged(); return this; } + private int maxEnergyEfficiencyClass_ = 0; + /** * * *
-     * The [material](https://support.google.com/merchants/answer/6324410) of
-     * which the item is made. For example, "Leather" or "Cotton".
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string material = 28; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * * - * @param value The bytes for material to set. - * @return This builder for chaining. + * @return Whether the maxEnergyEfficiencyClass field is set. */ - public Builder setMaterialBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - material_ = value; - bitField0_ |= 0x00400000; - onChanged(); - return this; + @java.lang.Override + public boolean hasMaxEnergyEfficiencyClass() { + return ((bitField1_ & 0x08000000) != 0); } - private java.lang.Object mpn_ = ""; - /** * * *
-     * Manufacturer Part Number
-     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-     * item.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string mpn = 29; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * * - * @return Whether the mpn field is set. + * @return The enum numeric value on the wire for maxEnergyEfficiencyClass. */ - public boolean hasMpn() { - return ((bitField0_ & 0x00800000) != 0); + @java.lang.Override + public int getMaxEnergyEfficiencyClassValue() { + return maxEnergyEfficiencyClass_; } /** * * *
-     * Manufacturer Part Number
-     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-     * item.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string mpn = 29; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * * - * @return The mpn. + * @param value The enum numeric value on the wire for maxEnergyEfficiencyClass to set. + * @return This builder for chaining. */ - public java.lang.String getMpn() { - java.lang.Object ref = mpn_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - mpn_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public Builder setMaxEnergyEfficiencyClassValue(int value) { + maxEnergyEfficiencyClass_ = value; + bitField1_ |= 0x08000000; + onChanged(); + return this; } /** * * *
-     * Manufacturer Part Number
-     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-     * item.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string mpn = 29; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * * - * @return The bytes for mpn. + * @return The maxEnergyEfficiencyClass. */ - public com.google.protobuf.ByteString getMpnBytes() { - java.lang.Object ref = mpn_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - mpn_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass + getMaxEnergyEfficiencyClass() { + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( + maxEnergyEfficiencyClass_); + return result == null + ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED + : result; } /** * * *
-     * Manufacturer Part Number
-     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-     * item.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string mpn = 29; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * * - * @param value The mpn to set. + * @param value The maxEnergyEfficiencyClass to set. * @return This builder for chaining. */ - public Builder setMpn(java.lang.String value) { + public Builder setMaxEnergyEfficiencyClass( + com.google.shopping.merchant.products.v1.EnergyEfficiencyClass value) { if (value == null) { throw new NullPointerException(); } - mpn_ = value; - bitField0_ |= 0x00800000; + bitField1_ |= 0x08000000; + maxEnergyEfficiencyClass_ = value.getNumber(); onChanged(); return this; } @@ -21029,132 +49706,165 @@ public Builder setMpn(java.lang.String value) { * * *
-     * Manufacturer Part Number
-     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-     * item.
+     * The [energy efficiency
+     * class](https://support.google.com/merchants/answer/7562785) as defined in
+     * EU directive 2010/30/EU.
      * 
* - * optional string mpn = 29; + * + * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * * * @return This builder for chaining. */ - public Builder clearMpn() { - mpn_ = getDefaultInstance().getMpn(); - bitField0_ = (bitField0_ & ~0x00800000); + public Builder clearMaxEnergyEfficiencyClass() { + bitField1_ = (bitField1_ & ~0x08000000); + maxEnergyEfficiencyClass_ = 0; onChanged(); return this; } + private com.google.shopping.merchant.products.v1.UnitPricingMeasure unitPricingMeasure_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.UnitPricingMeasure, + com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder, + com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder> + unitPricingMeasureBuilder_; + /** * * *
-     * Manufacturer Part Number
-     * ([MPN](https://support.google.com/merchants/answer/6324482)) of the
-     * item.
+     * The measure and dimension of an item.
      * 
* - * optional string mpn = 29; + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * * - * @param value The bytes for mpn to set. - * @return This builder for chaining. + * @return Whether the unitPricingMeasure field is set. */ - public Builder setMpnBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - mpn_ = value; - bitField0_ |= 0x00800000; - onChanged(); - return this; + public boolean hasUnitPricingMeasure() { + return ((bitField1_ & 0x10000000) != 0); } - private java.lang.Object pattern_ = ""; - /** * * *
-     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-     * For example, polka dots.
+     * The measure and dimension of an item.
      * 
* - * optional string pattern = 30; + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * * - * @return Whether the pattern field is set. + * @return The unitPricingMeasure. */ - public boolean hasPattern() { - return ((bitField0_ & 0x01000000) != 0); + public com.google.shopping.merchant.products.v1.UnitPricingMeasure getUnitPricingMeasure() { + if (unitPricingMeasureBuilder_ == null) { + return unitPricingMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() + : unitPricingMeasure_; + } else { + return unitPricingMeasureBuilder_.getMessage(); + } } /** * * *
-     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-     * For example, polka dots.
+     * The measure and dimension of an item.
      * 
* - * optional string pattern = 30; - * - * @return The pattern. + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * */ - public java.lang.String getPattern() { - java.lang.Object ref = pattern_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - pattern_ = s; - return s; + public Builder setUnitPricingMeasure( + com.google.shopping.merchant.products.v1.UnitPricingMeasure value) { + if (unitPricingMeasureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + unitPricingMeasure_ = value; } else { - return (java.lang.String) ref; + unitPricingMeasureBuilder_.setMessage(value); } + bitField1_ |= 0x10000000; + onChanged(); + return this; } /** * * *
-     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-     * For example, polka dots.
+     * The measure and dimension of an item.
      * 
* - * optional string pattern = 30; - * - * @return The bytes for pattern. + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * */ - public com.google.protobuf.ByteString getPatternBytes() { - java.lang.Object ref = pattern_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - pattern_ = b; - return b; + public Builder setUnitPricingMeasure( + com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder builderForValue) { + if (unitPricingMeasureBuilder_ == null) { + unitPricingMeasure_ = builderForValue.build(); } else { - return (com.google.protobuf.ByteString) ref; + unitPricingMeasureBuilder_.setMessage(builderForValue.build()); } + bitField1_ |= 0x10000000; + onChanged(); + return this; } /** * * *
-     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-     * For example, polka dots.
+     * The measure and dimension of an item.
      * 
* - * optional string pattern = 30; + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + */ + public Builder mergeUnitPricingMeasure( + com.google.shopping.merchant.products.v1.UnitPricingMeasure value) { + if (unitPricingMeasureBuilder_ == null) { + if (((bitField1_ & 0x10000000) != 0) + && unitPricingMeasure_ != null + && unitPricingMeasure_ + != com.google.shopping.merchant.products.v1.UnitPricingMeasure + .getDefaultInstance()) { + getUnitPricingMeasureBuilder().mergeFrom(value); + } else { + unitPricingMeasure_ = value; + } + } else { + unitPricingMeasureBuilder_.mergeFrom(value); + } + if (unitPricingMeasure_ != null) { + bitField1_ |= 0x10000000; + onChanged(); + } + return this; + } + + /** * - * @param value The pattern to set. - * @return This builder for chaining. + * + *
+     * The measure and dimension of an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * */ - public Builder setPattern(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder clearUnitPricingMeasure() { + bitField1_ = (bitField1_ & ~0x10000000); + unitPricingMeasure_ = null; + if (unitPricingMeasureBuilder_ != null) { + unitPricingMeasureBuilder_.dispose(); + unitPricingMeasureBuilder_ = null; } - pattern_ = value; - bitField0_ |= 0x01000000; onChanged(); return this; } @@ -21163,83 +49873,112 @@ public Builder setPattern(java.lang.String value) { * * *
-     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-     * For example, polka dots.
+     * The measure and dimension of an item.
      * 
* - * optional string pattern = 30; - * - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * */ - public Builder clearPattern() { - pattern_ = getDefaultInstance().getPattern(); - bitField0_ = (bitField0_ & ~0x01000000); + public com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder + getUnitPricingMeasureBuilder() { + bitField1_ |= 0x10000000; onChanged(); - return this; + return internalGetUnitPricingMeasureFieldBuilder().getBuilder(); } /** * * *
-     * The item's [pattern](https://support.google.com/merchants/answer/6324483).
-     * For example, polka dots.
+     * The measure and dimension of an item.
      * 
* - * optional string pattern = 30; + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + */ + public com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder + getUnitPricingMeasureOrBuilder() { + if (unitPricingMeasureBuilder_ != null) { + return unitPricingMeasureBuilder_.getMessageOrBuilder(); + } else { + return unitPricingMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() + : unitPricingMeasure_; + } + } + + /** * - * @param value The bytes for pattern to set. - * @return This builder for chaining. + * + *
+     * The measure and dimension of an item.
+     * 
+ * + * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * */ - public Builder setPatternBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.UnitPricingMeasure, + com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder, + com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder> + internalGetUnitPricingMeasureFieldBuilder() { + if (unitPricingMeasureBuilder_ == null) { + unitPricingMeasureBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.UnitPricingMeasure, + com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder, + com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder>( + getUnitPricingMeasure(), getParentForChildren(), isClean()); + unitPricingMeasure_ = null; } - checkByteStringIsUtf8(value); - pattern_ = value; - bitField0_ |= 0x01000000; - onChanged(); - return this; + return unitPricingMeasureBuilder_; } - private com.google.shopping.type.Price price_; + private com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure unitPricingBaseMeasure_; private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - priceBuilder_; + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure, + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder, + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder> + unitPricingBaseMeasureBuilder_; /** * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * * - * @return Whether the price field is set. + * @return Whether the unitPricingBaseMeasure field is set. */ - public boolean hasPrice() { - return ((bitField0_ & 0x02000000) != 0); + public boolean hasUnitPricingBaseMeasure() { + return ((bitField1_ & 0x20000000) != 0); } /** * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * * - * @return The price. + * @return The unitPricingBaseMeasure. */ - public com.google.shopping.type.Price getPrice() { - if (priceBuilder_ == null) { - return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure + getUnitPricingBaseMeasure() { + if (unitPricingBaseMeasureBuilder_ == null) { + return unitPricingBaseMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() + : unitPricingBaseMeasure_; } else { - return priceBuilder_.getMessage(); + return unitPricingBaseMeasureBuilder_.getMessage(); } } @@ -21247,21 +49986,24 @@ public com.google.shopping.type.Price getPrice() { * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * */ - public Builder setPrice(com.google.shopping.type.Price value) { - if (priceBuilder_ == null) { + public Builder setUnitPricingBaseMeasure( + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure value) { + if (unitPricingBaseMeasureBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - price_ = value; + unitPricingBaseMeasure_ = value; } else { - priceBuilder_.setMessage(value); + unitPricingBaseMeasureBuilder_.setMessage(value); } - bitField0_ |= 0x02000000; + bitField1_ |= 0x20000000; onChanged(); return this; } @@ -21270,18 +50012,21 @@ public Builder setPrice(com.google.shopping.type.Price value) { * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * */ - public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) { - if (priceBuilder_ == null) { - price_ = builderForValue.build(); + public Builder setUnitPricingBaseMeasure( + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder builderForValue) { + if (unitPricingBaseMeasureBuilder_ == null) { + unitPricingBaseMeasure_ = builderForValue.build(); } else { - priceBuilder_.setMessage(builderForValue.build()); + unitPricingBaseMeasureBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x02000000; + bitField1_ |= 0x20000000; onChanged(); return this; } @@ -21290,25 +50035,30 @@ public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * */ - public Builder mergePrice(com.google.shopping.type.Price value) { - if (priceBuilder_ == null) { - if (((bitField0_ & 0x02000000) != 0) - && price_ != null - && price_ != com.google.shopping.type.Price.getDefaultInstance()) { - getPriceBuilder().mergeFrom(value); + public Builder mergeUnitPricingBaseMeasure( + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure value) { + if (unitPricingBaseMeasureBuilder_ == null) { + if (((bitField1_ & 0x20000000) != 0) + && unitPricingBaseMeasure_ != null + && unitPricingBaseMeasure_ + != com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure + .getDefaultInstance()) { + getUnitPricingBaseMeasureBuilder().mergeFrom(value); } else { - price_ = value; + unitPricingBaseMeasure_ = value; } } else { - priceBuilder_.mergeFrom(value); + unitPricingBaseMeasureBuilder_.mergeFrom(value); } - if (price_ != null) { - bitField0_ |= 0x02000000; + if (unitPricingBaseMeasure_ != null) { + bitField1_ |= 0x20000000; onChanged(); } return this; @@ -21318,17 +50068,19 @@ public Builder mergePrice(com.google.shopping.type.Price value) { * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * */ - public Builder clearPrice() { - bitField0_ = (bitField0_ & ~0x02000000); - price_ = null; - if (priceBuilder_ != null) { - priceBuilder_.dispose(); - priceBuilder_ = null; + public Builder clearUnitPricingBaseMeasure() { + bitField1_ = (bitField1_ & ~0x20000000); + unitPricingBaseMeasure_ = null; + if (unitPricingBaseMeasureBuilder_ != null) { + unitPricingBaseMeasureBuilder_.dispose(); + unitPricingBaseMeasureBuilder_ = null; } onChanged(); return this; @@ -21338,31 +50090,39 @@ public Builder clearPrice() { * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * */ - public com.google.shopping.type.Price.Builder getPriceBuilder() { - bitField0_ |= 0x02000000; + public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder + getUnitPricingBaseMeasureBuilder() { + bitField1_ |= 0x20000000; onChanged(); - return internalGetPriceFieldBuilder().getBuilder(); + return internalGetUnitPricingBaseMeasureFieldBuilder().getBuilder(); } /** * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * */ - public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { - if (priceBuilder_ != null) { - return priceBuilder_.getMessageOrBuilder(); + public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder + getUnitPricingBaseMeasureOrBuilder() { + if (unitPricingBaseMeasureBuilder_ != null) { + return unitPricingBaseMeasureBuilder_.getMessageOrBuilder(); } else { - return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + return unitPricingBaseMeasure_ == null + ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() + : unitPricingBaseMeasure_; } } @@ -21370,139 +50130,81 @@ public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { * * *
-     * Price of the item.
+     * The preference of the denominator of the unit price.
      * 
* - * .google.shopping.type.Price price = 31; + * + * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; + * */ private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - internalGetPriceFieldBuilder() { - if (priceBuilder_ == null) { - priceBuilder_ = + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure, + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder, + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder> + internalGetUnitPricingBaseMeasureFieldBuilder() { + if (unitPricingBaseMeasureBuilder_ == null) { + unitPricingBaseMeasureBuilder_ = new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder>( - getPrice(), getParentForChildren(), isClean()); - price_ = null; + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure, + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder, + com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder>( + getUnitPricingBaseMeasure(), getParentForChildren(), isClean()); + unitPricingBaseMeasure_ = null; } - return priceBuilder_; + return unitPricingBaseMeasureBuilder_; } - private com.google.shopping.type.Price maximumRetailPrice_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - maximumRetailPriceBuilder_; - - /** - * - * - *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
-     * 
- * - * .google.shopping.type.Price maximum_retail_price = 139; - * - * @return Whether the maximumRetailPrice field is set. - */ - public boolean hasMaximumRetailPrice() { - return ((bitField0_ & 0x04000000) != 0); - } + private long multipack_; /** * * *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * The number of identical products in a business-defined multipack.
      * 
* - * .google.shopping.type.Price maximum_retail_price = 139; + * optional int64 multipack = 58; * - * @return The maximumRetailPrice. + * @return Whether the multipack field is set. */ - public com.google.shopping.type.Price getMaximumRetailPrice() { - if (maximumRetailPriceBuilder_ == null) { - return maximumRetailPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : maximumRetailPrice_; - } else { - return maximumRetailPriceBuilder_.getMessage(); - } + @java.lang.Override + public boolean hasMultipack() { + return ((bitField1_ & 0x40000000) != 0); } /** * * *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * The number of identical products in a business-defined multipack.
      * 
* - * .google.shopping.type.Price maximum_retail_price = 139; - */ - public Builder setMaximumRetailPrice(com.google.shopping.type.Price value) { - if (maximumRetailPriceBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - maximumRetailPrice_ = value; - } else { - maximumRetailPriceBuilder_.setMessage(value); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - - /** - * - * - *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
-     * 
+ * optional int64 multipack = 58; * - * .google.shopping.type.Price maximum_retail_price = 139; - */ - public Builder setMaximumRetailPrice(com.google.shopping.type.Price.Builder builderForValue) { - if (maximumRetailPriceBuilder_ == null) { - maximumRetailPrice_ = builderForValue.build(); - } else { - maximumRetailPriceBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; + * @return The multipack. + */ + @java.lang.Override + public long getMultipack() { + return multipack_; } /** * * *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * The number of identical products in a business-defined multipack.
      * 
* - * .google.shopping.type.Price maximum_retail_price = 139; + * optional int64 multipack = 58; + * + * @param value The multipack to set. + * @return This builder for chaining. */ - public Builder mergeMaximumRetailPrice(com.google.shopping.type.Price value) { - if (maximumRetailPriceBuilder_ == null) { - if (((bitField0_ & 0x04000000) != 0) - && maximumRetailPrice_ != null - && maximumRetailPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { - getMaximumRetailPriceBuilder().mergeFrom(value); - } else { - maximumRetailPrice_ = value; - } - } else { - maximumRetailPriceBuilder_.mergeFrom(value); - } - if (maximumRetailPrice_ != null) { - bitField0_ |= 0x04000000; - onChanged(); - } + public Builder setMultipack(long value) { + + multipack_ = value; + bitField1_ |= 0x40000000; + onChanged(); return this; } @@ -21510,53 +50212,63 @@ public Builder mergeMaximumRetailPrice(com.google.shopping.type.Price value) { * * *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * The number of identical products in a business-defined multipack.
      * 
* - * .google.shopping.type.Price maximum_retail_price = 139; + * optional int64 multipack = 58; + * + * @return This builder for chaining. */ - public Builder clearMaximumRetailPrice() { - bitField0_ = (bitField0_ & ~0x04000000); - maximumRetailPrice_ = null; - if (maximumRetailPriceBuilder_ != null) { - maximumRetailPriceBuilder_.dispose(); - maximumRetailPriceBuilder_ = null; - } + public Builder clearMultipack() { + bitField1_ = (bitField1_ & ~0x40000000); + multipack_ = 0L; onChanged(); return this; } + private java.lang.Object adsGrouping_ = ""; + /** * * *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * Used to group items in an arbitrary way. Only for CPA%, discouraged
+     * otherwise. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.type.Price maximum_retail_price = 139; + * optional string ads_grouping = 59; + * + * @return Whether the adsGrouping field is set. */ - public com.google.shopping.type.Price.Builder getMaximumRetailPriceBuilder() { - bitField0_ |= 0x04000000; - onChanged(); - return internalGetMaximumRetailPriceFieldBuilder().getBuilder(); + public boolean hasAdsGrouping() { + return ((bitField1_ & 0x80000000) != 0); } /** * * *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * Used to group items in an arbitrary way. Only for CPA%, discouraged
+     * otherwise. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.type.Price maximum_retail_price = 139; + * optional string ads_grouping = 59; + * + * @return The adsGrouping. */ - public com.google.shopping.type.PriceOrBuilder getMaximumRetailPriceOrBuilder() { - if (maximumRetailPriceBuilder_ != null) { - return maximumRetailPriceBuilder_.getMessageOrBuilder(); + public java.lang.String getAdsGrouping() { + java.lang.Object ref = adsGrouping_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + adsGrouping_ = s; + return s; } else { - return maximumRetailPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : maximumRetailPrice_; + return (java.lang.String) ref; } } @@ -21564,478 +50276,455 @@ public com.google.shopping.type.PriceOrBuilder getMaximumRetailPriceOrBuilder() * * *
-     * Maximum retail price (MRP) of the item. Applicable to India only.
+     * Used to group items in an arbitrary way. Only for CPA%, discouraged
+     * otherwise. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.type.Price maximum_retail_price = 139; + * optional string ads_grouping = 59; + * + * @return The bytes for adsGrouping. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - internalGetMaximumRetailPriceFieldBuilder() { - if (maximumRetailPriceBuilder_ == null) { - maximumRetailPriceBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder>( - getMaximumRetailPrice(), getParentForChildren(), isClean()); - maximumRetailPrice_ = null; + public com.google.protobuf.ByteString getAdsGroupingBytes() { + java.lang.Object ref = adsGrouping_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + adsGrouping_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return maximumRetailPriceBuilder_; } - private com.google.shopping.merchant.products.v1.ProductInstallment installment_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductInstallment, - com.google.shopping.merchant.products.v1.ProductInstallment.Builder, - com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder> - installmentBuilder_; - /** * * *
-     * Number and amount of installments to pay for an item.
+     * Used to group items in an arbitrary way. Only for CPA%, discouraged
+     * otherwise. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * optional string ads_grouping = 59; * - * @return Whether the installment field is set. + * @param value The adsGrouping to set. + * @return This builder for chaining. */ - public boolean hasInstallment() { - return ((bitField0_ & 0x08000000) != 0); + public Builder setAdsGrouping(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + adsGrouping_ = value; + bitField1_ |= 0x80000000; + onChanged(); + return this; } /** * * *
-     * Number and amount of installments to pay for an item.
+     * Used to group items in an arbitrary way. Only for CPA%, discouraged
+     * otherwise. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * optional string ads_grouping = 59; * - * @return The installment. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ProductInstallment getInstallment() { - if (installmentBuilder_ == null) { - return installment_ == null - ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() - : installment_; - } else { - return installmentBuilder_.getMessage(); - } + public Builder clearAdsGrouping() { + adsGrouping_ = getDefaultInstance().getAdsGrouping(); + bitField1_ = (bitField1_ & ~0x80000000); + onChanged(); + return this; } /** * * *
-     * Number and amount of installments to pay for an item.
+     * Used to group items in an arbitrary way. Only for CPA%, discouraged
+     * otherwise. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * optional string ads_grouping = 59; + * + * @param value The bytes for adsGrouping to set. + * @return This builder for chaining. */ - public Builder setInstallment( - com.google.shopping.merchant.products.v1.ProductInstallment value) { - if (installmentBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - installment_ = value; - } else { - installmentBuilder_.setMessage(value); + public Builder setAdsGroupingBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - bitField0_ |= 0x08000000; + checkByteStringIsUtf8(value); + adsGrouping_ = value; + bitField1_ |= 0x80000000; onChanged(); return this; } + private com.google.protobuf.LazyStringArrayList adsLabels_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureAdsLabelsIsMutable() { + if (!adsLabels_.isModifiable()) { + adsLabels_ = new com.google.protobuf.LazyStringArrayList(adsLabels_); + } + bitField2_ |= 0x00000001; + } + /** * * *
-     * Number and amount of installments to pay for an item.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * repeated string ads_labels = 60; + * + * @return A list containing the adsLabels. */ - public Builder setInstallment( - com.google.shopping.merchant.products.v1.ProductInstallment.Builder builderForValue) { - if (installmentBuilder_ == null) { - installment_ = builderForValue.build(); - } else { - installmentBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x08000000; - onChanged(); - return this; + public com.google.protobuf.ProtocolStringList getAdsLabelsList() { + adsLabels_.makeImmutable(); + return adsLabels_; } /** * * *
-     * Number and amount of installments to pay for an item.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * repeated string ads_labels = 60; + * + * @return The count of adsLabels. */ - public Builder mergeInstallment( - com.google.shopping.merchant.products.v1.ProductInstallment value) { - if (installmentBuilder_ == null) { - if (((bitField0_ & 0x08000000) != 0) - && installment_ != null - && installment_ - != com.google.shopping.merchant.products.v1.ProductInstallment - .getDefaultInstance()) { - getInstallmentBuilder().mergeFrom(value); - } else { - installment_ = value; - } - } else { - installmentBuilder_.mergeFrom(value); - } - if (installment_ != null) { - bitField0_ |= 0x08000000; - onChanged(); - } - return this; + public int getAdsLabelsCount() { + return adsLabels_.size(); } /** * * *
-     * Number and amount of installments to pay for an item.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * repeated string ads_labels = 60; + * + * @param index The index of the element to return. + * @return The adsLabels at the given index. */ - public Builder clearInstallment() { - bitField0_ = (bitField0_ & ~0x08000000); - installment_ = null; - if (installmentBuilder_ != null) { - installmentBuilder_.dispose(); - installmentBuilder_ = null; - } - onChanged(); - return this; + public java.lang.String getAdsLabels(int index) { + return adsLabels_.get(index); } /** * * *
-     * Number and amount of installments to pay for an item.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * repeated string ads_labels = 60; + * + * @param index The index of the value to return. + * @return The bytes of the adsLabels at the given index. */ - public com.google.shopping.merchant.products.v1.ProductInstallment.Builder - getInstallmentBuilder() { - bitField0_ |= 0x08000000; - onChanged(); - return internalGetInstallmentFieldBuilder().getBuilder(); + public com.google.protobuf.ByteString getAdsLabelsBytes(int index) { + return adsLabels_.getByteString(index); } /** * * *
-     * Number and amount of installments to pay for an item.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * repeated string ads_labels = 60; + * + * @param index The index to set the value at. + * @param value The adsLabels to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder - getInstallmentOrBuilder() { - if (installmentBuilder_ != null) { - return installmentBuilder_.getMessageOrBuilder(); - } else { - return installment_ == null - ? com.google.shopping.merchant.products.v1.ProductInstallment.getDefaultInstance() - : installment_; + public Builder setAdsLabels(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + ensureAdsLabelsIsMutable(); + adsLabels_.set(index, value); + bitField2_ |= 0x00000001; + onChanged(); + return this; } /** * * *
-     * Number and amount of installments to pay for an item.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.ProductInstallment installment = 32; + * repeated string ads_labels = 60; + * + * @param value The adsLabels to add. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductInstallment, - com.google.shopping.merchant.products.v1.ProductInstallment.Builder, - com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder> - internalGetInstallmentFieldBuilder() { - if (installmentBuilder_ == null) { - installmentBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductInstallment, - com.google.shopping.merchant.products.v1.ProductInstallment.Builder, - com.google.shopping.merchant.products.v1.ProductInstallmentOrBuilder>( - getInstallment(), getParentForChildren(), isClean()); - installment_ = null; + public Builder addAdsLabels(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - return installmentBuilder_; + ensureAdsLabelsIsMutable(); + adsLabels_.add(value); + bitField2_ |= 0x00000001; + onChanged(); + return this; } - private com.google.shopping.merchant.products.v1.SubscriptionCost subscriptionCost_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.SubscriptionCost, - com.google.shopping.merchant.products.v1.SubscriptionCost.Builder, - com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder> - subscriptionCostBuilder_; - /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * repeated string ads_labels = 60; * - * @return Whether the subscriptionCost field is set. + * @param values The adsLabels to add. + * @return This builder for chaining. */ - public boolean hasSubscriptionCost() { - return ((bitField0_ & 0x10000000) != 0); + public Builder addAllAdsLabels(java.lang.Iterable values) { + ensureAdsLabelsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, adsLabels_); + bitField2_ |= 0x00000001; + onChanged(); + return this; } /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * repeated string ads_labels = 60; * - * @return The subscriptionCost. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.SubscriptionCost getSubscriptionCost() { - if (subscriptionCostBuilder_ == null) { - return subscriptionCost_ == null - ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() - : subscriptionCost_; - } else { - return subscriptionCostBuilder_.getMessage(); - } + public Builder clearAdsLabels() { + adsLabels_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField2_ = (bitField2_ & ~0x00000001); + ; + onChanged(); + return this; } /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Similar to ads_grouping, but only works on CPC.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * repeated string ads_labels = 60; + * + * @param value The bytes of the adsLabels to add. + * @return This builder for chaining. */ - public Builder setSubscriptionCost( - com.google.shopping.merchant.products.v1.SubscriptionCost value) { - if (subscriptionCostBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - subscriptionCost_ = value; - } else { - subscriptionCostBuilder_.setMessage(value); + public Builder addAdsLabelsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - bitField0_ |= 0x10000000; + checkByteStringIsUtf8(value); + ensureAdsLabelsIsMutable(); + adsLabels_.add(value); + bitField2_ |= 0x00000001; onChanged(); return this; } + private java.lang.Object adsRedirect_ = ""; + /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Allows advertisers to override the item URL when the product is shown
+     * within the context of Product ads.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * optional string ads_redirect = 61; + * + * @return Whether the adsRedirect field is set. */ - public Builder setSubscriptionCost( - com.google.shopping.merchant.products.v1.SubscriptionCost.Builder builderForValue) { - if (subscriptionCostBuilder_ == null) { - subscriptionCost_ = builderForValue.build(); - } else { - subscriptionCostBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x10000000; - onChanged(); - return this; + public boolean hasAdsRedirect() { + return ((bitField2_ & 0x00000002) != 0); } /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Allows advertisers to override the item URL when the product is shown
+     * within the context of Product ads.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * optional string ads_redirect = 61; + * + * @return The adsRedirect. */ - public Builder mergeSubscriptionCost( - com.google.shopping.merchant.products.v1.SubscriptionCost value) { - if (subscriptionCostBuilder_ == null) { - if (((bitField0_ & 0x10000000) != 0) - && subscriptionCost_ != null - && subscriptionCost_ - != com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance()) { - getSubscriptionCostBuilder().mergeFrom(value); - } else { - subscriptionCost_ = value; - } + public java.lang.String getAdsRedirect() { + java.lang.Object ref = adsRedirect_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + adsRedirect_ = s; + return s; } else { - subscriptionCostBuilder_.mergeFrom(value); - } - if (subscriptionCost_ != null) { - bitField0_ |= 0x10000000; - onChanged(); + return (java.lang.String) ref; } - return this; } /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Allows advertisers to override the item URL when the product is shown
+     * within the context of Product ads.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * optional string ads_redirect = 61; + * + * @return The bytes for adsRedirect. */ - public Builder clearSubscriptionCost() { - bitField0_ = (bitField0_ & ~0x10000000); - subscriptionCost_ = null; - if (subscriptionCostBuilder_ != null) { - subscriptionCostBuilder_.dispose(); - subscriptionCostBuilder_ = null; + public com.google.protobuf.ByteString getAdsRedirectBytes() { + java.lang.Object ref = adsRedirect_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + adsRedirect_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - onChanged(); - return this; } /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Allows advertisers to override the item URL when the product is shown
+     * within the context of Product ads.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * optional string ads_redirect = 61; + * + * @param value The adsRedirect to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.SubscriptionCost.Builder - getSubscriptionCostBuilder() { - bitField0_ |= 0x10000000; + public Builder setAdsRedirect(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + adsRedirect_ = value; + bitField2_ |= 0x00000002; onChanged(); - return internalGetSubscriptionCostFieldBuilder().getBuilder(); + return this; } /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Allows advertisers to override the item URL when the product is shown
+     * within the context of Product ads.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * optional string ads_redirect = 61; + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder - getSubscriptionCostOrBuilder() { - if (subscriptionCostBuilder_ != null) { - return subscriptionCostBuilder_.getMessageOrBuilder(); - } else { - return subscriptionCost_ == null - ? com.google.shopping.merchant.products.v1.SubscriptionCost.getDefaultInstance() - : subscriptionCost_; - } + public Builder clearAdsRedirect() { + adsRedirect_ = getDefaultInstance().getAdsRedirect(); + bitField2_ = (bitField2_ & ~0x00000002); + onChanged(); + return this; } /** * * *
-     * Number of periods (weeks, months or years) and amount of payment per period
-     * for an item with an associated subscription contract.
+     * Allows advertisers to override the item URL when the product is shown
+     * within the context of Product ads.
      * 
* - * .google.shopping.merchant.products.v1.SubscriptionCost subscription_cost = 33; + * optional string ads_redirect = 61; + * + * @param value The bytes for adsRedirect to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.SubscriptionCost, - com.google.shopping.merchant.products.v1.SubscriptionCost.Builder, - com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder> - internalGetSubscriptionCostFieldBuilder() { - if (subscriptionCostBuilder_ == null) { - subscriptionCostBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.SubscriptionCost, - com.google.shopping.merchant.products.v1.SubscriptionCost.Builder, - com.google.shopping.merchant.products.v1.SubscriptionCostOrBuilder>( - getSubscriptionCost(), getParentForChildren(), isClean()); - subscriptionCost_ = null; + public Builder setAdsRedirectBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - return subscriptionCostBuilder_; + checkByteStringIsUtf8(value); + adsRedirect_ = value; + bitField2_ |= 0x00000002; + onChanged(); + return this; } - private com.google.shopping.merchant.products.v1.LoyaltyPoints loyaltyPoints_; + private com.google.shopping.type.Price costOfGoodsSold_; private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.LoyaltyPoints, - com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder, - com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder> - loyaltyPointsBuilder_; + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + costOfGoodsSoldBuilder_; /** * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; * - * @return Whether the loyaltyPoints field is set. + * @return Whether the costOfGoodsSold field is set. */ - public boolean hasLoyaltyPoints() { - return ((bitField0_ & 0x20000000) != 0); + public boolean hasCostOfGoodsSold() { + return ((bitField2_ & 0x00000004) != 0); } /** * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; * - * @return The loyaltyPoints. + * @return The costOfGoodsSold. */ - public com.google.shopping.merchant.products.v1.LoyaltyPoints getLoyaltyPoints() { - if (loyaltyPointsBuilder_ == null) { - return loyaltyPoints_ == null - ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() - : loyaltyPoints_; + public com.google.shopping.type.Price getCostOfGoodsSold() { + if (costOfGoodsSoldBuilder_ == null) { + return costOfGoodsSold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : costOfGoodsSold_; } else { - return loyaltyPointsBuilder_.getMessage(); + return costOfGoodsSoldBuilder_.getMessage(); } } @@ -22043,21 +50732,21 @@ public com.google.shopping.merchant.products.v1.LoyaltyPoints getLoyaltyPoints() * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; */ - public Builder setLoyaltyPoints(com.google.shopping.merchant.products.v1.LoyaltyPoints value) { - if (loyaltyPointsBuilder_ == null) { + public Builder setCostOfGoodsSold(com.google.shopping.type.Price value) { + if (costOfGoodsSoldBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - loyaltyPoints_ = value; + costOfGoodsSold_ = value; } else { - loyaltyPointsBuilder_.setMessage(value); + costOfGoodsSoldBuilder_.setMessage(value); } - bitField0_ |= 0x20000000; + bitField2_ |= 0x00000004; onChanged(); return this; } @@ -22066,19 +50755,18 @@ public Builder setLoyaltyPoints(com.google.shopping.merchant.products.v1.Loyalty * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; */ - public Builder setLoyaltyPoints( - com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder builderForValue) { - if (loyaltyPointsBuilder_ == null) { - loyaltyPoints_ = builderForValue.build(); + public Builder setCostOfGoodsSold(com.google.shopping.type.Price.Builder builderForValue) { + if (costOfGoodsSoldBuilder_ == null) { + costOfGoodsSold_ = builderForValue.build(); } else { - loyaltyPointsBuilder_.setMessage(builderForValue.build()); + costOfGoodsSoldBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x20000000; + bitField2_ |= 0x00000004; onChanged(); return this; } @@ -22087,27 +50775,25 @@ public Builder setLoyaltyPoints( * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; */ - public Builder mergeLoyaltyPoints( - com.google.shopping.merchant.products.v1.LoyaltyPoints value) { - if (loyaltyPointsBuilder_ == null) { - if (((bitField0_ & 0x20000000) != 0) - && loyaltyPoints_ != null - && loyaltyPoints_ - != com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance()) { - getLoyaltyPointsBuilder().mergeFrom(value); + public Builder mergeCostOfGoodsSold(com.google.shopping.type.Price value) { + if (costOfGoodsSoldBuilder_ == null) { + if (((bitField2_ & 0x00000004) != 0) + && costOfGoodsSold_ != null + && costOfGoodsSold_ != com.google.shopping.type.Price.getDefaultInstance()) { + getCostOfGoodsSoldBuilder().mergeFrom(value); } else { - loyaltyPoints_ = value; + costOfGoodsSold_ = value; } } else { - loyaltyPointsBuilder_.mergeFrom(value); + costOfGoodsSoldBuilder_.mergeFrom(value); } - if (loyaltyPoints_ != null) { - bitField0_ |= 0x20000000; + if (costOfGoodsSold_ != null) { + bitField2_ |= 0x00000004; onChanged(); } return this; @@ -22117,17 +50803,17 @@ public Builder mergeLoyaltyPoints( * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; */ - public Builder clearLoyaltyPoints() { - bitField0_ = (bitField0_ & ~0x20000000); - loyaltyPoints_ = null; - if (loyaltyPointsBuilder_ != null) { - loyaltyPointsBuilder_.dispose(); - loyaltyPointsBuilder_ = null; + public Builder clearCostOfGoodsSold() { + bitField2_ = (bitField2_ & ~0x00000004); + costOfGoodsSold_ = null; + if (costOfGoodsSoldBuilder_ != null) { + costOfGoodsSoldBuilder_.dispose(); + costOfGoodsSoldBuilder_ = null; } onChanged(); return this; @@ -22137,35 +50823,33 @@ public Builder clearLoyaltyPoints() { * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; */ - public com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder - getLoyaltyPointsBuilder() { - bitField0_ |= 0x20000000; + public com.google.shopping.type.Price.Builder getCostOfGoodsSoldBuilder() { + bitField2_ |= 0x00000004; onChanged(); - return internalGetLoyaltyPointsFieldBuilder().getBuilder(); + return internalGetCostOfGoodsSoldFieldBuilder().getBuilder(); } /** * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; */ - public com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder - getLoyaltyPointsOrBuilder() { - if (loyaltyPointsBuilder_ != null) { - return loyaltyPointsBuilder_.getMessageOrBuilder(); + public com.google.shopping.type.PriceOrBuilder getCostOfGoodsSoldOrBuilder() { + if (costOfGoodsSoldBuilder_ != null) { + return costOfGoodsSoldBuilder_.getMessageOrBuilder(); } else { - return loyaltyPoints_ == null - ? com.google.shopping.merchant.products.v1.LoyaltyPoints.getDefaultInstance() - : loyaltyPoints_; + return costOfGoodsSold_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : costOfGoodsSold_; } } @@ -22173,64 +50857,62 @@ public Builder clearLoyaltyPoints() { * * *
-     * Loyalty points that users receive after purchasing the item. Japan only.
+     * Cost of goods sold. Used for gross profit reporting.
      * 
* - * .google.shopping.merchant.products.v1.LoyaltyPoints loyalty_points = 34; + * .google.shopping.type.Price cost_of_goods_sold = 62; */ private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.LoyaltyPoints, - com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder, - com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder> - internalGetLoyaltyPointsFieldBuilder() { - if (loyaltyPointsBuilder_ == null) { - loyaltyPointsBuilder_ = + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetCostOfGoodsSoldFieldBuilder() { + if (costOfGoodsSoldBuilder_ == null) { + costOfGoodsSoldBuilder_ = new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.LoyaltyPoints, - com.google.shopping.merchant.products.v1.LoyaltyPoints.Builder, - com.google.shopping.merchant.products.v1.LoyaltyPointsOrBuilder>( - getLoyaltyPoints(), getParentForChildren(), isClean()); - loyaltyPoints_ = null; + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getCostOfGoodsSold(), getParentForChildren(), isClean()); + costOfGoodsSold_ = null; } - return loyaltyPointsBuilder_; + return costOfGoodsSoldBuilder_; } - private java.util.List - loyaltyPrograms_ = java.util.Collections.emptyList(); + private java.util.List productDetails_ = + java.util.Collections.emptyList(); - private void ensureLoyaltyProgramsIsMutable() { - if (!((bitField0_ & 0x40000000) != 0)) { - loyaltyPrograms_ = - new java.util.ArrayList( - loyaltyPrograms_); - bitField0_ |= 0x40000000; + private void ensureProductDetailsIsMutable() { + if (!((bitField2_ & 0x00000008) != 0)) { + productDetails_ = + new java.util.ArrayList( + productDetails_); + bitField2_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.LoyaltyProgram, - com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder, - com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder> - loyaltyProgramsBuilder_; + com.google.shopping.merchant.products.v1.ProductDetail, + com.google.shopping.merchant.products.v1.ProductDetail.Builder, + com.google.shopping.merchant.products.v1.ProductDetailOrBuilder> + productDetailsBuilder_; /** * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public java.util.List - getLoyaltyProgramsList() { - if (loyaltyProgramsBuilder_ == null) { - return java.util.Collections.unmodifiableList(loyaltyPrograms_); + public java.util.List + getProductDetailsList() { + if (productDetailsBuilder_ == null) { + return java.util.Collections.unmodifiableList(productDetails_); } else { - return loyaltyProgramsBuilder_.getMessageList(); + return productDetailsBuilder_.getMessageList(); } } @@ -22238,19 +50920,17 @@ private void ensureLoyaltyProgramsIsMutable() { * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public int getLoyaltyProgramsCount() { - if (loyaltyProgramsBuilder_ == null) { - return loyaltyPrograms_.size(); + public int getProductDetailsCount() { + if (productDetailsBuilder_ == null) { + return productDetails_.size(); } else { - return loyaltyProgramsBuilder_.getCount(); + return productDetailsBuilder_.getCount(); } } @@ -22258,19 +50938,17 @@ public int getLoyaltyProgramsCount() { * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public com.google.shopping.merchant.products.v1.LoyaltyProgram getLoyaltyPrograms(int index) { - if (loyaltyProgramsBuilder_ == null) { - return loyaltyPrograms_.get(index); + public com.google.shopping.merchant.products.v1.ProductDetail getProductDetails(int index) { + if (productDetailsBuilder_ == null) { + return productDetails_.get(index); } else { - return loyaltyProgramsBuilder_.getMessage(index); + return productDetailsBuilder_.getMessage(index); } } @@ -22278,25 +50956,23 @@ public com.google.shopping.merchant.products.v1.LoyaltyProgram getLoyaltyProgram * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder setLoyaltyPrograms( - int index, com.google.shopping.merchant.products.v1.LoyaltyProgram value) { - if (loyaltyProgramsBuilder_ == null) { + public Builder setProductDetails( + int index, com.google.shopping.merchant.products.v1.ProductDetail value) { + if (productDetailsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.set(index, value); + ensureProductDetailsIsMutable(); + productDetails_.set(index, value); onChanged(); } else { - loyaltyProgramsBuilder_.setMessage(index, value); + productDetailsBuilder_.setMessage(index, value); } return this; } @@ -22305,23 +50981,20 @@ public Builder setLoyaltyPrograms( * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder setLoyaltyPrograms( - int index, - com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder builderForValue) { - if (loyaltyProgramsBuilder_ == null) { - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.set(index, builderForValue.build()); + public Builder setProductDetails( + int index, com.google.shopping.merchant.products.v1.ProductDetail.Builder builderForValue) { + if (productDetailsBuilder_ == null) { + ensureProductDetailsIsMutable(); + productDetails_.set(index, builderForValue.build()); onChanged(); } else { - loyaltyProgramsBuilder_.setMessage(index, builderForValue.build()); + productDetailsBuilder_.setMessage(index, builderForValue.build()); } return this; } @@ -22330,25 +51003,22 @@ public Builder setLoyaltyPrograms( * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder addLoyaltyPrograms( - com.google.shopping.merchant.products.v1.LoyaltyProgram value) { - if (loyaltyProgramsBuilder_ == null) { + public Builder addProductDetails(com.google.shopping.merchant.products.v1.ProductDetail value) { + if (productDetailsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.add(value); + ensureProductDetailsIsMutable(); + productDetails_.add(value); onChanged(); } else { - loyaltyProgramsBuilder_.addMessage(value); + productDetailsBuilder_.addMessage(value); } return this; } @@ -22357,25 +51027,23 @@ public Builder addLoyaltyPrograms( * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder addLoyaltyPrograms( - int index, com.google.shopping.merchant.products.v1.LoyaltyProgram value) { - if (loyaltyProgramsBuilder_ == null) { + public Builder addProductDetails( + int index, com.google.shopping.merchant.products.v1.ProductDetail value) { + if (productDetailsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.add(index, value); + ensureProductDetailsIsMutable(); + productDetails_.add(index, value); onChanged(); } else { - loyaltyProgramsBuilder_.addMessage(index, value); + productDetailsBuilder_.addMessage(index, value); } return this; } @@ -22384,22 +51052,20 @@ public Builder addLoyaltyPrograms( * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder addLoyaltyPrograms( - com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder builderForValue) { - if (loyaltyProgramsBuilder_ == null) { - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.add(builderForValue.build()); + public Builder addProductDetails( + com.google.shopping.merchant.products.v1.ProductDetail.Builder builderForValue) { + if (productDetailsBuilder_ == null) { + ensureProductDetailsIsMutable(); + productDetails_.add(builderForValue.build()); onChanged(); } else { - loyaltyProgramsBuilder_.addMessage(builderForValue.build()); + productDetailsBuilder_.addMessage(builderForValue.build()); } return this; } @@ -22408,23 +51074,20 @@ public Builder addLoyaltyPrograms( * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder addLoyaltyPrograms( - int index, - com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder builderForValue) { - if (loyaltyProgramsBuilder_ == null) { - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.add(index, builderForValue.build()); + public Builder addProductDetails( + int index, com.google.shopping.merchant.products.v1.ProductDetail.Builder builderForValue) { + if (productDetailsBuilder_ == null) { + ensureProductDetailsIsMutable(); + productDetails_.add(index, builderForValue.build()); onChanged(); } else { - loyaltyProgramsBuilder_.addMessage(index, builderForValue.build()); + productDetailsBuilder_.addMessage(index, builderForValue.build()); } return this; } @@ -22433,23 +51096,21 @@ public Builder addLoyaltyPrograms( * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder addAllLoyaltyPrograms( - java.lang.Iterable + public Builder addAllProductDetails( + java.lang.Iterable values) { - if (loyaltyProgramsBuilder_ == null) { - ensureLoyaltyProgramsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, loyaltyPrograms_); + if (productDetailsBuilder_ == null) { + ensureProductDetailsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, productDetails_); onChanged(); } else { - loyaltyProgramsBuilder_.addAllMessages(values); + productDetailsBuilder_.addAllMessages(values); } return this; } @@ -22458,21 +51119,19 @@ public Builder addAllLoyaltyPrograms( * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder clearLoyaltyPrograms() { - if (loyaltyProgramsBuilder_ == null) { - loyaltyPrograms_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x40000000); + public Builder clearProductDetails() { + if (productDetailsBuilder_ == null) { + productDetails_ = java.util.Collections.emptyList(); + bitField2_ = (bitField2_ & ~0x00000008); onChanged(); } else { - loyaltyProgramsBuilder_.clear(); + productDetailsBuilder_.clear(); } return this; } @@ -22481,21 +51140,19 @@ public Builder clearLoyaltyPrograms() { * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public Builder removeLoyaltyPrograms(int index) { - if (loyaltyProgramsBuilder_ == null) { - ensureLoyaltyProgramsIsMutable(); - loyaltyPrograms_.remove(index); + public Builder removeProductDetails(int index) { + if (productDetailsBuilder_ == null) { + ensureProductDetailsIsMutable(); + productDetails_.remove(index); onChanged(); } else { - loyaltyProgramsBuilder_.remove(index); + productDetailsBuilder_.remove(index); } return this; } @@ -22504,37 +51161,33 @@ public Builder removeLoyaltyPrograms(int index) { * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder - getLoyaltyProgramsBuilder(int index) { - return internalGetLoyaltyProgramsFieldBuilder().getBuilder(index); + public com.google.shopping.merchant.products.v1.ProductDetail.Builder getProductDetailsBuilder( + int index) { + return internalGetProductDetailsFieldBuilder().getBuilder(index); } /** * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder - getLoyaltyProgramsOrBuilder(int index) { - if (loyaltyProgramsBuilder_ == null) { - return loyaltyPrograms_.get(index); + public com.google.shopping.merchant.products.v1.ProductDetailOrBuilder + getProductDetailsOrBuilder(int index) { + if (productDetailsBuilder_ == null) { + return productDetails_.get(index); } else { - return loyaltyProgramsBuilder_.getMessageOrBuilder(index); + return productDetailsBuilder_.getMessageOrBuilder(index); } } @@ -22542,21 +51195,18 @@ public Builder removeLoyaltyPrograms(int index) { * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public java.util.List< - ? extends com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder> - getLoyaltyProgramsOrBuilderList() { - if (loyaltyProgramsBuilder_ != null) { - return loyaltyProgramsBuilder_.getMessageOrBuilderList(); + public java.util.List + getProductDetailsOrBuilderList() { + if (productDetailsBuilder_ != null) { + return productDetailsBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(loyaltyPrograms_); + return java.util.Collections.unmodifiableList(productDetails_); } } @@ -22564,174 +51214,168 @@ public Builder removeLoyaltyPrograms(int index) { * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder - addLoyaltyProgramsBuilder() { - return internalGetLoyaltyProgramsFieldBuilder() - .addBuilder(com.google.shopping.merchant.products.v1.LoyaltyProgram.getDefaultInstance()); + public com.google.shopping.merchant.products.v1.ProductDetail.Builder + addProductDetailsBuilder() { + return internalGetProductDetailsFieldBuilder() + .addBuilder(com.google.shopping.merchant.products.v1.ProductDetail.getDefaultInstance()); } /** * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder - addLoyaltyProgramsBuilder(int index) { - return internalGetLoyaltyProgramsFieldBuilder() + public com.google.shopping.merchant.products.v1.ProductDetail.Builder addProductDetailsBuilder( + int index) { + return internalGetProductDetailsFieldBuilder() .addBuilder( - index, com.google.shopping.merchant.products.v1.LoyaltyProgram.getDefaultInstance()); + index, com.google.shopping.merchant.products.v1.ProductDetail.getDefaultInstance()); } /** * * *
-     * A list of loyalty program information that is used to surface loyalty
-     * benefits (for example, better pricing, points, etc) to the user of this
-     * item.
+     * Technical specification or additional product details.
      * 
* - * repeated .google.shopping.merchant.products.v1.LoyaltyProgram loyalty_programs = 136; + * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; * */ - public java.util.List - getLoyaltyProgramsBuilderList() { - return internalGetLoyaltyProgramsFieldBuilder().getBuilderList(); + public java.util.List + getProductDetailsBuilderList() { + return internalGetProductDetailsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.LoyaltyProgram, - com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder, - com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder> - internalGetLoyaltyProgramsFieldBuilder() { - if (loyaltyProgramsBuilder_ == null) { - loyaltyProgramsBuilder_ = + com.google.shopping.merchant.products.v1.ProductDetail, + com.google.shopping.merchant.products.v1.ProductDetail.Builder, + com.google.shopping.merchant.products.v1.ProductDetailOrBuilder> + internalGetProductDetailsFieldBuilder() { + if (productDetailsBuilder_ == null) { + productDetailsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.LoyaltyProgram, - com.google.shopping.merchant.products.v1.LoyaltyProgram.Builder, - com.google.shopping.merchant.products.v1.LoyaltyProgramOrBuilder>( - loyaltyPrograms_, - ((bitField0_ & 0x40000000) != 0), + com.google.shopping.merchant.products.v1.ProductDetail, + com.google.shopping.merchant.products.v1.ProductDetail.Builder, + com.google.shopping.merchant.products.v1.ProductDetailOrBuilder>( + productDetails_, + ((bitField2_ & 0x00000008) != 0), getParentForChildren(), isClean()); - loyaltyPrograms_ = null; + productDetails_ = null; } - return loyaltyProgramsBuilder_; + return productDetailsBuilder_; } - private com.google.protobuf.LazyStringArrayList productTypes_ = + private com.google.protobuf.LazyStringArrayList productHighlights_ = com.google.protobuf.LazyStringArrayList.emptyList(); - private void ensureProductTypesIsMutable() { - if (!productTypes_.isModifiable()) { - productTypes_ = new com.google.protobuf.LazyStringArrayList(productTypes_); + private void ensureProductHighlightsIsMutable() { + if (!productHighlights_.isModifiable()) { + productHighlights_ = new com.google.protobuf.LazyStringArrayList(productHighlights_); } - bitField0_ |= 0x80000000; + bitField2_ |= 0x00000010; } /** * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * - * @return A list containing the productTypes. + * @return A list containing the productHighlights. */ - public com.google.protobuf.ProtocolStringList getProductTypesList() { - productTypes_.makeImmutable(); - return productTypes_; + public com.google.protobuf.ProtocolStringList getProductHighlightsList() { + productHighlights_.makeImmutable(); + return productHighlights_; } /** * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * - * @return The count of productTypes. + * @return The count of productHighlights. */ - public int getProductTypesCount() { - return productTypes_.size(); + public int getProductHighlightsCount() { + return productHighlights_.size(); } /** * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * * @param index The index of the element to return. - * @return The productTypes at the given index. + * @return The productHighlights at the given index. */ - public java.lang.String getProductTypes(int index) { - return productTypes_.get(index); + public java.lang.String getProductHighlights(int index) { + return productHighlights_.get(index); } /** * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * * @param index The index of the value to return. - * @return The bytes of the productTypes at the given index. + * @return The bytes of the productHighlights at the given index. */ - public com.google.protobuf.ByteString getProductTypesBytes(int index) { - return productTypes_.getByteString(index); + public com.google.protobuf.ByteString getProductHighlightsBytes(int index) { + return productHighlights_.getByteString(index); } /** * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * * @param index The index to set the value at. - * @param value The productTypes to set. + * @param value The productHighlights to set. * @return This builder for chaining. */ - public Builder setProductTypes(int index, java.lang.String value) { + public Builder setProductHighlights(int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } - ensureProductTypesIsMutable(); - productTypes_.set(index, value); - bitField0_ |= 0x80000000; + ensureProductHighlightsIsMutable(); + productHighlights_.set(index, value); + bitField2_ |= 0x00000010; onChanged(); return this; } @@ -22740,22 +51384,22 @@ public Builder setProductTypes(int index, java.lang.String value) { * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * - * @param value The productTypes to add. + * @param value The productHighlights to add. * @return This builder for chaining. */ - public Builder addProductTypes(java.lang.String value) { + public Builder addProductHighlights(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - ensureProductTypesIsMutable(); - productTypes_.add(value); - bitField0_ |= 0x80000000; + ensureProductHighlightsIsMutable(); + productHighlights_.add(value); + bitField2_ |= 0x00000010; onChanged(); return this; } @@ -22764,19 +51408,19 @@ public Builder addProductTypes(java.lang.String value) { * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * - * @param values The productTypes to add. + * @param values The productHighlights to add. * @return This builder for chaining. */ - public Builder addAllProductTypes(java.lang.Iterable values) { - ensureProductTypesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, productTypes_); - bitField0_ |= 0x80000000; + public Builder addAllProductHighlights(java.lang.Iterable values) { + ensureProductHighlightsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, productHighlights_); + bitField2_ |= 0x00000010; onChanged(); return this; } @@ -22785,17 +51429,17 @@ public Builder addAllProductTypes(java.lang.Iterable values) { * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * * @return This builder for chaining. */ - public Builder clearProductTypes() { - productTypes_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField0_ = (bitField0_ & ~0x80000000); + public Builder clearProductHighlights() { + productHighlights_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField2_ = (bitField2_ & ~0x00000010); ; onChanged(); return this; @@ -22805,67 +51449,64 @@ public Builder clearProductTypes() { * * *
-     * Categories of the item (formatted as in [product data
-     * specification](https://support.google.com/merchants/answer/7052112#product_category)).
+     * Bullet points describing the most relevant [product
+     * highlights](https://support.google.com/merchants/answer/9216100).
      * 
* - * repeated string product_types = 35; + * repeated string product_highlights = 64; * - * @param value The bytes of the productTypes to add. + * @param value The bytes of the productHighlights to add. * @return This builder for chaining. */ - public Builder addProductTypesBytes(com.google.protobuf.ByteString value) { + public Builder addProductHighlightsBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - ensureProductTypesIsMutable(); - productTypes_.add(value); - bitField0_ |= 0x80000000; + ensureProductHighlightsIsMutable(); + productHighlights_.add(value); + bitField2_ |= 0x00000010; onChanged(); return this; } - private com.google.shopping.type.Price salePrice_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - salePriceBuilder_; + private java.lang.Object displayAdsId_ = ""; /** * * *
-     * Advertised sale price of the item.
+     * An identifier for an item for dynamic remarketing campaigns.
      * 
* - * .google.shopping.type.Price sale_price = 36; + * optional string display_ads_id = 65; * - * @return Whether the salePrice field is set. + * @return Whether the displayAdsId field is set. */ - public boolean hasSalePrice() { - return ((bitField1_ & 0x00000001) != 0); + public boolean hasDisplayAdsId() { + return ((bitField2_ & 0x00000020) != 0); } /** * * *
-     * Advertised sale price of the item.
+     * An identifier for an item for dynamic remarketing campaigns.
      * 
* - * .google.shopping.type.Price sale_price = 36; + * optional string display_ads_id = 65; * - * @return The salePrice. + * @return The displayAdsId. */ - public com.google.shopping.type.Price getSalePrice() { - if (salePriceBuilder_ == null) { - return salePrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : salePrice_; + public java.lang.String getDisplayAdsId() { + java.lang.Object ref = displayAdsId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayAdsId_ = s; + return s; } else { - return salePriceBuilder_.getMessage(); + return (java.lang.String) ref; } } @@ -22873,41 +51514,43 @@ public com.google.shopping.type.Price getSalePrice() { * * *
-     * Advertised sale price of the item.
+     * An identifier for an item for dynamic remarketing campaigns.
      * 
* - * .google.shopping.type.Price sale_price = 36; + * optional string display_ads_id = 65; + * + * @return The bytes for displayAdsId. */ - public Builder setSalePrice(com.google.shopping.type.Price value) { - if (salePriceBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - salePrice_ = value; + public com.google.protobuf.ByteString getDisplayAdsIdBytes() { + java.lang.Object ref = displayAdsId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayAdsId_ = b; + return b; } else { - salePriceBuilder_.setMessage(value); + return (com.google.protobuf.ByteString) ref; } - bitField1_ |= 0x00000001; - onChanged(); - return this; } /** * * *
-     * Advertised sale price of the item.
+     * An identifier for an item for dynamic remarketing campaigns.
      * 
* - * .google.shopping.type.Price sale_price = 36; + * optional string display_ads_id = 65; + * + * @param value The displayAdsId to set. + * @return This builder for chaining. */ - public Builder setSalePrice(com.google.shopping.type.Price.Builder builderForValue) { - if (salePriceBuilder_ == null) { - salePrice_ = builderForValue.build(); - } else { - salePriceBuilder_.setMessage(builderForValue.build()); + public Builder setDisplayAdsId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - bitField1_ |= 0x00000001; + displayAdsId_ = value; + bitField2_ |= 0x00000020; onChanged(); return this; } @@ -22916,27 +51559,17 @@ public Builder setSalePrice(com.google.shopping.type.Price.Builder builderForVal * * *
-     * Advertised sale price of the item.
+     * An identifier for an item for dynamic remarketing campaigns.
      * 
* - * .google.shopping.type.Price sale_price = 36; + * optional string display_ads_id = 65; + * + * @return This builder for chaining. */ - public Builder mergeSalePrice(com.google.shopping.type.Price value) { - if (salePriceBuilder_ == null) { - if (((bitField1_ & 0x00000001) != 0) - && salePrice_ != null - && salePrice_ != com.google.shopping.type.Price.getDefaultInstance()) { - getSalePriceBuilder().mergeFrom(value); - } else { - salePrice_ = value; - } - } else { - salePriceBuilder_.mergeFrom(value); - } - if (salePrice_ != null) { - bitField1_ |= 0x00000001; - onChanged(); - } + public Builder clearDisplayAdsId() { + displayAdsId_ = getDefaultInstance().getDisplayAdsId(); + bitField2_ = (bitField2_ & ~0x00000020); + onChanged(); return this; } @@ -22944,218 +51577,307 @@ public Builder mergeSalePrice(com.google.shopping.type.Price value) { * * *
-     * Advertised sale price of the item.
+     * An identifier for an item for dynamic remarketing campaigns.
      * 
* - * .google.shopping.type.Price sale_price = 36; + * optional string display_ads_id = 65; + * + * @param value The bytes for displayAdsId to set. + * @return This builder for chaining. */ - public Builder clearSalePrice() { - bitField1_ = (bitField1_ & ~0x00000001); - salePrice_ = null; - if (salePriceBuilder_ != null) { - salePriceBuilder_.dispose(); - salePriceBuilder_ = null; + public Builder setDisplayAdsIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayAdsId_ = value; + bitField2_ |= 0x00000020; onChanged(); return this; } + private com.google.protobuf.LazyStringArrayList displayAdsSimilarIds_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureDisplayAdsSimilarIdsIsMutable() { + if (!displayAdsSimilarIds_.isModifiable()) { + displayAdsSimilarIds_ = new com.google.protobuf.LazyStringArrayList(displayAdsSimilarIds_); + } + bitField2_ |= 0x00000040; + } + /** * * *
-     * Advertised sale price of the item.
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.type.Price sale_price = 36; + * repeated string display_ads_similar_ids = 66; + * + * @return A list containing the displayAdsSimilarIds. */ - public com.google.shopping.type.Price.Builder getSalePriceBuilder() { - bitField1_ |= 0x00000001; - onChanged(); - return internalGetSalePriceFieldBuilder().getBuilder(); + public com.google.protobuf.ProtocolStringList getDisplayAdsSimilarIdsList() { + displayAdsSimilarIds_.makeImmutable(); + return displayAdsSimilarIds_; } /** * * *
-     * Advertised sale price of the item.
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.type.Price sale_price = 36; + * repeated string display_ads_similar_ids = 66; + * + * @return The count of displayAdsSimilarIds. */ - public com.google.shopping.type.PriceOrBuilder getSalePriceOrBuilder() { - if (salePriceBuilder_ != null) { - return salePriceBuilder_.getMessageOrBuilder(); - } else { - return salePrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : salePrice_; + public int getDisplayAdsSimilarIdsCount() { + return displayAdsSimilarIds_.size(); + } + + /** + * + * + *
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
+     * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @param index The index of the element to return. + * @return The displayAdsSimilarIds at the given index. + */ + public java.lang.String getDisplayAdsSimilarIds(int index) { + return displayAdsSimilarIds_.get(index); + } + + /** + * + * + *
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
+     * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @param index The index of the value to return. + * @return The bytes of the displayAdsSimilarIds at the given index. + */ + public com.google.protobuf.ByteString getDisplayAdsSimilarIdsBytes(int index) { + return displayAdsSimilarIds_.getByteString(index); + } + + /** + * + * + *
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
+     * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @param index The index to set the value at. + * @param value The displayAdsSimilarIds to set. + * @return This builder for chaining. + */ + public Builder setDisplayAdsSimilarIds(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + ensureDisplayAdsSimilarIdsIsMutable(); + displayAdsSimilarIds_.set(index, value); + bitField2_ |= 0x00000040; + onChanged(); + return this; } /** * * *
-     * Advertised sale price of the item.
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.type.Price sale_price = 36; + * repeated string display_ads_similar_ids = 66; + * + * @param value The displayAdsSimilarIds to add. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - internalGetSalePriceFieldBuilder() { - if (salePriceBuilder_ == null) { - salePriceBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder>( - getSalePrice(), getParentForChildren(), isClean()); - salePrice_ = null; + public Builder addDisplayAdsSimilarIds(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - return salePriceBuilder_; + ensureDisplayAdsSimilarIdsIsMutable(); + displayAdsSimilarIds_.add(value); + bitField2_ |= 0x00000040; + onChanged(); + return this; } - private com.google.type.Interval salePriceEffectiveDate_; - private com.google.protobuf.SingleFieldBuilder< - com.google.type.Interval, - com.google.type.Interval.Builder, - com.google.type.IntervalOrBuilder> - salePriceEffectiveDateBuilder_; + /** + * + * + *
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
+     * 
+ * + * repeated string display_ads_similar_ids = 66; + * + * @param values The displayAdsSimilarIds to add. + * @return This builder for chaining. + */ + public Builder addAllDisplayAdsSimilarIds(java.lang.Iterable values) { + ensureDisplayAdsSimilarIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, displayAdsSimilarIds_); + bitField2_ |= 0x00000040; + onChanged(); + return this; + } /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * repeated string display_ads_similar_ids = 66; * - * @return Whether the salePriceEffectiveDate field is set. + * @return This builder for chaining. */ - public boolean hasSalePriceEffectiveDate() { - return ((bitField1_ & 0x00000002) != 0); + public Builder clearDisplayAdsSimilarIds() { + displayAdsSimilarIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField2_ = (bitField2_ & ~0x00000040); + ; + onChanged(); + return this; } /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Advertiser-specified recommendations. For more information, see
+     * [Display ads attribute
+     * specification](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * repeated string display_ads_similar_ids = 66; * - * @return The salePriceEffectiveDate. + * @param value The bytes of the displayAdsSimilarIds to add. + * @return This builder for chaining. */ - public com.google.type.Interval getSalePriceEffectiveDate() { - if (salePriceEffectiveDateBuilder_ == null) { - return salePriceEffectiveDate_ == null - ? com.google.type.Interval.getDefaultInstance() - : salePriceEffectiveDate_; - } else { - return salePriceEffectiveDateBuilder_.getMessage(); + public Builder addDisplayAdsSimilarIdsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureDisplayAdsSimilarIdsIsMutable(); + displayAdsSimilarIds_.add(value); + bitField2_ |= 0x00000040; + onChanged(); + return this; } + private java.lang.Object displayAdsTitle_ = ""; + /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Title of an item for dynamic remarketing campaigns.
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * optional string display_ads_title = 67; + * + * @return Whether the displayAdsTitle field is set. */ - public Builder setSalePriceEffectiveDate(com.google.type.Interval value) { - if (salePriceEffectiveDateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - salePriceEffectiveDate_ = value; - } else { - salePriceEffectiveDateBuilder_.setMessage(value); - } - bitField1_ |= 0x00000002; - onChanged(); - return this; + public boolean hasDisplayAdsTitle() { + return ((bitField2_ & 0x00000080) != 0); } /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Title of an item for dynamic remarketing campaigns.
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * optional string display_ads_title = 67; + * + * @return The displayAdsTitle. */ - public Builder setSalePriceEffectiveDate(com.google.type.Interval.Builder builderForValue) { - if (salePriceEffectiveDateBuilder_ == null) { - salePriceEffectiveDate_ = builderForValue.build(); + public java.lang.String getDisplayAdsTitle() { + java.lang.Object ref = displayAdsTitle_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayAdsTitle_ = s; + return s; } else { - salePriceEffectiveDateBuilder_.setMessage(builderForValue.build()); + return (java.lang.String) ref; } - bitField1_ |= 0x00000002; - onChanged(); - return this; } /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Title of an item for dynamic remarketing campaigns.
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * optional string display_ads_title = 67; + * + * @return The bytes for displayAdsTitle. */ - public Builder mergeSalePriceEffectiveDate(com.google.type.Interval value) { - if (salePriceEffectiveDateBuilder_ == null) { - if (((bitField1_ & 0x00000002) != 0) - && salePriceEffectiveDate_ != null - && salePriceEffectiveDate_ != com.google.type.Interval.getDefaultInstance()) { - getSalePriceEffectiveDateBuilder().mergeFrom(value); - } else { - salePriceEffectiveDate_ = value; - } + public com.google.protobuf.ByteString getDisplayAdsTitleBytes() { + java.lang.Object ref = displayAdsTitle_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayAdsTitle_ = b; + return b; } else { - salePriceEffectiveDateBuilder_.mergeFrom(value); - } - if (salePriceEffectiveDate_ != null) { - bitField1_ |= 0x00000002; - onChanged(); + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Title of an item for dynamic remarketing campaigns.
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * optional string display_ads_title = 67; + * + * @param value The displayAdsTitle to set. + * @return This builder for chaining. */ - public Builder clearSalePriceEffectiveDate() { - bitField1_ = (bitField1_ & ~0x00000002); - salePriceEffectiveDate_ = null; - if (salePriceEffectiveDateBuilder_ != null) { - salePriceEffectiveDateBuilder_.dispose(); - salePriceEffectiveDateBuilder_ = null; + public Builder setDisplayAdsTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + displayAdsTitle_ = value; + bitField2_ |= 0x00000080; onChanged(); return this; } @@ -23164,118 +51886,128 @@ public Builder clearSalePriceEffectiveDate() { * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Title of an item for dynamic remarketing campaigns.
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * optional string display_ads_title = 67; + * + * @return This builder for chaining. */ - public com.google.type.Interval.Builder getSalePriceEffectiveDateBuilder() { - bitField1_ |= 0x00000002; + public Builder clearDisplayAdsTitle() { + displayAdsTitle_ = getDefaultInstance().getDisplayAdsTitle(); + bitField2_ = (bitField2_ & ~0x00000080); onChanged(); - return internalGetSalePriceEffectiveDateFieldBuilder().getBuilder(); + return this; } /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * Title of an item for dynamic remarketing campaigns.
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * optional string display_ads_title = 67; + * + * @param value The bytes for displayAdsTitle to set. + * @return This builder for chaining. */ - public com.google.type.IntervalOrBuilder getSalePriceEffectiveDateOrBuilder() { - if (salePriceEffectiveDateBuilder_ != null) { - return salePriceEffectiveDateBuilder_.getMessageOrBuilder(); - } else { - return salePriceEffectiveDate_ == null - ? com.google.type.Interval.getDefaultInstance() - : salePriceEffectiveDate_; + public Builder setDisplayAdsTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayAdsTitle_ = value; + bitField2_ |= 0x00000080; + onChanged(); + return this; } + private java.lang.Object displayAdsLink_ = ""; + /** * * *
-     * Date range during which the item is on sale, see [product data
-     * specification](https://support.google.com/merchants/answer/7052112#price_and_availability).
+     * URL directly to your item's landing page for dynamic remarketing
+     * campaigns.
      * 
* - * .google.type.Interval sale_price_effective_date = 37; + * optional string display_ads_link = 68; + * + * @return Whether the displayAdsLink field is set. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.type.Interval, - com.google.type.Interval.Builder, - com.google.type.IntervalOrBuilder> - internalGetSalePriceEffectiveDateFieldBuilder() { - if (salePriceEffectiveDateBuilder_ == null) { - salePriceEffectiveDateBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.type.Interval, - com.google.type.Interval.Builder, - com.google.type.IntervalOrBuilder>( - getSalePriceEffectiveDate(), getParentForChildren(), isClean()); - salePriceEffectiveDate_ = null; - } - return salePriceEffectiveDateBuilder_; + public boolean hasDisplayAdsLink() { + return ((bitField2_ & 0x00000100) != 0); } - private long sellOnGoogleQuantity_; - /** * * *
-     * The quantity of the product that is available for selling on Google.
-     * Supported only for online products.
+     * URL directly to your item's landing page for dynamic remarketing
+     * campaigns.
      * 
* - * optional int64 sell_on_google_quantity = 38; + * optional string display_ads_link = 68; * - * @return Whether the sellOnGoogleQuantity field is set. + * @return The displayAdsLink. */ - @java.lang.Override - public boolean hasSellOnGoogleQuantity() { - return ((bitField1_ & 0x00000004) != 0); + public java.lang.String getDisplayAdsLink() { + java.lang.Object ref = displayAdsLink_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayAdsLink_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** * * *
-     * The quantity of the product that is available for selling on Google.
-     * Supported only for online products.
+     * URL directly to your item's landing page for dynamic remarketing
+     * campaigns.
      * 
* - * optional int64 sell_on_google_quantity = 38; + * optional string display_ads_link = 68; * - * @return The sellOnGoogleQuantity. + * @return The bytes for displayAdsLink. */ - @java.lang.Override - public long getSellOnGoogleQuantity() { - return sellOnGoogleQuantity_; + public com.google.protobuf.ByteString getDisplayAdsLinkBytes() { + java.lang.Object ref = displayAdsLink_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + displayAdsLink_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** * * *
-     * The quantity of the product that is available for selling on Google.
-     * Supported only for online products.
+     * URL directly to your item's landing page for dynamic remarketing
+     * campaigns.
      * 
* - * optional int64 sell_on_google_quantity = 38; + * optional string display_ads_link = 68; * - * @param value The sellOnGoogleQuantity to set. + * @param value The displayAdsLink to set. * @return This builder for chaining. */ - public Builder setSellOnGoogleQuantity(long value) { - - sellOnGoogleQuantity_ = value; - bitField1_ |= 0x00000004; + public Builder setDisplayAdsLink(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + displayAdsLink_ = value; + bitField2_ |= 0x00000100; onChanged(); return this; } @@ -23284,113 +52016,101 @@ public Builder setSellOnGoogleQuantity(long value) { * * *
-     * The quantity of the product that is available for selling on Google.
-     * Supported only for online products.
+     * URL directly to your item's landing page for dynamic remarketing
+     * campaigns.
      * 
* - * optional int64 sell_on_google_quantity = 38; + * optional string display_ads_link = 68; * * @return This builder for chaining. */ - public Builder clearSellOnGoogleQuantity() { - bitField1_ = (bitField1_ & ~0x00000004); - sellOnGoogleQuantity_ = 0L; + public Builder clearDisplayAdsLink() { + displayAdsLink_ = getDefaultInstance().getDisplayAdsLink(); + bitField2_ = (bitField2_ & ~0x00000100); onChanged(); return this; } - private com.google.shopping.merchant.products.v1.ProductDimension productHeight_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> - productHeightBuilder_; - /** * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * URL directly to your item's landing page for dynamic remarketing
+     * campaigns.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * optional string display_ads_link = 68; * - * @return Whether the productHeight field is set. + * @param value The bytes for displayAdsLink to set. + * @return This builder for chaining. */ - public boolean hasProductHeight() { - return ((bitField1_ & 0x00000008) != 0); + public Builder setDisplayAdsLinkBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + displayAdsLink_ = value; + bitField2_ |= 0x00000100; + onChanged(); + return this; } + private double displayAdsValue_; + /** * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Offer margin for dynamic remarketing campaigns. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * optional double display_ads_value = 69; * - * @return The productHeight. + * @return Whether the displayAdsValue field is set. */ - public com.google.shopping.merchant.products.v1.ProductDimension getProductHeight() { - if (productHeightBuilder_ == null) { - return productHeight_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productHeight_; - } else { - return productHeightBuilder_.getMessage(); - } + @java.lang.Override + public boolean hasDisplayAdsValue() { + return ((bitField2_ & 0x00000200) != 0); } /** * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Offer margin for dynamic remarketing campaigns. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * optional double display_ads_value = 69; + * + * @return The displayAdsValue. */ - public Builder setProductHeight( - com.google.shopping.merchant.products.v1.ProductDimension value) { - if (productHeightBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - productHeight_ = value; - } else { - productHeightBuilder_.setMessage(value); - } - bitField1_ |= 0x00000008; - onChanged(); - return this; + @java.lang.Override + public double getDisplayAdsValue() { + return displayAdsValue_; } /** * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Offer margin for dynamic remarketing campaigns. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * optional double display_ads_value = 69; + * + * @param value The displayAdsValue to set. + * @return This builder for chaining. */ - public Builder setProductHeight( - com.google.shopping.merchant.products.v1.ProductDimension.Builder builderForValue) { - if (productHeightBuilder_ == null) { - productHeight_ = builderForValue.build(); - } else { - productHeightBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000008; + public Builder setDisplayAdsValue(double value) { + + displayAdsValue_ = value; + bitField2_ |= 0x00000200; onChanged(); return this; } @@ -23399,190 +52119,138 @@ public Builder setProductHeight( * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Offer margin for dynamic remarketing campaigns. For more information, see
+     * [Display ads
+     * attribute](https://support.google.com/merchants/answer/6069387).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * optional double display_ads_value = 69; + * + * @return This builder for chaining. */ - public Builder mergeProductHeight( - com.google.shopping.merchant.products.v1.ProductDimension value) { - if (productHeightBuilder_ == null) { - if (((bitField1_ & 0x00000008) != 0) - && productHeight_ != null - && productHeight_ - != com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance()) { - getProductHeightBuilder().mergeFrom(value); - } else { - productHeight_ = value; - } - } else { - productHeightBuilder_.mergeFrom(value); - } - if (productHeight_ != null) { - bitField1_ |= 0x00000008; - onChanged(); - } + public Builder clearDisplayAdsValue() { + bitField2_ = (bitField2_ & ~0x00000200); + displayAdsValue_ = 0D; + onChanged(); return this; } - /** - * - * - *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
-     * 
- * - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; - */ - public Builder clearProductHeight() { - bitField1_ = (bitField1_ & ~0x00000008); - productHeight_ = null; - if (productHeightBuilder_ != null) { - productHeightBuilder_.dispose(); - productHeightBuilder_ = null; + private com.google.protobuf.LazyStringArrayList promotionIds_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensurePromotionIdsIsMutable() { + if (!promotionIds_.isModifiable()) { + promotionIds_ = new com.google.protobuf.LazyStringArrayList(promotionIds_); } - onChanged(); - return this; + bitField2_ |= 0x00000400; } /** * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * repeated string promotion_ids = 70; + * + * @return A list containing the promotionIds. */ - public com.google.shopping.merchant.products.v1.ProductDimension.Builder - getProductHeightBuilder() { - bitField1_ |= 0x00000008; - onChanged(); - return internalGetProductHeightFieldBuilder().getBuilder(); + public com.google.protobuf.ProtocolStringList getPromotionIdsList() { + promotionIds_.makeImmutable(); + return promotionIds_; } /** * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * repeated string promotion_ids = 70; + * + * @return The count of promotionIds. */ - public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder - getProductHeightOrBuilder() { - if (productHeightBuilder_ != null) { - return productHeightBuilder_.getMessageOrBuilder(); - } else { - return productHeight_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productHeight_; - } + public int getPromotionIdsCount() { + return promotionIds_.size(); } /** * * *
-     * The height of the product in the units provided. The value must be
-     * between
-     * 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_height = 119; + * repeated string promotion_ids = 70; + * + * @param index The index of the element to return. + * @return The promotionIds at the given index. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> - internalGetProductHeightFieldBuilder() { - if (productHeightBuilder_ == null) { - productHeightBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder>( - getProductHeight(), getParentForChildren(), isClean()); - productHeight_ = null; - } - return productHeightBuilder_; + public java.lang.String getPromotionIds(int index) { + return promotionIds_.get(index); } - private com.google.shopping.merchant.products.v1.ProductDimension productLength_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> - productLengthBuilder_; - /** * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * repeated string promotion_ids = 70; * - * @return Whether the productLength field is set. + * @param index The index of the value to return. + * @return The bytes of the promotionIds at the given index. */ - public boolean hasProductLength() { - return ((bitField1_ & 0x00000010) != 0); + public com.google.protobuf.ByteString getPromotionIdsBytes(int index) { + return promotionIds_.getByteString(index); } /** * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * repeated string promotion_ids = 70; * - * @return The productLength. + * @param index The index to set the value at. + * @param value The promotionIds to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ProductDimension getProductLength() { - if (productLengthBuilder_ == null) { - return productLength_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productLength_; - } else { - return productLengthBuilder_.getMessage(); + public Builder setPromotionIds(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + ensurePromotionIdsIsMutable(); + promotionIds_.set(index, value); + bitField2_ |= 0x00000400; + onChanged(); + return this; } /** * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * repeated string promotion_ids = 70; + * + * @param value The promotionIds to add. + * @return This builder for chaining. */ - public Builder setProductLength( - com.google.shopping.merchant.products.v1.ProductDimension value) { - if (productLengthBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - productLength_ = value; - } else { - productLengthBuilder_.setMessage(value); + public Builder addPromotionIds(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - bitField1_ |= 0x00000010; + ensurePromotionIdsIsMutable(); + promotionIds_.add(value); + bitField2_ |= 0x00000400; onChanged(); return this; } @@ -23591,20 +52259,18 @@ public Builder setProductLength( * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * repeated string promotion_ids = 70; + * + * @param values The promotionIds to add. + * @return This builder for chaining. */ - public Builder setProductLength( - com.google.shopping.merchant.products.v1.ProductDimension.Builder builderForValue) { - if (productLengthBuilder_ == null) { - productLength_ = builderForValue.build(); - } else { - productLengthBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000010; + public Builder addAllPromotionIds(java.lang.Iterable values) { + ensurePromotionIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, promotionIds_); + bitField2_ |= 0x00000400; onChanged(); return this; } @@ -23613,30 +52279,18 @@ public Builder setProductLength( * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * repeated string promotion_ids = 70; + * + * @return This builder for chaining. */ - public Builder mergeProductLength( - com.google.shopping.merchant.products.v1.ProductDimension value) { - if (productLengthBuilder_ == null) { - if (((bitField1_ & 0x00000010) != 0) - && productLength_ != null - && productLength_ - != com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance()) { - getProductLengthBuilder().mergeFrom(value); - } else { - productLength_ = value; - } - } else { - productLengthBuilder_.mergeFrom(value); - } - if (productLength_ != null) { - bitField1_ |= 0x00000010; - onChanged(); - } + public Builder clearPromotionIds() { + promotionIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField2_ = (bitField2_ & ~0x00000400); + ; + onChanged(); return this; } @@ -23644,228 +52298,197 @@ public Builder mergeProductLength( * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The unique ID of a promotion.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * repeated string promotion_ids = 70; + * + * @param value The bytes of the promotionIds to add. + * @return This builder for chaining. */ - public Builder clearProductLength() { - bitField1_ = (bitField1_ & ~0x00000010); - productLength_ = null; - if (productLengthBuilder_ != null) { - productLengthBuilder_.dispose(); - productLengthBuilder_ = null; + public Builder addPromotionIdsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensurePromotionIdsIsMutable(); + promotionIds_.add(value); + bitField2_ |= 0x00000400; onChanged(); return this; } + private int pickupMethod_ = 0; + /** * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The [pickup](https://support.google.com/merchants/answer/14634021) option
+     * for the item.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * + * @return Whether the pickupMethod field is set. */ - public com.google.shopping.merchant.products.v1.ProductDimension.Builder - getProductLengthBuilder() { - bitField1_ |= 0x00000010; - onChanged(); - return internalGetProductLengthFieldBuilder().getBuilder(); + @java.lang.Override + public boolean hasPickupMethod() { + return ((bitField2_ & 0x00000800) != 0); } /** * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The [pickup](https://support.google.com/merchants/answer/14634021) option
+     * for the item.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * + * @return The enum numeric value on the wire for pickupMethod. */ - public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder - getProductLengthOrBuilder() { - if (productLengthBuilder_ != null) { - return productLengthBuilder_.getMessageOrBuilder(); - } else { - return productLength_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productLength_; - } + @java.lang.Override + public int getPickupMethodValue() { + return pickupMethod_; } /** * * *
-     * The length of the product in the units provided. The value must be
-     * between 0 (exclusive) and 3000 (inclusive).
+     * The [pickup](https://support.google.com/merchants/answer/14634021) option
+     * for the item.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_length = 120; + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * + * @param value The enum numeric value on the wire for pickupMethod to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> - internalGetProductLengthFieldBuilder() { - if (productLengthBuilder_ == null) { - productLengthBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder>( - getProductLength(), getParentForChildren(), isClean()); - productLength_ = null; - } - return productLengthBuilder_; + public Builder setPickupMethodValue(int value) { + pickupMethod_ = value; + bitField2_ |= 0x00000800; + onChanged(); + return this; } - private com.google.shopping.merchant.products.v1.ProductDimension productWidth_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> - productWidthBuilder_; - /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * The [pickup](https://support.google.com/merchants/answer/14634021) option
+     * for the item.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; * - * @return Whether the productWidth field is set. + * @return The pickupMethod. */ - public boolean hasProductWidth() { - return ((bitField1_ & 0x00000020) != 0); + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupMethod getPickupMethod() { + com.google.shopping.merchant.products.v1.PickupMethod result = + com.google.shopping.merchant.products.v1.PickupMethod.forNumber(pickupMethod_); + return result == null + ? com.google.shopping.merchant.products.v1.PickupMethod.UNRECOGNIZED + : result; } /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * The [pickup](https://support.google.com/merchants/answer/14634021) option
+     * for the item.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; * - * @return The productWidth. + * @param value The pickupMethod to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ProductDimension getProductWidth() { - if (productWidthBuilder_ == null) { - return productWidth_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productWidth_; - } else { - return productWidthBuilder_.getMessage(); + public Builder setPickupMethod(com.google.shopping.merchant.products.v1.PickupMethod value) { + if (value == null) { + throw new NullPointerException(); } + bitField2_ |= 0x00000800; + pickupMethod_ = value.getNumber(); + onChanged(); + return this; } /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * The [pickup](https://support.google.com/merchants/answer/14634021) option
+     * for the item.
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * + * @return This builder for chaining. */ - public Builder setProductWidth( - com.google.shopping.merchant.products.v1.ProductDimension value) { - if (productWidthBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - productWidth_ = value; - } else { - productWidthBuilder_.setMessage(value); - } - bitField1_ |= 0x00000020; + public Builder clearPickupMethod() { + bitField2_ = (bitField2_ & ~0x00000800); + pickupMethod_ = 0; onChanged(); return this; } + private int pickupSla_ = 0; + /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Item store pickup timeline. For more information, see
+     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @return Whether the pickupSla field is set. */ - public Builder setProductWidth( - com.google.shopping.merchant.products.v1.ProductDimension.Builder builderForValue) { - if (productWidthBuilder_ == null) { - productWidth_ = builderForValue.build(); - } else { - productWidthBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000020; - onChanged(); - return this; + @java.lang.Override + public boolean hasPickupSla() { + return ((bitField2_ & 0x00001000) != 0); } /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Item store pickup timeline. For more information, see
+     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @return The enum numeric value on the wire for pickupSla. */ - public Builder mergeProductWidth( - com.google.shopping.merchant.products.v1.ProductDimension value) { - if (productWidthBuilder_ == null) { - if (((bitField1_ & 0x00000020) != 0) - && productWidth_ != null - && productWidth_ - != com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance()) { - getProductWidthBuilder().mergeFrom(value); - } else { - productWidth_ = value; - } - } else { - productWidthBuilder_.mergeFrom(value); - } - if (productWidth_ != null) { - bitField1_ |= 0x00000020; - onChanged(); - } - return this; + @java.lang.Override + public int getPickupSlaValue() { + return pickupSla_; } /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Item store pickup timeline. For more information, see
+     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @param value The enum numeric value on the wire for pickupSla to set. + * @return This builder for chaining. */ - public Builder clearProductWidth() { - bitField1_ = (bitField1_ & ~0x00000020); - productWidth_ = null; - if (productWidthBuilder_ != null) { - productWidthBuilder_.dispose(); - productWidthBuilder_ = null; - } + public Builder setPickupSlaValue(int value) { + pickupSla_ = value; + bitField2_ |= 0x00001000; onChanged(); return this; } @@ -23874,109 +52497,113 @@ public Builder clearProductWidth() { * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Item store pickup timeline. For more information, see
+     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @return The pickupSla. */ - public com.google.shopping.merchant.products.v1.ProductDimension.Builder - getProductWidthBuilder() { - bitField1_ |= 0x00000020; - onChanged(); - return internalGetProductWidthFieldBuilder().getBuilder(); + @java.lang.Override + public com.google.shopping.merchant.products.v1.PickupSla getPickupSla() { + com.google.shopping.merchant.products.v1.PickupSla result = + com.google.shopping.merchant.products.v1.PickupSla.forNumber(pickupSla_); + return result == null + ? com.google.shopping.merchant.products.v1.PickupSla.UNRECOGNIZED + : result; } /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Item store pickup timeline. For more information, see
+     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @param value The pickupSla to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder - getProductWidthOrBuilder() { - if (productWidthBuilder_ != null) { - return productWidthBuilder_.getMessageOrBuilder(); - } else { - return productWidth_ == null - ? com.google.shopping.merchant.products.v1.ProductDimension.getDefaultInstance() - : productWidth_; + public Builder setPickupSla(com.google.shopping.merchant.products.v1.PickupSla value) { + if (value == null) { + throw new NullPointerException(); } + bitField2_ |= 0x00001000; + pickupSla_ = value.getNumber(); + onChanged(); + return this; } /** * * *
-     * The width of the product in the units provided. The value must be between
-     * 0 (exclusive) and 3000 (inclusive).
+     * Item store pickup timeline. For more information, see
+     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
      * 
* - * .google.shopping.merchant.products.v1.ProductDimension product_width = 121; + * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder> - internalGetProductWidthFieldBuilder() { - if (productWidthBuilder_ == null) { - productWidthBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDimension, - com.google.shopping.merchant.products.v1.ProductDimension.Builder, - com.google.shopping.merchant.products.v1.ProductDimensionOrBuilder>( - getProductWidth(), getParentForChildren(), isClean()); - productWidth_ = null; - } - return productWidthBuilder_; + public Builder clearPickupSla() { + bitField2_ = (bitField2_ & ~0x00001000); + pickupSla_ = 0; + onChanged(); + return this; } - private com.google.shopping.merchant.products.v1.ProductWeight productWeight_; + private com.google.shopping.merchant.products.v1.PickupCost pickupCost_; private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductWeight, - com.google.shopping.merchant.products.v1.ProductWeight.Builder, - com.google.shopping.merchant.products.v1.ProductWeightOrBuilder> - productWeightBuilder_; + com.google.shopping.merchant.products.v1.PickupCost, + com.google.shopping.merchant.products.v1.PickupCost.Builder, + com.google.shopping.merchant.products.v1.PickupCostOrBuilder> + pickupCostBuilder_; /** * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return Whether the productWeight field is set. + * @return Whether the pickupCost field is set. */ - public boolean hasProductWeight() { - return ((bitField1_ & 0x00000040) != 0); + public boolean hasPickupCost() { + return ((bitField2_ & 0x00002000) != 0); } /** * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * * - * @return The productWeight. + * @return The pickupCost. */ - public com.google.shopping.merchant.products.v1.ProductWeight getProductWeight() { - if (productWeightBuilder_ == null) { - return productWeight_ == null - ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() - : productWeight_; + public com.google.shopping.merchant.products.v1.PickupCost getPickupCost() { + if (pickupCostBuilder_ == null) { + return pickupCost_ == null + ? com.google.shopping.merchant.products.v1.PickupCost.getDefaultInstance() + : pickupCost_; } else { - return productWeightBuilder_.getMessage(); + return pickupCostBuilder_.getMessage(); } } @@ -23984,22 +52611,25 @@ public com.google.shopping.merchant.products.v1.ProductWeight getProductWeight() * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setProductWeight(com.google.shopping.merchant.products.v1.ProductWeight value) { - if (productWeightBuilder_ == null) { + public Builder setPickupCost(com.google.shopping.merchant.products.v1.PickupCost value) { + if (pickupCostBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - productWeight_ = value; + pickupCost_ = value; } else { - productWeightBuilder_.setMessage(value); + pickupCostBuilder_.setMessage(value); } - bitField1_ |= 0x00000040; + bitField2_ |= 0x00002000; onChanged(); return this; } @@ -24008,20 +52638,23 @@ public Builder setProductWeight(com.google.shopping.merchant.products.v1.Product * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setProductWeight( - com.google.shopping.merchant.products.v1.ProductWeight.Builder builderForValue) { - if (productWeightBuilder_ == null) { - productWeight_ = builderForValue.build(); + public Builder setPickupCost( + com.google.shopping.merchant.products.v1.PickupCost.Builder builderForValue) { + if (pickupCostBuilder_ == null) { + pickupCost_ = builderForValue.build(); } else { - productWeightBuilder_.setMessage(builderForValue.build()); + pickupCostBuilder_.setMessage(builderForValue.build()); } - bitField1_ |= 0x00000040; + bitField2_ |= 0x00002000; onChanged(); return this; } @@ -24030,28 +52663,30 @@ public Builder setProductWeight( * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder mergeProductWeight( - com.google.shopping.merchant.products.v1.ProductWeight value) { - if (productWeightBuilder_ == null) { - if (((bitField1_ & 0x00000040) != 0) - && productWeight_ != null - && productWeight_ - != com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance()) { - getProductWeightBuilder().mergeFrom(value); + public Builder mergePickupCost(com.google.shopping.merchant.products.v1.PickupCost value) { + if (pickupCostBuilder_ == null) { + if (((bitField2_ & 0x00002000) != 0) + && pickupCost_ != null + && pickupCost_ + != com.google.shopping.merchant.products.v1.PickupCost.getDefaultInstance()) { + getPickupCostBuilder().mergeFrom(value); } else { - productWeight_ = value; + pickupCost_ = value; } } else { - productWeightBuilder_.mergeFrom(value); + pickupCostBuilder_.mergeFrom(value); } - if (productWeight_ != null) { - bitField1_ |= 0x00000040; + if (pickupCost_ != null) { + bitField2_ |= 0x00002000; onChanged(); } return this; @@ -24061,18 +52696,21 @@ public Builder mergeProductWeight( * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearProductWeight() { - bitField1_ = (bitField1_ & ~0x00000040); - productWeight_ = null; - if (productWeightBuilder_ != null) { - productWeightBuilder_.dispose(); - productWeightBuilder_ = null; + public Builder clearPickupCost() { + bitField2_ = (bitField2_ & ~0x00002000); + pickupCost_ = null; + if (pickupCostBuilder_ != null) { + pickupCostBuilder_.dispose(); + pickupCostBuilder_ = null; } onChanged(); return this; @@ -24082,37 +52720,41 @@ public Builder clearProductWeight() { * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.shopping.merchant.products.v1.ProductWeight.Builder - getProductWeightBuilder() { - bitField1_ |= 0x00000040; + public com.google.shopping.merchant.products.v1.PickupCost.Builder getPickupCostBuilder() { + bitField2_ |= 0x00002000; onChanged(); - return internalGetProductWeightFieldBuilder().getBuilder(); + return internalGetPickupCostFieldBuilder().getBuilder(); } /** * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.shopping.merchant.products.v1.ProductWeightOrBuilder - getProductWeightOrBuilder() { - if (productWeightBuilder_ != null) { - return productWeightBuilder_.getMessageOrBuilder(); + public com.google.shopping.merchant.products.v1.PickupCostOrBuilder getPickupCostOrBuilder() { + if (pickupCostBuilder_ != null) { + return pickupCostBuilder_.getMessageOrBuilder(); } else { - return productWeight_ == null - ? com.google.shopping.merchant.products.v1.ProductWeight.getDefaultInstance() - : productWeight_; + return pickupCost_ == null + ? com.google.shopping.merchant.products.v1.PickupCost.getDefaultInstance() + : pickupCost_; } } @@ -24120,77 +52762,71 @@ public Builder clearProductWeight() { * * *
-     * The weight of the product in the units provided. The value must be
-     * between 0 (exclusive) and 2000 (inclusive).
+     * Optional. The [pickup
+     * cost](https://support.google.com/merchants/answer/16988704) for an item
+     * when a customer buys it online and picks it up at a store.
      * 
* - * .google.shopping.merchant.products.v1.ProductWeight product_weight = 122; + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * */ private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductWeight, - com.google.shopping.merchant.products.v1.ProductWeight.Builder, - com.google.shopping.merchant.products.v1.ProductWeightOrBuilder> - internalGetProductWeightFieldBuilder() { - if (productWeightBuilder_ == null) { - productWeightBuilder_ = + com.google.shopping.merchant.products.v1.PickupCost, + com.google.shopping.merchant.products.v1.PickupCost.Builder, + com.google.shopping.merchant.products.v1.PickupCostOrBuilder> + internalGetPickupCostFieldBuilder() { + if (pickupCostBuilder_ == null) { + pickupCostBuilder_ = new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ProductWeight, - com.google.shopping.merchant.products.v1.ProductWeight.Builder, - com.google.shopping.merchant.products.v1.ProductWeightOrBuilder>( - getProductWeight(), getParentForChildren(), isClean()); - productWeight_ = null; - } - return productWeightBuilder_; - } - - private java.util.List shipping_ = - java.util.Collections.emptyList(); - - private void ensureShippingIsMutable() { - if (!((bitField1_ & 0x00000080) != 0)) { - shipping_ = - new java.util.ArrayList(shipping_); - bitField1_ |= 0x00000080; + com.google.shopping.merchant.products.v1.PickupCost, + com.google.shopping.merchant.products.v1.PickupCost.Builder, + com.google.shopping.merchant.products.v1.PickupCostOrBuilder>( + getPickupCost(), getParentForChildren(), isClean()); + pickupCost_ = null; } + return pickupCostBuilder_; } - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.Shipping, - com.google.shopping.merchant.products.v1.Shipping.Builder, - com.google.shopping.merchant.products.v1.ShippingOrBuilder> - shippingBuilder_; + private java.lang.Object linkTemplate_ = ""; /** * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13871172) for
+     * business hosted local storefront.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string link_template = 82; + * + * @return Whether the linkTemplate field is set. */ - public java.util.List getShippingList() { - if (shippingBuilder_ == null) { - return java.util.Collections.unmodifiableList(shipping_); - } else { - return shippingBuilder_.getMessageList(); - } + public boolean hasLinkTemplate() { + return ((bitField2_ & 0x00004000) != 0); } /** * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13871172) for
+     * business hosted local storefront.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string link_template = 82; + * + * @return The linkTemplate. */ - public int getShippingCount() { - if (shippingBuilder_ == null) { - return shipping_.size(); + public java.lang.String getLinkTemplate() { + java.lang.Object ref = linkTemplate_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + linkTemplate_ = s; + return s; } else { - return shippingBuilder_.getCount(); + return (java.lang.String) ref; } } @@ -24198,16 +52834,23 @@ public int getShippingCount() { * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13871172) for
+     * business hosted local storefront.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string link_template = 82; + * + * @return The bytes for linkTemplate. */ - public com.google.shopping.merchant.products.v1.Shipping getShipping(int index) { - if (shippingBuilder_ == null) { - return shipping_.get(index); + public com.google.protobuf.ByteString getLinkTemplateBytes() { + java.lang.Object ref = linkTemplate_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + linkTemplate_ = b; + return b; } else { - return shippingBuilder_.getMessage(index); + return (com.google.protobuf.ByteString) ref; } } @@ -24215,22 +52858,22 @@ public com.google.shopping.merchant.products.v1.Shipping getShipping(int index) * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13871172) for
+     * business hosted local storefront.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string link_template = 82; + * + * @param value The linkTemplate to set. + * @return This builder for chaining. */ - public Builder setShipping(int index, com.google.shopping.merchant.products.v1.Shipping value) { - if (shippingBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShippingIsMutable(); - shipping_.set(index, value); - onChanged(); - } else { - shippingBuilder_.setMessage(index, value); + public Builder setLinkTemplate(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + linkTemplate_ = value; + bitField2_ |= 0x00004000; + onChanged(); return this; } @@ -24238,20 +52881,18 @@ public Builder setShipping(int index, com.google.shopping.merchant.products.v1.S * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13871172) for
+     * business hosted local storefront.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string link_template = 82; + * + * @return This builder for chaining. */ - public Builder setShipping( - int index, com.google.shopping.merchant.products.v1.Shipping.Builder builderForValue) { - if (shippingBuilder_ == null) { - ensureShippingIsMutable(); - shipping_.set(index, builderForValue.build()); - onChanged(); - } else { - shippingBuilder_.setMessage(index, builderForValue.build()); - } + public Builder clearLinkTemplate() { + linkTemplate_ = getDefaultInstance().getLinkTemplate(); + bitField2_ = (bitField2_ & ~0x00004000); + onChanged(); return this; } @@ -24259,108 +52900,116 @@ public Builder setShipping( * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13871172) for
+     * business hosted local storefront.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string link_template = 82; + * + * @param value The bytes for linkTemplate to set. + * @return This builder for chaining. */ - public Builder addShipping(com.google.shopping.merchant.products.v1.Shipping value) { - if (shippingBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShippingIsMutable(); - shipping_.add(value); - onChanged(); - } else { - shippingBuilder_.addMessage(value); + public Builder setLinkTemplateBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + linkTemplate_ = value; + bitField2_ |= 0x00004000; + onChanged(); return this; } + private java.lang.Object mobileLinkTemplate_ = ""; + /** * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13870216) for
+     * business hosted local storefront optimized for mobile
+     * devices.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string mobile_link_template = 83; + * + * @return Whether the mobileLinkTemplate field is set. */ - public Builder addShipping(int index, com.google.shopping.merchant.products.v1.Shipping value) { - if (shippingBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShippingIsMutable(); - shipping_.add(index, value); - onChanged(); - } else { - shippingBuilder_.addMessage(index, value); - } - return this; + public boolean hasMobileLinkTemplate() { + return ((bitField2_ & 0x00008000) != 0); } /** * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13870216) for
+     * business hosted local storefront optimized for mobile
+     * devices.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string mobile_link_template = 83; + * + * @return The mobileLinkTemplate. */ - public Builder addShipping( - com.google.shopping.merchant.products.v1.Shipping.Builder builderForValue) { - if (shippingBuilder_ == null) { - ensureShippingIsMutable(); - shipping_.add(builderForValue.build()); - onChanged(); + public java.lang.String getMobileLinkTemplate() { + java.lang.Object ref = mobileLinkTemplate_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + mobileLinkTemplate_ = s; + return s; } else { - shippingBuilder_.addMessage(builderForValue.build()); + return (java.lang.String) ref; } - return this; } /** * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13870216) for
+     * business hosted local storefront optimized for mobile
+     * devices.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string mobile_link_template = 83; + * + * @return The bytes for mobileLinkTemplate. */ - public Builder addShipping( - int index, com.google.shopping.merchant.products.v1.Shipping.Builder builderForValue) { - if (shippingBuilder_ == null) { - ensureShippingIsMutable(); - shipping_.add(index, builderForValue.build()); - onChanged(); + public com.google.protobuf.ByteString getMobileLinkTemplateBytes() { + java.lang.Object ref = mobileLinkTemplate_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + mobileLinkTemplate_ = b; + return b; } else { - shippingBuilder_.addMessage(index, builderForValue.build()); + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13870216) for
+     * business hosted local storefront optimized for mobile
+     * devices.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string mobile_link_template = 83; + * + * @param value The mobileLinkTemplate to set. + * @return This builder for chaining. */ - public Builder addAllShipping( - java.lang.Iterable values) { - if (shippingBuilder_ == null) { - ensureShippingIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, shipping_); - onChanged(); - } else { - shippingBuilder_.addAllMessages(values); + public Builder setMobileLinkTemplate(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + mobileLinkTemplate_ = value; + bitField2_ |= 0x00008000; + onChanged(); return this; } @@ -24368,19 +53017,19 @@ public Builder addAllShipping( * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13870216) for
+     * business hosted local storefront optimized for mobile
+     * devices.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string mobile_link_template = 83; + * + * @return This builder for chaining. */ - public Builder clearShipping() { - if (shippingBuilder_ == null) { - shipping_ = java.util.Collections.emptyList(); - bitField1_ = (bitField1_ & ~0x00000080); - onChanged(); - } else { - shippingBuilder_.clear(); - } + public Builder clearMobileLinkTemplate() { + mobileLinkTemplate_ = getDefaultInstance().getMobileLinkTemplate(); + bitField2_ = (bitField2_ & ~0x00008000); + onChanged(); return this; } @@ -24388,50 +53037,66 @@ public Builder clearShipping() { * * *
-     * Shipping rules.
+     * [Link template](https://support.google.com/merchants/answer/13870216) for
+     * business hosted local storefront optimized for mobile
+     * devices.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string mobile_link_template = 83; + * + * @param value The bytes for mobileLinkTemplate to set. + * @return This builder for chaining. */ - public Builder removeShipping(int index) { - if (shippingBuilder_ == null) { - ensureShippingIsMutable(); - shipping_.remove(index); - onChanged(); - } else { - shippingBuilder_.remove(index); + public Builder setMobileLinkTemplateBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + mobileLinkTemplate_ = value; + bitField2_ |= 0x00008000; + onChanged(); return this; } + private java.lang.Object customLabel0_ = ""; + /** * * *
-     * Shipping rules.
+     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string custom_label_0 = 71; + * + * @return Whether the customLabel0 field is set. */ - public com.google.shopping.merchant.products.v1.Shipping.Builder getShippingBuilder(int index) { - return internalGetShippingFieldBuilder().getBuilder(index); + public boolean hasCustomLabel0() { + return ((bitField2_ & 0x00010000) != 0); } /** * * *
-     * Shipping rules.
+     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string custom_label_0 = 71; + * + * @return The customLabel0. */ - public com.google.shopping.merchant.products.v1.ShippingOrBuilder getShippingOrBuilder( - int index) { - if (shippingBuilder_ == null) { - return shipping_.get(index); + 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 shippingBuilder_.getMessageOrBuilder(index); + return (java.lang.String) ref; } } @@ -24439,17 +53104,23 @@ public com.google.shopping.merchant.products.v1.ShippingOrBuilder getShippingOrB * * *
-     * Shipping rules.
+     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string custom_label_0 = 71; + * + * @return The bytes for customLabel0. */ - public java.util.List - getShippingOrBuilderList() { - if (shippingBuilder_ != null) { - return shippingBuilder_.getMessageOrBuilderList(); + 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 java.util.Collections.unmodifiableList(shipping_); + return (com.google.protobuf.ByteString) ref; } } @@ -24457,139 +53128,107 @@ public com.google.shopping.merchant.products.v1.ShippingOrBuilder getShippingOrB * * *
-     * Shipping rules.
+     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string custom_label_0 = 71; + * + * @param value The customLabel0 to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.Shipping.Builder addShippingBuilder() { - return internalGetShippingFieldBuilder() - .addBuilder(com.google.shopping.merchant.products.v1.Shipping.getDefaultInstance()); + public Builder setCustomLabel0(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customLabel0_ = value; + bitField2_ |= 0x00010000; + onChanged(); + return this; } /** * * *
-     * Shipping rules.
+     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string custom_label_0 = 71; + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.Shipping.Builder addShippingBuilder(int index) { - return internalGetShippingFieldBuilder() - .addBuilder( - index, com.google.shopping.merchant.products.v1.Shipping.getDefaultInstance()); + public Builder clearCustomLabel0() { + customLabel0_ = getDefaultInstance().getCustomLabel0(); + bitField2_ = (bitField2_ & ~0x00010000); + onChanged(); + return this; } /** * * *
-     * Shipping rules.
+     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * repeated .google.shopping.merchant.products.v1.Shipping shipping = 39; + * optional string custom_label_0 = 71; + * + * @param value The bytes for customLabel0 to set. + * @return This builder for chaining. */ - public java.util.List - getShippingBuilderList() { - return internalGetShippingFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.Shipping, - com.google.shopping.merchant.products.v1.Shipping.Builder, - com.google.shopping.merchant.products.v1.ShippingOrBuilder> - internalGetShippingFieldBuilder() { - if (shippingBuilder_ == null) { - shippingBuilder_ = - new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.Shipping, - com.google.shopping.merchant.products.v1.Shipping.Builder, - com.google.shopping.merchant.products.v1.ShippingOrBuilder>( - shipping_, ((bitField1_ & 0x00000080) != 0), getParentForChildren(), isClean()); - shipping_ = null; - } - return shippingBuilder_; - } - - private java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping> - carrierShipping_ = java.util.Collections.emptyList(); - - private void ensureCarrierShippingIsMutable() { - if (!((bitField1_ & 0x00000100) != 0)) { - carrierShipping_ = - new java.util.ArrayList< - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping>( - carrierShipping_); - bitField1_ |= 0x00000100; + public Builder setCustomLabel0Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + customLabel0_ = value; + bitField2_ |= 0x00010000; + onChanged(); + return this; } - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> - carrierShippingBuilder_; + private java.lang.Object customLabel1_ = ""; /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * - */ - public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping> - getCarrierShippingList() { - if (carrierShippingBuilder_ == null) { - return java.util.Collections.unmodifiableList(carrierShipping_); - } else { - return carrierShippingBuilder_.getMessageList(); - } - } - - /** - * - * - *
-     * Rules for carrier-based shipping.
-     * 
+ * optional string custom_label_1 = 72; * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * @return Whether the customLabel1 field is set. */ - public int getCarrierShippingCount() { - if (carrierShippingBuilder_ == null) { - return carrierShipping_.size(); - } else { - return carrierShippingBuilder_.getCount(); - } + public boolean hasCustomLabel1() { + return ((bitField2_ & 0x00020000) != 0); } /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_1 = 72; + * + * @return The customLabel1. */ - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - getCarrierShipping(int index) { - if (carrierShippingBuilder_ == null) { - return carrierShipping_.get(index); + 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 carrierShippingBuilder_.getMessage(index); + return (java.lang.String) ref; } } @@ -24597,51 +53236,46 @@ public int getCarrierShippingCount() { * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_1 = 72; + * + * @return The bytes for customLabel1. */ - public Builder setCarrierShipping( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping value) { - if (carrierShippingBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCarrierShippingIsMutable(); - carrierShipping_.set(index, value); - onChanged(); + 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 { - carrierShippingBuilder_.setMessage(index, value); + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_1 = 72; + * + * @param value The customLabel1 to set. + * @return This builder for chaining. */ - public Builder setCarrierShipping( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - builderForValue) { - if (carrierShippingBuilder_ == null) { - ensureCarrierShippingIsMutable(); - carrierShipping_.set(index, builderForValue.build()); - onChanged(); - } else { - carrierShippingBuilder_.setMessage(index, builderForValue.build()); + public Builder setCustomLabel1(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + customLabel1_ = value; + bitField2_ |= 0x00020000; + onChanged(); return this; } @@ -24649,25 +53283,18 @@ public Builder setCarrierShipping( * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_1 = 72; + * + * @return This builder for chaining. */ - public Builder addCarrierShipping( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping value) { - if (carrierShippingBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCarrierShippingIsMutable(); - carrierShipping_.add(value); - onChanged(); - } else { - carrierShippingBuilder_.addMessage(value); - } + public Builder clearCustomLabel1() { + customLabel1_ = getDefaultInstance().getCustomLabel1(); + bitField2_ = (bitField2_ & ~0x00020000); + onChanged(); return this; } @@ -24675,101 +53302,112 @@ public Builder addCarrierShipping( * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_1 = 72; + * + * @param value The bytes for customLabel1 to set. + * @return This builder for chaining. */ - public Builder addCarrierShipping( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping value) { - if (carrierShippingBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCarrierShippingIsMutable(); - carrierShipping_.add(index, value); - onChanged(); - } else { - carrierShippingBuilder_.addMessage(index, value); + public Builder setCustomLabel1Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + customLabel1_ = value; + bitField2_ |= 0x00020000; + onChanged(); return this; } + private java.lang.Object customLabel2_ = ""; + /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_2 = 73; + * + * @return Whether the customLabel2 field is set. */ - public Builder addCarrierShipping( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - builderForValue) { - if (carrierShippingBuilder_ == null) { - ensureCarrierShippingIsMutable(); - carrierShipping_.add(builderForValue.build()); - onChanged(); + public boolean hasCustomLabel2() { + return ((bitField2_ & 0x00040000) != 0); + } + + /** + * + * + *
+     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
+     * 
+ * + * optional string custom_label_2 = 73; + * + * @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 { - carrierShippingBuilder_.addMessage(builderForValue.build()); + return (java.lang.String) ref; } - return this; } /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_2 = 73; + * + * @return The bytes for customLabel2. */ - public Builder addCarrierShipping( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - builderForValue) { - if (carrierShippingBuilder_ == null) { - ensureCarrierShippingIsMutable(); - carrierShipping_.add(index, builderForValue.build()); - onChanged(); + 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 { - carrierShippingBuilder_.addMessage(index, builderForValue.build()); + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_2 = 73; + * + * @param value The customLabel2 to set. + * @return This builder for chaining. */ - public Builder addAllCarrierShipping( - java.lang.Iterable< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping> - values) { - if (carrierShippingBuilder_ == null) { - ensureCarrierShippingIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, carrierShipping_); - onChanged(); - } else { - carrierShippingBuilder_.addAllMessages(values); + public Builder setCustomLabel2(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + customLabel2_ = value; + bitField2_ |= 0x00040000; + onChanged(); return this; } @@ -24777,21 +53415,18 @@ public Builder addAllCarrierShipping( * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_2 = 73; + * + * @return This builder for chaining. */ - public Builder clearCarrierShipping() { - if (carrierShippingBuilder_ == null) { - carrierShipping_ = java.util.Collections.emptyList(); - bitField1_ = (bitField1_ & ~0x00000100); - onChanged(); - } else { - carrierShippingBuilder_.clear(); - } + public Builder clearCustomLabel2() { + customLabel2_ = getDefaultInstance().getCustomLabel2(); + bitField2_ = (bitField2_ & ~0x00040000); + onChanged(); return this; } @@ -24799,57 +53434,65 @@ public Builder clearCarrierShipping() { * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_2 = 73; + * + * @param value The bytes for customLabel2 to set. + * @return This builder for chaining. */ - public Builder removeCarrierShipping(int index) { - if (carrierShippingBuilder_ == null) { - ensureCarrierShippingIsMutable(); - carrierShipping_.remove(index); - onChanged(); - } else { - carrierShippingBuilder_.remove(index); + public Builder setCustomLabel2Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + customLabel2_ = value; + bitField2_ |= 0x00040000; + onChanged(); return this; } + private java.lang.Object customLabel3_ = ""; + /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_3 = 74; + * + * @return Whether the customLabel3 field is set. */ - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - getCarrierShippingBuilder(int index) { - return internalGetCarrierShippingFieldBuilder().getBuilder(index); + public boolean hasCustomLabel3() { + return ((bitField2_ & 0x00080000) != 0); } /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_3 = 74; + * + * @return The customLabel3. */ - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder - getCarrierShippingOrBuilder(int index) { - if (carrierShippingBuilder_ == null) { - return carrierShipping_.get(index); + 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 carrierShippingBuilder_.getMessageOrBuilder(index); + return (java.lang.String) ref; } } @@ -24857,21 +53500,23 @@ public Builder removeCarrierShipping(int index) { * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_3 = 74; + * + * @return The bytes for customLabel3. */ - public java.util.List< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> - getCarrierShippingOrBuilderList() { - if (carrierShippingBuilder_ != null) { - return carrierShippingBuilder_.getMessageOrBuilderList(); + 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 java.util.Collections.unmodifiableList(carrierShipping_); + return (com.google.protobuf.ByteString) ref; } } @@ -24879,133 +53524,107 @@ public Builder removeCarrierShipping(int index) { * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_3 = 74; + * + * @param value The customLabel3 to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - addCarrierShippingBuilder() { - return internalGetCarrierShippingFieldBuilder() - .addBuilder( - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - .getDefaultInstance()); + public Builder setCustomLabel3(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + customLabel3_ = value; + bitField2_ |= 0x00080000; + onChanged(); + return this; } /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_3 = 74; + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder - addCarrierShippingBuilder(int index) { - return internalGetCarrierShippingFieldBuilder() - .addBuilder( - index, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping - .getDefaultInstance()); + public Builder clearCustomLabel3() { + customLabel3_ = getDefaultInstance().getCustomLabel3(); + bitField2_ = (bitField2_ & ~0x00080000); + onChanged(); + return this; } /** * * *
-     * Rules for carrier-based shipping.
+     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
+     * for custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping carrier_shipping = 142; - * + * optional string custom_label_3 = 74; + * + * @param value The bytes for customLabel3 to set. + * @return This builder for chaining. */ - public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder> - getCarrierShippingBuilderList() { - return internalGetCarrierShippingFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShippingOrBuilder> - internalGetCarrierShippingFieldBuilder() { - if (carrierShippingBuilder_ == null) { - carrierShippingBuilder_ = - new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping, - com.google.shopping.merchant.products.v1.ProductAttributes.CarrierShipping.Builder, - com.google.shopping.merchant.products.v1.ProductAttributes - .CarrierShippingOrBuilder>( - carrierShipping_, - ((bitField1_ & 0x00000100) != 0), - getParentForChildren(), - isClean()); - carrierShipping_ = null; - } - return carrierShippingBuilder_; - } - - private java.util.List - freeShippingThreshold_ = java.util.Collections.emptyList(); - - private void ensureFreeShippingThresholdIsMutable() { - if (!((bitField1_ & 0x00000200) != 0)) { - freeShippingThreshold_ = - new java.util.ArrayList( - freeShippingThreshold_); - bitField1_ |= 0x00000200; + public Builder setCustomLabel3Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + customLabel3_ = value; + bitField2_ |= 0x00080000; + onChanged(); + return this; } - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.FreeShippingThreshold, - com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder, - com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> - freeShippingThresholdBuilder_; + private java.lang.Object customLabel4_ = ""; /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * + * optional string custom_label_4 = 75; + * + * @return Whether the customLabel4 field is set. */ - public java.util.List - getFreeShippingThresholdList() { - if (freeShippingThresholdBuilder_ == null) { - return java.util.Collections.unmodifiableList(freeShippingThreshold_); - } else { - return freeShippingThresholdBuilder_.getMessageList(); - } + public boolean hasCustomLabel4() { + return ((bitField2_ & 0x00100000) != 0); } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * + * optional string custom_label_4 = 75; + * + * @return The customLabel4. */ - public int getFreeShippingThresholdCount() { - if (freeShippingThresholdBuilder_ == null) { - return freeShippingThreshold_.size(); + 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 freeShippingThresholdBuilder_.getCount(); + return (java.lang.String) ref; } } @@ -25013,19 +53632,23 @@ public int getFreeShippingThresholdCount() { * * *
-     * Conditions to be met for a product to have free shipping.
+     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * + * optional string custom_label_4 = 75; + * + * @return The bytes for customLabel4. */ - public com.google.shopping.merchant.products.v1.FreeShippingThreshold getFreeShippingThreshold( - int index) { - if (freeShippingThresholdBuilder_ == null) { - return freeShippingThreshold_.get(index); + 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 freeShippingThresholdBuilder_.getMessage(index); + return (com.google.protobuf.ByteString) ref; } } @@ -25033,25 +53656,22 @@ public com.google.shopping.merchant.products.v1.FreeShippingThreshold getFreeShi * * *
-     * Conditions to be met for a product to have free shipping.
+     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * + * optional string custom_label_4 = 75; + * + * @param value The customLabel4 to set. + * @return This builder for chaining. */ - public Builder setFreeShippingThreshold( - int index, com.google.shopping.merchant.products.v1.FreeShippingThreshold value) { - if (freeShippingThresholdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.set(index, value); - onChanged(); - } else { - freeShippingThresholdBuilder_.setMessage(index, value); + public Builder setCustomLabel4(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + customLabel4_ = value; + bitField2_ |= 0x00100000; + onChanged(); return this; } @@ -25059,23 +53679,18 @@ public Builder setFreeShippingThreshold( * * *
-     * Conditions to be met for a product to have free shipping.
+     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * + * optional string custom_label_4 = 75; + * + * @return This builder for chaining. */ - public Builder setFreeShippingThreshold( - int index, - com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder builderForValue) { - if (freeShippingThresholdBuilder_ == null) { - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.set(index, builderForValue.build()); - onChanged(); - } else { - freeShippingThresholdBuilder_.setMessage(index, builderForValue.build()); - } + public Builder clearCustomLabel4() { + customLabel4_ = getDefaultInstance().getCustomLabel4(); + bitField2_ = (bitField2_ & ~0x00100000); + onChanged(); return this; } @@ -25083,122 +53698,145 @@ public Builder setFreeShippingThreshold( * * *
-     * Conditions to be met for a product to have free shipping.
+     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
+     * custom grouping of items in a Shopping campaign.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * + * optional string custom_label_4 = 75; + * + * @param value The bytes for customLabel4 to set. + * @return This builder for chaining. */ - public Builder addFreeShippingThreshold( - com.google.shopping.merchant.products.v1.FreeShippingThreshold value) { - if (freeShippingThresholdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.add(value); - onChanged(); - } else { - freeShippingThresholdBuilder_.addMessage(value); + public Builder setCustomLabel4Bytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + customLabel4_ = value; + bitField2_ |= 0x00100000; + onChanged(); return this; } + private com.google.protobuf.Internal.IntList includedDestinations_ = emptyIntList(); + + private void ensureIncludedDestinationsIsMutable() { + if (!includedDestinations_.isModifiable()) { + includedDestinations_ = makeMutableCopy(includedDestinations_); + } + bitField2_ |= 0x00200000; + } + /** * * *
-     * Conditions to be met for a product to have free shipping.
-     * 
+ * The list of destinations to include for this target (corresponds to + * checked check boxes in Merchant Center). Default destinations are always + * included unless provided in `excludedDestinations`. * - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; - * - */ - public Builder addFreeShippingThreshold( - int index, com.google.shopping.merchant.products.v1.FreeShippingThreshold value) { - if (freeShippingThresholdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.add(index, value); - onChanged(); - } else { - freeShippingThresholdBuilder_.addMessage(index, value); - } - return this; + * For more information, see + * [Included + * destination](https://support.google.com/merchants/answer/7501026). + * + * Note: We recommend setting destinations on datasources level for most use + * cases. Use this field within products to only setup exceptions. + * + * + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * + * @return A list containing the includedDestinations. + */ + public java.util.List + getIncludedDestinationsList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.type.Destination.DestinationEnum>( + includedDestinations_, includedDestinations_converter_); } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @return The count of includedDestinations. */ - public Builder addFreeShippingThreshold( - com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder builderForValue) { - if (freeShippingThresholdBuilder_ == null) { - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.add(builderForValue.build()); - onChanged(); - } else { - freeShippingThresholdBuilder_.addMessage(builderForValue.build()); - } - return this; + public int getIncludedDestinationsCount() { + return includedDestinations_.size(); } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param index The index of the element to return. + * @return The includedDestinations at the given index. */ - public Builder addFreeShippingThreshold( - int index, - com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder builderForValue) { - if (freeShippingThresholdBuilder_ == null) { - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.add(index, builderForValue.build()); - onChanged(); - } else { - freeShippingThresholdBuilder_.addMessage(index, builderForValue.build()); - } - return this; + public com.google.shopping.type.Destination.DestinationEnum getIncludedDestinations(int index) { + return includedDestinations_converter_.convert(includedDestinations_.getInt(index)); } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param index The index to set the value at. + * @param value The includedDestinations to set. + * @return This builder for chaining. */ - public Builder addAllFreeShippingThreshold( - java.lang.Iterable - values) { - if (freeShippingThresholdBuilder_ == null) { - ensureFreeShippingThresholdIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, freeShippingThreshold_); - onChanged(); - } else { - freeShippingThresholdBuilder_.addAllMessages(values); + public Builder setIncludedDestinations( + int index, com.google.shopping.type.Destination.DestinationEnum value) { + if (value == null) { + throw new NullPointerException(); } + ensureIncludedDestinationsIsMutable(); + includedDestinations_.setInt(index, value.getNumber()); + onChanged(); return this; } @@ -25206,21 +53844,32 @@ public Builder addAllFreeShippingThreshold( * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param value The includedDestinations to add. + * @return This builder for chaining. */ - public Builder clearFreeShippingThreshold() { - if (freeShippingThresholdBuilder_ == null) { - freeShippingThreshold_ = java.util.Collections.emptyList(); - bitField1_ = (bitField1_ & ~0x00000200); - onChanged(); - } else { - freeShippingThresholdBuilder_.clear(); + public Builder addIncludedDestinations( + com.google.shopping.type.Destination.DestinationEnum value) { + if (value == null) { + throw new NullPointerException(); } + ensureIncludedDestinationsIsMutable(); + includedDestinations_.addInt(value.getNumber()); + onChanged(); return this; } @@ -25228,21 +53877,31 @@ public Builder clearFreeShippingThreshold() { * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param values The includedDestinations to add. + * @return This builder for chaining. */ - public Builder removeFreeShippingThreshold(int index) { - if (freeShippingThresholdBuilder_ == null) { - ensureFreeShippingThresholdIsMutable(); - freeShippingThreshold_.remove(index); - onChanged(); - } else { - freeShippingThresholdBuilder_.remove(index); + public Builder addAllIncludedDestinations( + java.lang.Iterable values) { + ensureIncludedDestinationsIsMutable(); + for (com.google.shopping.type.Destination.DestinationEnum value : values) { + includedDestinations_.addInt(value.getNumber()); } + onChanged(); return this; } @@ -25250,216 +53909,286 @@ public Builder removeFreeShippingThreshold(int index) { * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder - getFreeShippingThresholdBuilder(int index) { - return internalGetFreeShippingThresholdFieldBuilder().getBuilder(index); + public Builder clearIncludedDestinations() { + includedDestinations_ = emptyIntList(); + bitField2_ = (bitField2_ & ~0x00200000); + onChanged(); + return this; } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @return A list containing the enum numeric values on the wire for includedDestinations. */ - public com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder - getFreeShippingThresholdOrBuilder(int index) { - if (freeShippingThresholdBuilder_ == null) { - return freeShippingThreshold_.get(index); - } else { - return freeShippingThresholdBuilder_.getMessageOrBuilder(index); - } + public java.util.List getIncludedDestinationsValueList() { + includedDestinations_.makeImmutable(); + return includedDestinations_; } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of includedDestinations at the given index. */ - public java.util.List< - ? extends com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> - getFreeShippingThresholdOrBuilderList() { - if (freeShippingThresholdBuilder_ != null) { - return freeShippingThresholdBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(freeShippingThreshold_); - } + public int getIncludedDestinationsValue(int index) { + return includedDestinations_.getInt(index); } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for includedDestinations to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder - addFreeShippingThresholdBuilder() { - return internalGetFreeShippingThresholdFieldBuilder() - .addBuilder( - com.google.shopping.merchant.products.v1.FreeShippingThreshold.getDefaultInstance()); + public Builder setIncludedDestinationsValue(int index, int value) { + ensureIncludedDestinationsIsMutable(); + includedDestinations_.setInt(index, value); + onChanged(); + return this; } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param value The enum numeric value on the wire for includedDestinations to add. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder - addFreeShippingThresholdBuilder(int index) { - return internalGetFreeShippingThresholdFieldBuilder() - .addBuilder( - index, - com.google.shopping.merchant.products.v1.FreeShippingThreshold.getDefaultInstance()); + public Builder addIncludedDestinationsValue(int value) { + ensureIncludedDestinationsIsMutable(); + includedDestinations_.addInt(value); + onChanged(); + return this; } /** * * *
-     * Conditions to be met for a product to have free shipping.
+     * The list of destinations to include for this target (corresponds to
+     * checked check boxes in Merchant Center). Default destinations are always
+     * included unless provided in `excludedDestinations`.
+     *
+     * For more information, see
+     * [Included
+     * destination](https://support.google.com/merchants/answer/7501026).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.FreeShippingThreshold free_shipping_threshold = 135; + * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; * + * + * @param values The enum numeric values on the wire for includedDestinations to add. + * @return This builder for chaining. */ - public java.util.List - getFreeShippingThresholdBuilderList() { - return internalGetFreeShippingThresholdFieldBuilder().getBuilderList(); + public Builder addAllIncludedDestinationsValue(java.lang.Iterable values) { + ensureIncludedDestinationsIsMutable(); + for (int value : values) { + includedDestinations_.addInt(value); + } + onChanged(); + return this; } - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.FreeShippingThreshold, - com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder, - com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder> - internalGetFreeShippingThresholdFieldBuilder() { - if (freeShippingThresholdBuilder_ == null) { - freeShippingThresholdBuilder_ = - new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.FreeShippingThreshold, - com.google.shopping.merchant.products.v1.FreeShippingThreshold.Builder, - com.google.shopping.merchant.products.v1.FreeShippingThresholdOrBuilder>( - freeShippingThreshold_, - ((bitField1_ & 0x00000200) != 0), - getParentForChildren(), - isClean()); - freeShippingThreshold_ = null; + private com.google.protobuf.Internal.IntList excludedDestinations_ = emptyIntList(); + + private void ensureExcludedDestinationsIsMutable() { + if (!excludedDestinations_.isModifiable()) { + excludedDestinations_ = makeMutableCopy(excludedDestinations_); } - return freeShippingThresholdBuilder_; + bitField2_ |= 0x00400000; } - private com.google.shopping.merchant.products.v1.ShippingWeight shippingWeight_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingWeight, - com.google.shopping.merchant.products.v1.ShippingWeight.Builder, - com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder> - shippingWeightBuilder_; - /** * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * * - * @return Whether the shippingWeight field is set. + * @return A list containing the excludedDestinations. */ - public boolean hasShippingWeight() { - return ((bitField1_ & 0x00000400) != 0); + public java.util.List + getExcludedDestinationsList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.type.Destination.DestinationEnum>( + excludedDestinations_, excludedDestinations_converter_); } /** * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * * - * @return The shippingWeight. + * @return The count of excludedDestinations. */ - public com.google.shopping.merchant.products.v1.ShippingWeight getShippingWeight() { - if (shippingWeightBuilder_ == null) { - return shippingWeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() - : shippingWeight_; - } else { - return shippingWeightBuilder_.getMessage(); - } + public int getExcludedDestinationsCount() { + return excludedDestinations_.size(); } /** * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param index The index of the element to return. + * @return The excludedDestinations at the given index. */ - public Builder setShippingWeight( - com.google.shopping.merchant.products.v1.ShippingWeight value) { - if (shippingWeightBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - shippingWeight_ = value; - } else { - shippingWeightBuilder_.setMessage(value); - } - bitField1_ |= 0x00000400; - onChanged(); - return this; + public com.google.shopping.type.Destination.DestinationEnum getExcludedDestinations(int index) { + return excludedDestinations_converter_.convert(excludedDestinations_.getInt(index)); } /** * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param index The index to set the value at. + * @param value The excludedDestinations to set. + * @return This builder for chaining. */ - public Builder setShippingWeight( - com.google.shopping.merchant.products.v1.ShippingWeight.Builder builderForValue) { - if (shippingWeightBuilder_ == null) { - shippingWeight_ = builderForValue.build(); - } else { - shippingWeightBuilder_.setMessage(builderForValue.build()); + public Builder setExcludedDestinations( + int index, com.google.shopping.type.Destination.DestinationEnum value) { + if (value == null) { + throw new NullPointerException(); } - bitField1_ |= 0x00000400; + ensureExcludedDestinationsIsMutable(); + excludedDestinations_.setInt(index, value.getNumber()); onChanged(); return this; } @@ -25468,47 +54197,60 @@ public Builder setShippingWeight( * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param value The excludedDestinations to add. + * @return This builder for chaining. */ - public Builder mergeShippingWeight( - com.google.shopping.merchant.products.v1.ShippingWeight value) { - if (shippingWeightBuilder_ == null) { - if (((bitField1_ & 0x00000400) != 0) - && shippingWeight_ != null - && shippingWeight_ - != com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance()) { - getShippingWeightBuilder().mergeFrom(value); - } else { - shippingWeight_ = value; - } - } else { - shippingWeightBuilder_.mergeFrom(value); - } - if (shippingWeight_ != null) { - bitField1_ |= 0x00000400; - onChanged(); + public Builder addExcludedDestinations( + com.google.shopping.type.Destination.DestinationEnum value) { + if (value == null) { + throw new NullPointerException(); } + ensureExcludedDestinationsIsMutable(); + excludedDestinations_.addInt(value.getNumber()); + onChanged(); return this; } /** * * - *
-     * Weight of the item for shipping.
+     * 
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param values The excludedDestinations to add. + * @return This builder for chaining. */ - public Builder clearShippingWeight() { - bitField1_ = (bitField1_ & ~0x00000400); - shippingWeight_ = null; - if (shippingWeightBuilder_ != null) { - shippingWeightBuilder_.dispose(); - shippingWeightBuilder_ = null; + public Builder addAllExcludedDestinations( + java.lang.Iterable values) { + ensureExcludedDestinationsIsMutable(); + for (com.google.shopping.type.Destination.DestinationEnum value : values) { + excludedDestinations_.addInt(value.getNumber()); } onChanged(); return this; @@ -25518,550 +54260,567 @@ public Builder clearShippingWeight() { * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ShippingWeight.Builder - getShippingWeightBuilder() { - bitField1_ |= 0x00000400; + public Builder clearExcludedDestinations() { + excludedDestinations_ = emptyIntList(); + bitField2_ = (bitField2_ & ~0x00400000); onChanged(); - return internalGetShippingWeightFieldBuilder().getBuilder(); + return this; } /** * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @return A list containing the enum numeric values on the wire for excludedDestinations. */ - public com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder - getShippingWeightOrBuilder() { - if (shippingWeightBuilder_ != null) { - return shippingWeightBuilder_.getMessageOrBuilder(); - } else { - return shippingWeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingWeight.getDefaultInstance() - : shippingWeight_; - } + public java.util.List getExcludedDestinationsValueList() { + excludedDestinations_.makeImmutable(); + return excludedDestinations_; } /** * * *
-     * Weight of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingWeight shipping_weight = 40; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of excludedDestinations at the given index. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingWeight, - com.google.shopping.merchant.products.v1.ShippingWeight.Builder, - com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder> - internalGetShippingWeightFieldBuilder() { - if (shippingWeightBuilder_ == null) { - shippingWeightBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingWeight, - com.google.shopping.merchant.products.v1.ShippingWeight.Builder, - com.google.shopping.merchant.products.v1.ShippingWeightOrBuilder>( - getShippingWeight(), getParentForChildren(), isClean()); - shippingWeight_ = null; - } - return shippingWeightBuilder_; + public int getExcludedDestinationsValue(int index) { + return excludedDestinations_.getInt(index); } - private com.google.shopping.merchant.products.v1.ShippingDimension shippingLength_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> - shippingLengthBuilder_; - /** * * *
-     * Length of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * * - * @return Whether the shippingLength field is set. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for excludedDestinations to set. + * @return This builder for chaining. */ - public boolean hasShippingLength() { - return ((bitField1_ & 0x00000800) != 0); + public Builder setExcludedDestinationsValue(int index, int value) { + ensureExcludedDestinationsIsMutable(); + excludedDestinations_.setInt(index, value); + onChanged(); + return this; } /** * * *
-     * Length of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * * - * @return The shippingLength. + * @param value The enum numeric value on the wire for excludedDestinations to add. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ShippingDimension getShippingLength() { - if (shippingLengthBuilder_ == null) { - return shippingLength_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingLength_; - } else { - return shippingLengthBuilder_.getMessage(); - } + public Builder addExcludedDestinationsValue(int value) { + ensureExcludedDestinationsIsMutable(); + excludedDestinations_.addInt(value); + onChanged(); + return this; } /** * * *
-     * Length of the item for shipping.
+     * The list of destinations to exclude for this target (corresponds to
+     * unchecked check boxes in Merchant Center).
+     *
+     * For more information, see
+     * [Excluded
+     * destination](https://support.google.com/merchants/answer/6324486).
+     *
+     * Note: We recommend setting destinations on datasources level for most use
+     * cases. Use this field within products to only setup exceptions.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * + * @param values The enum numeric values on the wire for excludedDestinations to add. + * @return This builder for chaining. */ - public Builder setShippingLength( - com.google.shopping.merchant.products.v1.ShippingDimension value) { - if (shippingLengthBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - shippingLength_ = value; - } else { - shippingLengthBuilder_.setMessage(value); + public Builder addAllExcludedDestinationsValue(java.lang.Iterable values) { + ensureExcludedDestinationsIsMutable(); + for (int value : values) { + excludedDestinations_.addInt(value); } - bitField1_ |= 0x00000800; onChanged(); return this; } + private com.google.protobuf.LazyStringArrayList shoppingAdsExcludedCountries_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureShoppingAdsExcludedCountriesIsMutable() { + if (!shoppingAdsExcludedCountries_.isModifiable()) { + shoppingAdsExcludedCountries_ = + new com.google.protobuf.LazyStringArrayList(shoppingAdsExcludedCountries_); + } + bitField2_ |= 0x00800000; + } + /** * * *
-     * Length of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated string shopping_ads_excluded_countries = 78; + * + * @return A list containing the shoppingAdsExcludedCountries. */ - public Builder setShippingLength( - com.google.shopping.merchant.products.v1.ShippingDimension.Builder builderForValue) { - if (shippingLengthBuilder_ == null) { - shippingLength_ = builderForValue.build(); - } else { - shippingLengthBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000800; - onChanged(); - return this; + public com.google.protobuf.ProtocolStringList getShoppingAdsExcludedCountriesList() { + shoppingAdsExcludedCountries_.makeImmutable(); + return shoppingAdsExcludedCountries_; } /** * * *
-     * Length of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated string shopping_ads_excluded_countries = 78; + * + * @return The count of shoppingAdsExcludedCountries. */ - public Builder mergeShippingLength( - com.google.shopping.merchant.products.v1.ShippingDimension value) { - if (shippingLengthBuilder_ == null) { - if (((bitField1_ & 0x00000800) != 0) - && shippingLength_ != null - && shippingLength_ - != com.google.shopping.merchant.products.v1.ShippingDimension - .getDefaultInstance()) { - getShippingLengthBuilder().mergeFrom(value); - } else { - shippingLength_ = value; - } - } else { - shippingLengthBuilder_.mergeFrom(value); - } - if (shippingLength_ != null) { - bitField1_ |= 0x00000800; - onChanged(); - } - return this; + public int getShoppingAdsExcludedCountriesCount() { + return shoppingAdsExcludedCountries_.size(); } /** * * *
-     * Length of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated string shopping_ads_excluded_countries = 78; + * + * @param index The index of the element to return. + * @return The shoppingAdsExcludedCountries at the given index. */ - public Builder clearShippingLength() { - bitField1_ = (bitField1_ & ~0x00000800); - shippingLength_ = null; - if (shippingLengthBuilder_ != null) { - shippingLengthBuilder_.dispose(); - shippingLengthBuilder_ = null; - } - onChanged(); - return this; + public java.lang.String getShoppingAdsExcludedCountries(int index) { + return shoppingAdsExcludedCountries_.get(index); } /** * * *
-     * Length of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated string shopping_ads_excluded_countries = 78; + * + * @param index The index of the value to return. + * @return The bytes of the shoppingAdsExcludedCountries at the given index. */ - public com.google.shopping.merchant.products.v1.ShippingDimension.Builder - getShippingLengthBuilder() { - bitField1_ |= 0x00000800; - onChanged(); - return internalGetShippingLengthFieldBuilder().getBuilder(); + public com.google.protobuf.ByteString getShoppingAdsExcludedCountriesBytes(int index) { + return shoppingAdsExcludedCountries_.getByteString(index); } /** * * *
-     * Length of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated string shopping_ads_excluded_countries = 78; + * + * @param index The index to set the value at. + * @param value The shoppingAdsExcludedCountries to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder - getShippingLengthOrBuilder() { - if (shippingLengthBuilder_ != null) { - return shippingLengthBuilder_.getMessageOrBuilder(); - } else { - return shippingLength_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingLength_; + public Builder setShoppingAdsExcludedCountries(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + ensureShoppingAdsExcludedCountriesIsMutable(); + shoppingAdsExcludedCountries_.set(index, value); + bitField2_ |= 0x00800000; + onChanged(); + return this; } /** * * *
-     * Length of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_length = 41; + * repeated string shopping_ads_excluded_countries = 78; + * + * @param value The shoppingAdsExcludedCountries to add. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> - internalGetShippingLengthFieldBuilder() { - if (shippingLengthBuilder_ == null) { - shippingLengthBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder>( - getShippingLength(), getParentForChildren(), isClean()); - shippingLength_ = null; + public Builder addShoppingAdsExcludedCountries(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - return shippingLengthBuilder_; + ensureShoppingAdsExcludedCountriesIsMutable(); + shoppingAdsExcludedCountries_.add(value); + bitField2_ |= 0x00800000; + onChanged(); + return this; } - private com.google.shopping.merchant.products.v1.ShippingDimension shippingWidth_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> - shippingWidthBuilder_; - /** * * *
-     * Width of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * repeated string shopping_ads_excluded_countries = 78; * - * @return Whether the shippingWidth field is set. + * @param values The shoppingAdsExcludedCountries to add. + * @return This builder for chaining. */ - public boolean hasShippingWidth() { - return ((bitField1_ & 0x00001000) != 0); + public Builder addAllShoppingAdsExcludedCountries(java.lang.Iterable values) { + ensureShoppingAdsExcludedCountriesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, shoppingAdsExcludedCountries_); + bitField2_ |= 0x00800000; + onChanged(); + return this; } /** * * *
-     * Width of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * repeated string shopping_ads_excluded_countries = 78; * - * @return The shippingWidth. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ShippingDimension getShippingWidth() { - if (shippingWidthBuilder_ == null) { - return shippingWidth_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingWidth_; - } else { - return shippingWidthBuilder_.getMessage(); - } + public Builder clearShoppingAdsExcludedCountries() { + shoppingAdsExcludedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField2_ = (bitField2_ & ~0x00800000); + ; + onChanged(); + return this; } /** * * *
-     * Width of the item for shipping.
+     * List of country codes [(ISO 3166-1
+     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
+     * offer from Shopping Ads destination. Countries from this list are removed
+     * from countries configured in data source settings.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * repeated string shopping_ads_excluded_countries = 78; + * + * @param value The bytes of the shoppingAdsExcludedCountries to add. + * @return This builder for chaining. */ - public Builder setShippingWidth( - com.google.shopping.merchant.products.v1.ShippingDimension value) { - if (shippingWidthBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - shippingWidth_ = value; - } else { - shippingWidthBuilder_.setMessage(value); + public Builder addShoppingAdsExcludedCountriesBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - bitField1_ |= 0x00001000; + checkByteStringIsUtf8(value); + ensureShoppingAdsExcludedCountriesIsMutable(); + shoppingAdsExcludedCountries_.add(value); + bitField2_ |= 0x00800000; onChanged(); return this; } + private java.lang.Object externalSellerId_ = ""; + /** * * *
-     * Width of the item for shipping.
+     * Required for multi-seller accounts. Use this attribute if you're a
+     * marketplace uploading products for various sellers to your multi-seller
+     * account.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * optional string external_seller_id = 1; + * + * @return Whether the externalSellerId field is set. */ - public Builder setShippingWidth( - com.google.shopping.merchant.products.v1.ShippingDimension.Builder builderForValue) { - if (shippingWidthBuilder_ == null) { - shippingWidth_ = builderForValue.build(); - } else { - shippingWidthBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00001000; - onChanged(); - return this; + public boolean hasExternalSellerId() { + return ((bitField2_ & 0x01000000) != 0); } /** * * *
-     * Width of the item for shipping.
+     * Required for multi-seller accounts. Use this attribute if you're a
+     * marketplace uploading products for various sellers to your multi-seller
+     * account.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * optional string external_seller_id = 1; + * + * @return The externalSellerId. */ - public Builder mergeShippingWidth( - com.google.shopping.merchant.products.v1.ShippingDimension value) { - if (shippingWidthBuilder_ == null) { - if (((bitField1_ & 0x00001000) != 0) - && shippingWidth_ != null - && shippingWidth_ - != com.google.shopping.merchant.products.v1.ShippingDimension - .getDefaultInstance()) { - getShippingWidthBuilder().mergeFrom(value); - } else { - shippingWidth_ = value; - } + public java.lang.String getExternalSellerId() { + java.lang.Object ref = externalSellerId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + externalSellerId_ = s; + return s; } else { - shippingWidthBuilder_.mergeFrom(value); - } - if (shippingWidth_ != null) { - bitField1_ |= 0x00001000; - onChanged(); + return (java.lang.String) ref; } - return this; } /** * * *
-     * Width of the item for shipping.
+     * Required for multi-seller accounts. Use this attribute if you're a
+     * marketplace uploading products for various sellers to your multi-seller
+     * account.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * optional string external_seller_id = 1; + * + * @return The bytes for externalSellerId. */ - public Builder clearShippingWidth() { - bitField1_ = (bitField1_ & ~0x00001000); - shippingWidth_ = null; - if (shippingWidthBuilder_ != null) { - shippingWidthBuilder_.dispose(); - shippingWidthBuilder_ = null; + public com.google.protobuf.ByteString getExternalSellerIdBytes() { + java.lang.Object ref = externalSellerId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + externalSellerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - onChanged(); - return this; } /** * * *
-     * Width of the item for shipping.
+     * Required for multi-seller accounts. Use this attribute if you're a
+     * marketplace uploading products for various sellers to your multi-seller
+     * account.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * optional string external_seller_id = 1; + * + * @param value The externalSellerId to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ShippingDimension.Builder - getShippingWidthBuilder() { - bitField1_ |= 0x00001000; + public Builder setExternalSellerId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + externalSellerId_ = value; + bitField2_ |= 0x01000000; onChanged(); - return internalGetShippingWidthFieldBuilder().getBuilder(); + return this; } /** * * *
-     * Width of the item for shipping.
+     * Required for multi-seller accounts. Use this attribute if you're a
+     * marketplace uploading products for various sellers to your multi-seller
+     * account.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * optional string external_seller_id = 1; + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder - getShippingWidthOrBuilder() { - if (shippingWidthBuilder_ != null) { - return shippingWidthBuilder_.getMessageOrBuilder(); - } else { - return shippingWidth_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingWidth_; - } + public Builder clearExternalSellerId() { + externalSellerId_ = getDefaultInstance().getExternalSellerId(); + bitField2_ = (bitField2_ & ~0x01000000); + onChanged(); + return this; } /** * * *
-     * Width of the item for shipping.
+     * Required for multi-seller accounts. Use this attribute if you're a
+     * marketplace uploading products for various sellers to your multi-seller
+     * account.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_width = 42; + * optional string external_seller_id = 1; + * + * @param value The bytes for externalSellerId to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> - internalGetShippingWidthFieldBuilder() { - if (shippingWidthBuilder_ == null) { - shippingWidthBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder>( - getShippingWidth(), getParentForChildren(), isClean()); - shippingWidth_ = null; + public Builder setExternalSellerIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - return shippingWidthBuilder_; + checkByteStringIsUtf8(value); + externalSellerId_ = value; + bitField2_ |= 0x01000000; + onChanged(); + return this; } - private com.google.shopping.merchant.products.v1.ShippingDimension shippingHeight_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> - shippingHeightBuilder_; + private int pause_ = 0; /** * * *
-     * Height of the item for shipping.
+     * Publication of this item will be temporarily
+     * [paused](https://support.google.com/merchants/answer/11909930).
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * optional .google.shopping.merchant.products.v1.Pause pause = 13; * - * @return Whether the shippingHeight field is set. + * @return Whether the pause field is set. */ - public boolean hasShippingHeight() { - return ((bitField1_ & 0x00002000) != 0); + @java.lang.Override + public boolean hasPause() { + return ((bitField2_ & 0x02000000) != 0); } /** * * *
-     * Height of the item for shipping.
+     * Publication of this item will be temporarily
+     * [paused](https://support.google.com/merchants/answer/11909930).
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * optional .google.shopping.merchant.products.v1.Pause pause = 13; * - * @return The shippingHeight. + * @return The enum numeric value on the wire for pause. */ - public com.google.shopping.merchant.products.v1.ShippingDimension getShippingHeight() { - if (shippingHeightBuilder_ == null) { - return shippingHeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingHeight_; - } else { - return shippingHeightBuilder_.getMessage(); - } + @java.lang.Override + public int getPauseValue() { + return pause_; } /** * * *
-     * Height of the item for shipping.
+     * Publication of this item will be temporarily
+     * [paused](https://support.google.com/merchants/answer/11909930).
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; - */ - public Builder setShippingHeight( - com.google.shopping.merchant.products.v1.ShippingDimension value) { - if (shippingHeightBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - shippingHeight_ = value; - } else { - shippingHeightBuilder_.setMessage(value); - } - bitField1_ |= 0x00002000; - onChanged(); - return this; - } - - /** - * - * - *
-     * Height of the item for shipping.
-     * 
+ * optional .google.shopping.merchant.products.v1.Pause pause = 13; * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * @param value The enum numeric value on the wire for pause to set. + * @return This builder for chaining. */ - public Builder setShippingHeight( - com.google.shopping.merchant.products.v1.ShippingDimension.Builder builderForValue) { - if (shippingHeightBuilder_ == null) { - shippingHeight_ = builderForValue.build(); - } else { - shippingHeightBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00002000; + public Builder setPauseValue(int value) { + pause_ = value; + bitField2_ |= 0x02000000; onChanged(); return this; } @@ -26070,49 +54829,40 @@ public Builder setShippingHeight( * * *
-     * Height of the item for shipping.
+     * Publication of this item will be temporarily
+     * [paused](https://support.google.com/merchants/answer/11909930).
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * + * @return The pause. */ - public Builder mergeShippingHeight( - com.google.shopping.merchant.products.v1.ShippingDimension value) { - if (shippingHeightBuilder_ == null) { - if (((bitField1_ & 0x00002000) != 0) - && shippingHeight_ != null - && shippingHeight_ - != com.google.shopping.merchant.products.v1.ShippingDimension - .getDefaultInstance()) { - getShippingHeightBuilder().mergeFrom(value); - } else { - shippingHeight_ = value; - } - } else { - shippingHeightBuilder_.mergeFrom(value); - } - if (shippingHeight_ != null) { - bitField1_ |= 0x00002000; - onChanged(); - } - return this; + @java.lang.Override + public com.google.shopping.merchant.products.v1.Pause getPause() { + com.google.shopping.merchant.products.v1.Pause result = + com.google.shopping.merchant.products.v1.Pause.forNumber(pause_); + return result == null ? com.google.shopping.merchant.products.v1.Pause.UNRECOGNIZED : result; } /** * * *
-     * Height of the item for shipping.
+     * Publication of this item will be temporarily
+     * [paused](https://support.google.com/merchants/answer/11909930).
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * + * @param value The pause to set. + * @return This builder for chaining. */ - public Builder clearShippingHeight() { - bitField1_ = (bitField1_ & ~0x00002000); - shippingHeight_ = null; - if (shippingHeightBuilder_ != null) { - shippingHeightBuilder_.dispose(); - shippingHeightBuilder_ = null; + public Builder setPause(com.google.shopping.merchant.products.v1.Pause value) { + if (value == null) { + throw new NullPointerException(); } + bitField2_ |= 0x02000000; + pause_ = value.getNumber(); onChanged(); return this; } @@ -26121,186 +54871,200 @@ public Builder clearShippingHeight() { * * *
-     * Height of the item for shipping.
+     * Publication of this item will be temporarily
+     * [paused](https://support.google.com/merchants/answer/11909930).
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.ShippingDimension.Builder - getShippingHeightBuilder() { - bitField1_ |= 0x00002000; + public Builder clearPause() { + bitField2_ = (bitField2_ & ~0x02000000); + pause_ = 0; onChanged(); - return internalGetShippingHeightFieldBuilder().getBuilder(); + return this; } - /** - * - * - *
-     * Height of the item for shipping.
-     * 
- * - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; - */ - public com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder - getShippingHeightOrBuilder() { - if (shippingHeightBuilder_ != null) { - return shippingHeightBuilder_.getMessageOrBuilder(); - } else { - return shippingHeight_ == null - ? com.google.shopping.merchant.products.v1.ShippingDimension.getDefaultInstance() - : shippingHeight_; + private com.google.protobuf.LazyStringArrayList lifestyleImageLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureLifestyleImageLinksIsMutable() { + if (!lifestyleImageLinks_.isModifiable()) { + lifestyleImageLinks_ = new com.google.protobuf.LazyStringArrayList(lifestyleImageLinks_); } + bitField2_ |= 0x04000000; } /** * * *
-     * Height of the item for shipping.
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * .google.shopping.merchant.products.v1.ShippingDimension shipping_height = 43; + * repeated string lifestyle_image_links = 14; + * + * @return A list containing the lifestyleImageLinks. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder> - internalGetShippingHeightFieldBuilder() { - if (shippingHeightBuilder_ == null) { - shippingHeightBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.ShippingDimension, - com.google.shopping.merchant.products.v1.ShippingDimension.Builder, - com.google.shopping.merchant.products.v1.ShippingDimensionOrBuilder>( - getShippingHeight(), getParentForChildren(), isClean()); - shippingHeight_ = null; - } - return shippingHeightBuilder_; + public com.google.protobuf.ProtocolStringList getLifestyleImageLinksList() { + lifestyleImageLinks_.makeImmutable(); + return lifestyleImageLinks_; } - private long maxHandlingTime_; - /** * * *
-     * Maximal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 max_handling_time = 44; + * repeated string lifestyle_image_links = 14; * - * @return Whether the maxHandlingTime field is set. + * @return The count of lifestyleImageLinks. */ - @java.lang.Override - public boolean hasMaxHandlingTime() { - return ((bitField1_ & 0x00004000) != 0); + public int getLifestyleImageLinksCount() { + return lifestyleImageLinks_.size(); } /** * * *
-     * Maximal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 max_handling_time = 44; + * repeated string lifestyle_image_links = 14; * - * @return The maxHandlingTime. + * @param index The index of the element to return. + * @return The lifestyleImageLinks at the given index. */ - @java.lang.Override - public long getMaxHandlingTime() { - return maxHandlingTime_; + public java.lang.String getLifestyleImageLinks(int index) { + return lifestyleImageLinks_.get(index); } /** * * *
-     * Maximal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 max_handling_time = 44; + * repeated string lifestyle_image_links = 14; * - * @param value The maxHandlingTime to set. - * @return This builder for chaining. + * @param index The index of the value to return. + * @return The bytes of the lifestyleImageLinks at the given index. */ - public Builder setMaxHandlingTime(long value) { - - maxHandlingTime_ = value; - bitField1_ |= 0x00004000; - onChanged(); - return this; + public com.google.protobuf.ByteString getLifestyleImageLinksBytes(int index) { + return lifestyleImageLinks_.getByteString(index); } /** * * *
-     * Maximal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 max_handling_time = 44; + * repeated string lifestyle_image_links = 14; * + * @param index The index to set the value at. + * @param value The lifestyleImageLinks to set. * @return This builder for chaining. */ - public Builder clearMaxHandlingTime() { - bitField1_ = (bitField1_ & ~0x00004000); - maxHandlingTime_ = 0L; + public Builder setLifestyleImageLinks(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureLifestyleImageLinksIsMutable(); + lifestyleImageLinks_.set(index, value); + bitField2_ |= 0x04000000; onChanged(); return this; } - private long minHandlingTime_; - /** * * *
-     * Minimal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 min_handling_time = 45; + * repeated string lifestyle_image_links = 14; * - * @return Whether the minHandlingTime field is set. + * @param value The lifestyleImageLinks to add. + * @return This builder for chaining. */ - @java.lang.Override - public boolean hasMinHandlingTime() { - return ((bitField1_ & 0x00008000) != 0); + public Builder addLifestyleImageLinks(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureLifestyleImageLinksIsMutable(); + lifestyleImageLinks_.add(value); + bitField2_ |= 0x04000000; + onChanged(); + return this; } /** * * *
-     * Minimal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 min_handling_time = 45; + * repeated string lifestyle_image_links = 14; * - * @return The minHandlingTime. + * @param values The lifestyleImageLinks to add. + * @return This builder for chaining. */ - @java.lang.Override - public long getMinHandlingTime() { - return minHandlingTime_; + public Builder addAllLifestyleImageLinks(java.lang.Iterable values) { + ensureLifestyleImageLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, lifestyleImageLinks_); + bitField2_ |= 0x04000000; + onChanged(); + return this; } /** * * *
-     * Minimal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 min_handling_time = 45; + * repeated string lifestyle_image_links = 14; * - * @param value The minHandlingTime to set. * @return This builder for chaining. */ - public Builder setMinHandlingTime(long value) { - - minHandlingTime_ = value; - bitField1_ |= 0x00008000; + public Builder clearLifestyleImageLinks() { + lifestyleImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField2_ = (bitField2_ & ~0x04000000); + ; onChanged(); return this; } @@ -26309,61 +55073,65 @@ public Builder setMinHandlingTime(long value) { * * *
-     * Minimal product handling time (in business days).
+     * Additional URLs of lifestyle images of the item, used to explicitly
+     * identify images that showcase your item in a real-world context. See the
+     * [Help Center article](https://support.google.com/merchants/answer/9103186)
+     * for more information.
      * 
* - * optional int64 min_handling_time = 45; + * repeated string lifestyle_image_links = 14; * + * @param value The bytes of the lifestyleImageLinks to add. * @return This builder for chaining. */ - public Builder clearMinHandlingTime() { - bitField1_ = (bitField1_ & ~0x00008000); - minHandlingTime_ = 0L; + public Builder addLifestyleImageLinksBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureLifestyleImageLinksIsMutable(); + lifestyleImageLinks_.add(value); + bitField2_ |= 0x04000000; onChanged(); return this; } - private java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - shippingHandlingBusinessDays_ = java.util.Collections.emptyList(); + private java.util.List + cloudExportAdditionalProperties_ = java.util.Collections.emptyList(); - private void ensureShippingHandlingBusinessDaysIsMutable() { - if (!((bitField1_ & 0x00010000) != 0)) { - shippingHandlingBusinessDays_ = + private void ensureCloudExportAdditionalPropertiesIsMutable() { + if (!((bitField2_ & 0x08000000) != 0)) { + cloudExportAdditionalProperties_ = new java.util.ArrayList< - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig>(shippingHandlingBusinessDays_); - bitField1_ |= 0x00010000; + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties>( + cloudExportAdditionalProperties_); + bitField2_ |= 0x08000000; } } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - shippingHandlingBusinessDaysBuilder_; + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties, + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder, + com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> + cloudExportAdditionalPropertiesBuilder_; /** * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - getShippingHandlingBusinessDaysList() { - if (shippingHandlingBusinessDaysBuilder_ == null) { - return java.util.Collections.unmodifiableList(shippingHandlingBusinessDays_); + public java.util.List + getCloudExportAdditionalPropertiesList() { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + return java.util.Collections.unmodifiableList(cloudExportAdditionalProperties_); } else { - return shippingHandlingBusinessDaysBuilder_.getMessageList(); + return cloudExportAdditionalPropertiesBuilder_.getMessageList(); } } @@ -26371,19 +55139,18 @@ private void ensureShippingHandlingBusinessDaysIsMutable() { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public int getShippingHandlingBusinessDaysCount() { - if (shippingHandlingBusinessDaysBuilder_ == null) { - return shippingHandlingBusinessDays_.size(); + public int getCloudExportAdditionalPropertiesCount() { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + return cloudExportAdditionalProperties_.size(); } else { - return shippingHandlingBusinessDaysBuilder_.getCount(); + return cloudExportAdditionalPropertiesBuilder_.getCount(); } } @@ -26391,20 +55158,19 @@ public int getShippingHandlingBusinessDaysCount() { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - getShippingHandlingBusinessDays(int index) { - if (shippingHandlingBusinessDaysBuilder_ == null) { - return shippingHandlingBusinessDays_.get(index); + public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties + getCloudExportAdditionalProperties(int index) { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + return cloudExportAdditionalProperties_.get(index); } else { - return shippingHandlingBusinessDaysBuilder_.getMessage(index); + return cloudExportAdditionalPropertiesBuilder_.getMessage(index); } } @@ -26412,27 +55178,24 @@ public int getShippingHandlingBusinessDaysCount() { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder setShippingHandlingBusinessDays( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - value) { - if (shippingHandlingBusinessDaysBuilder_ == null) { + public Builder setCloudExportAdditionalProperties( + int index, com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties value) { + if (cloudExportAdditionalPropertiesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.set(index, value); + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.set(index, value); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.setMessage(index, value); + cloudExportAdditionalPropertiesBuilder_.setMessage(index, value); } return this; } @@ -26441,25 +55204,23 @@ public Builder setShippingHandlingBusinessDays( * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder setShippingHandlingBusinessDays( + public Builder setCloudExportAdditionalProperties( int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - builderForValue) { - if (shippingHandlingBusinessDaysBuilder_ == null) { - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.set(index, builderForValue.build()); + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder + builderForValue) { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.set(index, builderForValue.build()); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.setMessage(index, builderForValue.build()); + cloudExportAdditionalPropertiesBuilder_.setMessage(index, builderForValue.build()); } return this; } @@ -26468,26 +55229,24 @@ public Builder setShippingHandlingBusinessDays( * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder addShippingHandlingBusinessDays( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - value) { - if (shippingHandlingBusinessDaysBuilder_ == null) { + public Builder addCloudExportAdditionalProperties( + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties value) { + if (cloudExportAdditionalPropertiesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.add(value); + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.add(value); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.addMessage(value); + cloudExportAdditionalPropertiesBuilder_.addMessage(value); } return this; } @@ -26496,27 +55255,24 @@ public Builder addShippingHandlingBusinessDays( * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder addShippingHandlingBusinessDays( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - value) { - if (shippingHandlingBusinessDaysBuilder_ == null) { + public Builder addCloudExportAdditionalProperties( + int index, com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties value) { + if (cloudExportAdditionalPropertiesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.add(index, value); + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.add(index, value); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.addMessage(index, value); + cloudExportAdditionalPropertiesBuilder_.addMessage(index, value); } return this; } @@ -26525,24 +55281,22 @@ public Builder addShippingHandlingBusinessDays( * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder addShippingHandlingBusinessDays( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder + public Builder addCloudExportAdditionalProperties( + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder builderForValue) { - if (shippingHandlingBusinessDaysBuilder_ == null) { - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.add(builderForValue.build()); + if (cloudExportAdditionalPropertiesBuilder_ == null) { + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.add(builderForValue.build()); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.addMessage(builderForValue.build()); + cloudExportAdditionalPropertiesBuilder_.addMessage(builderForValue.build()); } return this; } @@ -26551,25 +55305,23 @@ public Builder addShippingHandlingBusinessDays( * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder addShippingHandlingBusinessDays( + public Builder addCloudExportAdditionalProperties( int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder builderForValue) { - if (shippingHandlingBusinessDaysBuilder_ == null) { - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.add(index, builderForValue.build()); + if (cloudExportAdditionalPropertiesBuilder_ == null) { + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.add(index, builderForValue.build()); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.addMessage(index, builderForValue.build()); + cloudExportAdditionalPropertiesBuilder_.addMessage(index, builderForValue.build()); } return this; } @@ -26578,27 +55330,24 @@ public Builder addShippingHandlingBusinessDays( * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder addAllShippingHandlingBusinessDays( + public Builder addAllCloudExportAdditionalProperties( java.lang.Iterable< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig> + ? extends com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties> values) { - if (shippingHandlingBusinessDaysBuilder_ == null) { - ensureShippingHandlingBusinessDaysIsMutable(); + if (cloudExportAdditionalPropertiesBuilder_ == null) { + ensureCloudExportAdditionalPropertiesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, shippingHandlingBusinessDays_); + values, cloudExportAdditionalProperties_); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.addAllMessages(values); + cloudExportAdditionalPropertiesBuilder_.addAllMessages(values); } return this; } @@ -26607,21 +55356,20 @@ public Builder addAllShippingHandlingBusinessDays( * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder clearShippingHandlingBusinessDays() { - if (shippingHandlingBusinessDaysBuilder_ == null) { - shippingHandlingBusinessDays_ = java.util.Collections.emptyList(); - bitField1_ = (bitField1_ & ~0x00010000); + public Builder clearCloudExportAdditionalProperties() { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + cloudExportAdditionalProperties_ = java.util.Collections.emptyList(); + bitField2_ = (bitField2_ & ~0x08000000); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.clear(); + cloudExportAdditionalPropertiesBuilder_.clear(); } return this; } @@ -26630,21 +55378,20 @@ public Builder clearShippingHandlingBusinessDays() { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public Builder removeShippingHandlingBusinessDays(int index) { - if (shippingHandlingBusinessDaysBuilder_ == null) { - ensureShippingHandlingBusinessDaysIsMutable(); - shippingHandlingBusinessDays_.remove(index); + public Builder removeCloudExportAdditionalProperties(int index) { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + ensureCloudExportAdditionalPropertiesIsMutable(); + cloudExportAdditionalProperties_.remove(index); onChanged(); } else { - shippingHandlingBusinessDaysBuilder_.remove(index); + cloudExportAdditionalPropertiesBuilder_.remove(index); } return this; } @@ -26653,39 +55400,35 @@ public Builder removeShippingHandlingBusinessDays(int index) { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - getShippingHandlingBusinessDaysBuilder(int index) { - return internalGetShippingHandlingBusinessDaysFieldBuilder().getBuilder(index); + public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder + getCloudExportAdditionalPropertiesBuilder(int index) { + return internalGetCloudExportAdditionalPropertiesFieldBuilder().getBuilder(index); } /** * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder - getShippingHandlingBusinessDaysOrBuilder(int index) { - if (shippingHandlingBusinessDaysBuilder_ == null) { - return shippingHandlingBusinessDays_.get(index); + public com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder + getCloudExportAdditionalPropertiesOrBuilder(int index) { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + return cloudExportAdditionalProperties_.get(index); } else { - return shippingHandlingBusinessDaysBuilder_.getMessageOrBuilder(index); + return cloudExportAdditionalPropertiesBuilder_.getMessageOrBuilder(index); } } @@ -26693,23 +55436,21 @@ public Builder removeShippingHandlingBusinessDays(int index) { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ public java.util.List< ? extends - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - getShippingHandlingBusinessDaysOrBuilderList() { - if (shippingHandlingBusinessDaysBuilder_ != null) { - return shippingHandlingBusinessDaysBuilder_.getMessageOrBuilderList(); + com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> + getCloudExportAdditionalPropertiesOrBuilderList() { + if (cloudExportAdditionalPropertiesBuilder_ != null) { + return cloudExportAdditionalPropertiesBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(shippingHandlingBusinessDays_); + return java.util.Collections.unmodifiableList(cloudExportAdditionalProperties_); } } @@ -26717,20 +55458,18 @@ public Builder removeShippingHandlingBusinessDays(int index) { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - addShippingHandlingBusinessDaysBuilder() { - return internalGetShippingHandlingBusinessDaysFieldBuilder() + public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder + addCloudExportAdditionalPropertiesBuilder() { + return internalGetCloudExportAdditionalPropertiesFieldBuilder() .addBuilder( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties .getDefaultInstance()); } @@ -26738,21 +55477,19 @@ public Builder removeShippingHandlingBusinessDays(int index) { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - addShippingHandlingBusinessDaysBuilder(int index) { - return internalGetShippingHandlingBusinessDaysFieldBuilder() + public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder + addCloudExportAdditionalPropertiesBuilder(int index) { + return internalGetCloudExportAdditionalPropertiesFieldBuilder() .addBuilder( index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties .getDefaultInstance()); } @@ -26760,267 +55497,129 @@ public Builder removeShippingHandlingBusinessDays(int index) { * * *
-     * The business days during which orders can be handled. If not provided,
-     * Monday to Friday business days will be assumed.
+     * Extra fields to export to the Cloud Retail program.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_handling_business_days = 143; + * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; * */ public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder> - getShippingHandlingBusinessDaysBuilderList() { - return internalGetShippingHandlingBusinessDaysFieldBuilder().getBuilderList(); + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder> + getCloudExportAdditionalPropertiesBuilderList() { + return internalGetCloudExportAdditionalPropertiesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - internalGetShippingHandlingBusinessDaysFieldBuilder() { - if (shippingHandlingBusinessDaysBuilder_ == null) { - shippingHandlingBusinessDaysBuilder_ = + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties, + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder, + com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> + internalGetCloudExportAdditionalPropertiesFieldBuilder() { + if (cloudExportAdditionalPropertiesBuilder_ == null) { + cloudExportAdditionalPropertiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig.Builder, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder>( - shippingHandlingBusinessDays_, - ((bitField1_ & 0x00010000) != 0), + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties, + com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder, + com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder>( + cloudExportAdditionalProperties_, + ((bitField2_ & 0x08000000) != 0), getParentForChildren(), isClean()); - shippingHandlingBusinessDays_ = null; - } - return shippingHandlingBusinessDaysBuilder_; - } - - private java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - shippingTransitBusinessDays_ = java.util.Collections.emptyList(); - - private void ensureShippingTransitBusinessDaysIsMutable() { - if (!((bitField1_ & 0x00020000) != 0)) { - shippingTransitBusinessDays_ = - new java.util.ArrayList< - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig>(shippingTransitBusinessDays_); - bitField1_ |= 0x00020000; + cloudExportAdditionalProperties_ = null; } + return cloudExportAdditionalPropertiesBuilder_; } - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - shippingTransitBusinessDaysBuilder_; + private java.lang.Object virtualModelLink_ = ""; /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * URL of the 3D image of the item. See the
+     * [Help Center article](https://support.google.com/merchants/answer/13674896)
+     * for more information.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig> - getShippingTransitBusinessDaysList() { - if (shippingTransitBusinessDaysBuilder_ == null) { - return java.util.Collections.unmodifiableList(shippingTransitBusinessDays_); - } else { - return shippingTransitBusinessDaysBuilder_.getMessageList(); - } - } - - /** - * - * - *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
-     * 
+ * optional string virtual_model_link = 130; * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * + * @return Whether the virtualModelLink field is set. */ - public int getShippingTransitBusinessDaysCount() { - if (shippingTransitBusinessDaysBuilder_ == null) { - return shippingTransitBusinessDays_.size(); - } else { - return shippingTransitBusinessDaysBuilder_.getCount(); - } + public boolean hasVirtualModelLink() { + return ((bitField2_ & 0x10000000) != 0); } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * URL of the 3D image of the item. See the
+     * [Help Center article](https://support.google.com/merchants/answer/13674896)
+     * for more information.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - getShippingTransitBusinessDays(int index) { - if (shippingTransitBusinessDaysBuilder_ == null) { - return shippingTransitBusinessDays_.get(index); - } else { - return shippingTransitBusinessDaysBuilder_.getMessage(index); - } - } - - /** - * - * - *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
-     * 
+ * optional string virtual_model_link = 130; * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * + * @return The virtualModelLink. */ - public Builder setShippingTransitBusinessDays( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - value) { - if (shippingTransitBusinessDaysBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.set(index, value); - onChanged(); + public java.lang.String getVirtualModelLink() { + java.lang.Object ref = virtualModelLink_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + virtualModelLink_ = s; + return s; } else { - shippingTransitBusinessDaysBuilder_.setMessage(index, value); + return (java.lang.String) ref; } - return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * URL of the 3D image of the item. See the
+     * [Help Center article](https://support.google.com/merchants/answer/13674896)
+     * for more information.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - public Builder setShippingTransitBusinessDays( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - builderForValue) { - if (shippingTransitBusinessDaysBuilder_ == null) { - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.set(index, builderForValue.build()); - onChanged(); - } else { - shippingTransitBusinessDaysBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - - /** - * - * - *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
-     * 
+ * optional string virtual_model_link = 130; * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * + * @return The bytes for virtualModelLink. */ - public Builder addShippingTransitBusinessDays( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - value) { - if (shippingTransitBusinessDaysBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.add(value); - onChanged(); + public com.google.protobuf.ByteString getVirtualModelLinkBytes() { + java.lang.Object ref = virtualModelLink_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + virtualModelLink_ = b; + return b; } else { - shippingTransitBusinessDaysBuilder_.addMessage(value); + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * URL of the 3D image of the item. See the
+     * [Help Center article](https://support.google.com/merchants/answer/13674896)
+     * for more information.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - public Builder addShippingTransitBusinessDays( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - value) { - if (shippingTransitBusinessDaysBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.add(index, value); - onChanged(); - } else { - shippingTransitBusinessDaysBuilder_.addMessage(index, value); - } - return this; - } - - /** - * - * - *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
-     * 
+ * optional string virtual_model_link = 130; * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * + * @param value The virtualModelLink to set. + * @return This builder for chaining. */ - public Builder addShippingTransitBusinessDays( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - builderForValue) { - if (shippingTransitBusinessDaysBuilder_ == null) { - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.add(builderForValue.build()); - onChanged(); - } else { - shippingTransitBusinessDaysBuilder_.addMessage(builderForValue.build()); + public Builder setVirtualModelLink(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + virtualModelLink_ = value; + bitField2_ |= 0x10000000; + onChanged(); return this; } @@ -27028,26 +55627,19 @@ public Builder addShippingTransitBusinessDays( * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * URL of the 3D image of the item. See the
+     * [Help Center article](https://support.google.com/merchants/answer/13674896)
+     * for more information.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * + * optional string virtual_model_link = 130; + * + * @return This builder for chaining. */ - public Builder addShippingTransitBusinessDays( - int index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - builderForValue) { - if (shippingTransitBusinessDaysBuilder_ == null) { - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.add(index, builderForValue.build()); - onChanged(); - } else { - shippingTransitBusinessDaysBuilder_.addMessage(index, builderForValue.build()); - } + public Builder clearVirtualModelLink() { + virtualModelLink_ = getDefaultInstance().getVirtualModelLink(); + bitField2_ = (bitField2_ & ~0x10000000); + onChanged(); return this; } @@ -27055,327 +55647,365 @@ public Builder addShippingTransitBusinessDays( * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; - * - */ - public Builder addAllShippingTransitBusinessDays( - java.lang.Iterable< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig> - values) { - if (shippingTransitBusinessDaysBuilder_ == null) { - ensureShippingTransitBusinessDaysIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, shippingTransitBusinessDays_); - onChanged(); - } else { - shippingTransitBusinessDaysBuilder_.addAllMessages(values); + * URL of the 3D image of the item. See the + * [Help Center article](https://support.google.com/merchants/answer/13674896) + * for more information. + *
+ * + * optional string virtual_model_link = 130; + * + * @param value The bytes for virtualModelLink to set. + * @return This builder for chaining. + */ + public Builder setVirtualModelLinkBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + virtualModelLink_ = value; + bitField2_ |= 0x10000000; + onChanged(); return this; } + private java.util.List + certifications_ = java.util.Collections.emptyList(); + + private void ensureCertificationsIsMutable() { + if (!((bitField2_ & 0x20000000) != 0)) { + certifications_ = + new java.util.ArrayList( + certifications_); + bitField2_ |= 0x20000000; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductCertification, + com.google.shopping.merchant.products.v1.ProductCertification.Builder, + com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> + certificationsBuilder_; + /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder clearShippingTransitBusinessDays() { - if (shippingTransitBusinessDaysBuilder_ == null) { - shippingTransitBusinessDays_ = java.util.Collections.emptyList(); - bitField1_ = (bitField1_ & ~0x00020000); - onChanged(); + public java.util.List + getCertificationsList() { + if (certificationsBuilder_ == null) { + return java.util.Collections.unmodifiableList(certifications_); } else { - shippingTransitBusinessDaysBuilder_.clear(); + return certificationsBuilder_.getMessageList(); } - return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder removeShippingTransitBusinessDays(int index) { - if (shippingTransitBusinessDaysBuilder_ == null) { - ensureShippingTransitBusinessDaysIsMutable(); - shippingTransitBusinessDays_.remove(index); - onChanged(); + public int getCertificationsCount() { + if (certificationsBuilder_ == null) { + return certifications_.size(); } else { - shippingTransitBusinessDaysBuilder_.remove(index); + return certificationsBuilder_.getCount(); } - return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - getShippingTransitBusinessDaysBuilder(int index) { - return internalGetShippingTransitBusinessDaysFieldBuilder().getBuilder(index); + public com.google.shopping.merchant.products.v1.ProductCertification getCertifications( + int index) { + if (certificationsBuilder_ == null) { + return certifications_.get(index); + } else { + return certificationsBuilder_.getMessage(index); + } } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder - getShippingTransitBusinessDaysOrBuilder(int index) { - if (shippingTransitBusinessDaysBuilder_ == null) { - return shippingTransitBusinessDays_.get(index); + public Builder setCertifications( + int index, com.google.shopping.merchant.products.v1.ProductCertification value) { + if (certificationsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCertificationsIsMutable(); + certifications_.set(index, value); + onChanged(); } else { - return shippingTransitBusinessDaysBuilder_.getMessageOrBuilder(index); + certificationsBuilder_.setMessage(index, value); } + return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public java.util.List< - ? extends - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - getShippingTransitBusinessDaysOrBuilderList() { - if (shippingTransitBusinessDaysBuilder_ != null) { - return shippingTransitBusinessDaysBuilder_.getMessageOrBuilderList(); + public Builder setCertifications( + int index, + com.google.shopping.merchant.products.v1.ProductCertification.Builder builderForValue) { + if (certificationsBuilder_ == null) { + ensureCertificationsIsMutable(); + certifications_.set(index, builderForValue.build()); + onChanged(); } else { - return java.util.Collections.unmodifiableList(shippingTransitBusinessDays_); + certificationsBuilder_.setMessage(index, builderForValue.build()); } + return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - addShippingTransitBusinessDaysBuilder() { - return internalGetShippingTransitBusinessDaysFieldBuilder() - .addBuilder( - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .getDefaultInstance()); + public Builder addCertifications( + com.google.shopping.merchant.products.v1.ProductCertification value) { + if (certificationsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCertificationsIsMutable(); + certifications_.add(value); + onChanged(); + } else { + certificationsBuilder_.addMessage(value); + } + return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder - addShippingTransitBusinessDaysBuilder(int index) { - return internalGetShippingTransitBusinessDaysFieldBuilder() - .addBuilder( - index, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .getDefaultInstance()); + public Builder addCertifications( + int index, com.google.shopping.merchant.products.v1.ProductCertification value) { + if (certificationsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCertificationsIsMutable(); + certifications_.add(index, value); + onChanged(); + } else { + certificationsBuilder_.addMessage(index, value); + } + return this; } /** * * *
-     * The business days during which orders are in transit.
-     * If not provided, Monday to Friday business days will be assumed.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig shipping_transit_business_days = 144; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public java.util.List< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder> - getShippingTransitBusinessDaysBuilderList() { - return internalGetShippingTransitBusinessDaysFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig, - com.google.shopping.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig - .Builder, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder> - internalGetShippingTransitBusinessDaysFieldBuilder() { - if (shippingTransitBusinessDaysBuilder_ == null) { - shippingTransitBusinessDaysBuilder_ = - new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfig.Builder, - com.google.shopping.merchant.products.v1.ProductAttributes - .ShippingBusinessDaysConfigOrBuilder>( - shippingTransitBusinessDays_, - ((bitField1_ & 0x00020000) != 0), - getParentForChildren(), - isClean()); - shippingTransitBusinessDays_ = null; - } - return shippingTransitBusinessDaysBuilder_; - } - - private java.util.List - handlingCutoffTimes_ = java.util.Collections.emptyList(); - - private void ensureHandlingCutoffTimesIsMutable() { - if (!((bitField1_ & 0x00040000) != 0)) { - handlingCutoffTimes_ = - new java.util.ArrayList( - handlingCutoffTimes_); - bitField1_ |= 0x00040000; + public Builder addCertifications( + com.google.shopping.merchant.products.v1.ProductCertification.Builder builderForValue) { + if (certificationsBuilder_ == null) { + ensureCertificationsIsMutable(); + certifications_.add(builderForValue.build()); + onChanged(); + } else { + certificationsBuilder_.addMessage(builderForValue.build()); } + return this; } - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.HandlingCutoffTime, - com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder, - com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> - handlingCutoffTimesBuilder_; - /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public java.util.List - getHandlingCutoffTimesList() { - if (handlingCutoffTimesBuilder_ == null) { - return java.util.Collections.unmodifiableList(handlingCutoffTimes_); + public Builder addCertifications( + int index, + com.google.shopping.merchant.products.v1.ProductCertification.Builder builderForValue) { + if (certificationsBuilder_ == null) { + ensureCertificationsIsMutable(); + certifications_.add(index, builderForValue.build()); + onChanged(); } else { - return handlingCutoffTimesBuilder_.getMessageList(); + certificationsBuilder_.addMessage(index, builderForValue.build()); } + return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public int getHandlingCutoffTimesCount() { - if (handlingCutoffTimesBuilder_ == null) { - return handlingCutoffTimes_.size(); + public Builder addAllCertifications( + java.lang.Iterable + values) { + if (certificationsBuilder_ == null) { + ensureCertificationsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, certifications_); + onChanged(); } else { - return handlingCutoffTimesBuilder_.getCount(); + certificationsBuilder_.addAllMessages(values); } + return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public com.google.shopping.merchant.products.v1.HandlingCutoffTime getHandlingCutoffTimes( - int index) { - if (handlingCutoffTimesBuilder_ == null) { - return handlingCutoffTimes_.get(index); + public Builder clearCertifications() { + if (certificationsBuilder_ == null) { + certifications_ = java.util.Collections.emptyList(); + bitField2_ = (bitField2_ & ~0x20000000); + onChanged(); } else { - return handlingCutoffTimesBuilder_.getMessage(index); + certificationsBuilder_.clear(); } + return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder setHandlingCutoffTimes( - int index, com.google.shopping.merchant.products.v1.HandlingCutoffTime value) { - if (handlingCutoffTimesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.set(index, value); + public Builder removeCertifications(int index) { + if (certificationsBuilder_ == null) { + ensureCertificationsIsMutable(); + certifications_.remove(index); onChanged(); } else { - handlingCutoffTimesBuilder_.setMessage(index, value); + certificationsBuilder_.remove(index); } return this; } @@ -27384,389 +56014,410 @@ public Builder setHandlingCutoffTimes( * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder setHandlingCutoffTimes( - int index, - com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder builderForValue) { - if (handlingCutoffTimesBuilder_ == null) { - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.set(index, builderForValue.build()); - onChanged(); - } else { - handlingCutoffTimesBuilder_.setMessage(index, builderForValue.build()); - } - return this; + public com.google.shopping.merchant.products.v1.ProductCertification.Builder + getCertificationsBuilder(int index) { + return internalGetCertificationsFieldBuilder().getBuilder(index); } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder addHandlingCutoffTimes( - com.google.shopping.merchant.products.v1.HandlingCutoffTime value) { - if (handlingCutoffTimesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.add(value); - onChanged(); + public com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder + getCertificationsOrBuilder(int index) { + if (certificationsBuilder_ == null) { + return certifications_.get(index); } else { - handlingCutoffTimesBuilder_.addMessage(value); + return certificationsBuilder_.getMessageOrBuilder(index); } - return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder addHandlingCutoffTimes( - int index, com.google.shopping.merchant.products.v1.HandlingCutoffTime value) { - if (handlingCutoffTimesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.add(index, value); - onChanged(); + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> + getCertificationsOrBuilderList() { + if (certificationsBuilder_ != null) { + return certificationsBuilder_.getMessageOrBuilderList(); } else { - handlingCutoffTimesBuilder_.addMessage(index, value); + return java.util.Collections.unmodifiableList(certifications_); } - return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder addHandlingCutoffTimes( - com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder builderForValue) { - if (handlingCutoffTimesBuilder_ == null) { - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.add(builderForValue.build()); - onChanged(); - } else { - handlingCutoffTimesBuilder_.addMessage(builderForValue.build()); - } - return this; + public com.google.shopping.merchant.products.v1.ProductCertification.Builder + addCertificationsBuilder() { + return internalGetCertificationsFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductCertification.getDefaultInstance()); } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder addHandlingCutoffTimes( - int index, - com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder builderForValue) { - if (handlingCutoffTimesBuilder_ == null) { - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.add(index, builderForValue.build()); - onChanged(); - } else { - handlingCutoffTimesBuilder_.addMessage(index, builderForValue.build()); - } - return this; + public com.google.shopping.merchant.products.v1.ProductCertification.Builder + addCertificationsBuilder(int index) { + return internalGetCertificationsFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductCertification.getDefaultInstance()); } /** * * *
-     * The handling cutoff times for shipping.
+     * Product Certifications, for example for energy efficiency labeling of
+     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
+     * database. See the [Help
+     * Center](https://support.google.com/merchants/answer/13528839)
+     * article for more information.
      * 
* * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; * */ - public Builder addAllHandlingCutoffTimes( - java.lang.Iterable - values) { - if (handlingCutoffTimesBuilder_ == null) { - ensureHandlingCutoffTimesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, handlingCutoffTimes_); - onChanged(); - } else { - handlingCutoffTimesBuilder_.addAllMessages(values); + public java.util.List + getCertificationsBuilderList() { + return internalGetCertificationsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductCertification, + com.google.shopping.merchant.products.v1.ProductCertification.Builder, + com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> + internalGetCertificationsFieldBuilder() { + if (certificationsBuilder_ == null) { + certificationsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductCertification, + com.google.shopping.merchant.products.v1.ProductCertification.Builder, + com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder>( + certifications_, + ((bitField2_ & 0x20000000) != 0), + getParentForChildren(), + isClean()); + certifications_ = null; } - return this; + return certificationsBuilder_; } + private com.google.shopping.merchant.products.v1.StructuredTitle structuredTitle_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.StructuredTitle, + com.google.shopping.merchant.products.v1.StructuredTitle.Builder, + com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder> + structuredTitleBuilder_; + /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * + * + * @return Whether the structuredTitle field is set. */ - public Builder clearHandlingCutoffTimes() { - if (handlingCutoffTimesBuilder_ == null) { - handlingCutoffTimes_ = java.util.Collections.emptyList(); - bitField1_ = (bitField1_ & ~0x00040000); - onChanged(); - } else { - handlingCutoffTimesBuilder_.clear(); - } - return this; + public boolean hasStructuredTitle() { + return ((bitField2_ & 0x40000000) != 0); } /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * + * + * @return The structuredTitle. */ - public Builder removeHandlingCutoffTimes(int index) { - if (handlingCutoffTimesBuilder_ == null) { - ensureHandlingCutoffTimesIsMutable(); - handlingCutoffTimes_.remove(index); - onChanged(); + public com.google.shopping.merchant.products.v1.StructuredTitle getStructuredTitle() { + if (structuredTitleBuilder_ == null) { + return structuredTitle_ == null + ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() + : structuredTitle_; } else { - handlingCutoffTimesBuilder_.remove(index); + return structuredTitleBuilder_.getMessage(); } - return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * */ - public com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder - getHandlingCutoffTimesBuilder(int index) { - return internalGetHandlingCutoffTimesFieldBuilder().getBuilder(index); + public Builder setStructuredTitle( + com.google.shopping.merchant.products.v1.StructuredTitle value) { + if (structuredTitleBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + structuredTitle_ = value; + } else { + structuredTitleBuilder_.setMessage(value); + } + bitField2_ |= 0x40000000; + onChanged(); + return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * */ - public com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder - getHandlingCutoffTimesOrBuilder(int index) { - if (handlingCutoffTimesBuilder_ == null) { - return handlingCutoffTimes_.get(index); + public Builder setStructuredTitle( + com.google.shopping.merchant.products.v1.StructuredTitle.Builder builderForValue) { + if (structuredTitleBuilder_ == null) { + structuredTitle_ = builderForValue.build(); } else { - return handlingCutoffTimesBuilder_.getMessageOrBuilder(index); + structuredTitleBuilder_.setMessage(builderForValue.build()); } + bitField2_ |= 0x40000000; + onChanged(); + return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * */ - public java.util.List< - ? extends com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> - getHandlingCutoffTimesOrBuilderList() { - if (handlingCutoffTimesBuilder_ != null) { - return handlingCutoffTimesBuilder_.getMessageOrBuilderList(); + public Builder mergeStructuredTitle( + com.google.shopping.merchant.products.v1.StructuredTitle value) { + if (structuredTitleBuilder_ == null) { + if (((bitField2_ & 0x40000000) != 0) + && structuredTitle_ != null + && structuredTitle_ + != com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance()) { + getStructuredTitleBuilder().mergeFrom(value); + } else { + structuredTitle_ = value; + } } else { - return java.util.Collections.unmodifiableList(handlingCutoffTimes_); + structuredTitleBuilder_.mergeFrom(value); + } + if (structuredTitle_ != null) { + bitField2_ |= 0x40000000; + onChanged(); } + return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * */ - public com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder - addHandlingCutoffTimesBuilder() { - return internalGetHandlingCutoffTimesFieldBuilder() - .addBuilder( - com.google.shopping.merchant.products.v1.HandlingCutoffTime.getDefaultInstance()); + public Builder clearStructuredTitle() { + bitField2_ = (bitField2_ & ~0x40000000); + structuredTitle_ = null; + if (structuredTitleBuilder_ != null) { + structuredTitleBuilder_.dispose(); + structuredTitleBuilder_ = null; + } + onChanged(); + return this; } /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * */ - public com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder - addHandlingCutoffTimesBuilder(int index) { - return internalGetHandlingCutoffTimesFieldBuilder() - .addBuilder( - index, - com.google.shopping.merchant.products.v1.HandlingCutoffTime.getDefaultInstance()); + public com.google.shopping.merchant.products.v1.StructuredTitle.Builder + getStructuredTitleBuilder() { + bitField2_ |= 0x40000000; + onChanged(); + return internalGetStructuredTitleFieldBuilder().getBuilder(); } /** * * *
-     * The handling cutoff times for shipping.
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * - * repeated .google.shopping.merchant.products.v1.HandlingCutoffTime handling_cutoff_times = 141; + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; * */ - public java.util.List - getHandlingCutoffTimesBuilderList() { - return internalGetHandlingCutoffTimesFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.HandlingCutoffTime, - com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder, - com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder> - internalGetHandlingCutoffTimesFieldBuilder() { - if (handlingCutoffTimesBuilder_ == null) { - handlingCutoffTimesBuilder_ = - new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.HandlingCutoffTime, - com.google.shopping.merchant.products.v1.HandlingCutoffTime.Builder, - com.google.shopping.merchant.products.v1.HandlingCutoffTimeOrBuilder>( - handlingCutoffTimes_, - ((bitField1_ & 0x00040000) != 0), - getParentForChildren(), - isClean()); - handlingCutoffTimes_ = null; + public com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder + getStructuredTitleOrBuilder() { + if (structuredTitleBuilder_ != null) { + return structuredTitleBuilder_.getMessageOrBuilder(); + } else { + return structuredTitle_ == null + ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() + : structuredTitle_; } - return handlingCutoffTimesBuilder_; } - private java.lang.Object shippingLabel_ = ""; - /** * * *
-     * The shipping label of the product, used to group products in account-level
-     * shipping rules. Max. 100 characters. For more information, see
-     * [Shipping label](https://support.google.com/merchants/answer/6324504).
+     * Structured title, for algorithmically (AI)-generated titles.
      * 
* - * optional string shipping_label = 46; - * - * @return Whether the shippingLabel field is set. + * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * */ - public boolean hasShippingLabel() { - return ((bitField1_ & 0x00080000) != 0); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.StructuredTitle, + com.google.shopping.merchant.products.v1.StructuredTitle.Builder, + com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder> + internalGetStructuredTitleFieldBuilder() { + if (structuredTitleBuilder_ == null) { + structuredTitleBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.StructuredTitle, + com.google.shopping.merchant.products.v1.StructuredTitle.Builder, + com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder>( + getStructuredTitle(), getParentForChildren(), isClean()); + structuredTitle_ = null; + } + return structuredTitleBuilder_; } + private com.google.shopping.merchant.products.v1.StructuredDescription structuredDescription_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.StructuredDescription, + com.google.shopping.merchant.products.v1.StructuredDescription.Builder, + com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder> + structuredDescriptionBuilder_; + /** * * *
-     * The shipping label of the product, used to group products in account-level
-     * shipping rules. Max. 100 characters. For more information, see
-     * [Shipping label](https://support.google.com/merchants/answer/6324504).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string shipping_label = 46; + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * * - * @return The shippingLabel. + * @return Whether the structuredDescription field is set. */ - 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; - } + public boolean hasStructuredDescription() { + return ((bitField2_ & 0x80000000) != 0); } /** * * *
-     * The shipping label of the product, used to group products in account-level
-     * shipping rules. Max. 100 characters. For more information, see
-     * [Shipping label](https://support.google.com/merchants/answer/6324504).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string shipping_label = 46; + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * * - * @return The bytes for shippingLabel. + * @return The structuredDescription. */ - 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; + public com.google.shopping.merchant.products.v1.StructuredDescription + getStructuredDescription() { + if (structuredDescriptionBuilder_ == null) { + return structuredDescription_ == null + ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() + : structuredDescription_; } else { - return (com.google.protobuf.ByteString) ref; + return structuredDescriptionBuilder_.getMessage(); } } @@ -27774,42 +56425,24 @@ public com.google.protobuf.ByteString getShippingLabelBytes() { * * *
-     * The shipping label of the product, used to group products in account-level
-     * shipping rules. Max. 100 characters. For more information, see
-     * [Shipping label](https://support.google.com/merchants/answer/6324504).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string shipping_label = 46; - * - * @param value The shippingLabel to set. - * @return This builder for chaining. + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * */ - public Builder setShippingLabel(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setStructuredDescription( + com.google.shopping.merchant.products.v1.StructuredDescription value) { + if (structuredDescriptionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + structuredDescription_ = value; + } else { + structuredDescriptionBuilder_.setMessage(value); } - shippingLabel_ = value; - bitField1_ |= 0x00080000; - onChanged(); - return this; - } - - /** - * - * - *
-     * The shipping label of the product, used to group products in account-level
-     * shipping rules. Max. 100 characters. For more information, see
-     * [Shipping label](https://support.google.com/merchants/answer/6324504).
-     * 
- * - * optional string shipping_label = 46; - * - * @return This builder for chaining. - */ - public Builder clearShippingLabel() { - shippingLabel_ = getDefaultInstance().getShippingLabel(); - bitField1_ = (bitField1_ & ~0x00080000); + bitField2_ |= 0x80000000; onChanged(); return this; } @@ -27818,204 +56451,198 @@ public Builder clearShippingLabel() { * * *
-     * The shipping label of the product, used to group products in account-level
-     * shipping rules. Max. 100 characters. For more information, see
-     * [Shipping label](https://support.google.com/merchants/answer/6324504).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string shipping_label = 46; - * - * @param value The bytes for shippingLabel to set. - * @return This builder for chaining. + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * */ - public Builder setShippingLabelBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder setStructuredDescription( + com.google.shopping.merchant.products.v1.StructuredDescription.Builder builderForValue) { + if (structuredDescriptionBuilder_ == null) { + structuredDescription_ = builderForValue.build(); + } else { + structuredDescriptionBuilder_.setMessage(builderForValue.build()); } - checkByteStringIsUtf8(value); - shippingLabel_ = value; - bitField1_ |= 0x00080000; + bitField2_ |= 0x80000000; onChanged(); return this; } - private java.lang.Object returnPolicyLabel_ = ""; - - /** - * - * - *
-     * The return label of the product, used to group products in account-level
-     * return policies. Max. 100 characters. For more information, see
-     * [Return policy label](https://support.google.com/merchants/answer/9445425).
-     * 
- * - * optional string return_policy_label = 170; - * - * @return Whether the returnPolicyLabel field is set. - */ - public boolean hasReturnPolicyLabel() { - return ((bitField1_ & 0x00100000) != 0); - } - /** * * *
-     * The return label of the product, used to group products in account-level
-     * return policies. Max. 100 characters. For more information, see
-     * [Return policy label](https://support.google.com/merchants/answer/9445425).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string return_policy_label = 170; - * - * @return The returnPolicyLabel. + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * */ - public java.lang.String getReturnPolicyLabel() { - java.lang.Object ref = returnPolicyLabel_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - returnPolicyLabel_ = s; - return s; + public Builder mergeStructuredDescription( + com.google.shopping.merchant.products.v1.StructuredDescription value) { + if (structuredDescriptionBuilder_ == null) { + if (((bitField2_ & 0x80000000) != 0) + && structuredDescription_ != null + && structuredDescription_ + != com.google.shopping.merchant.products.v1.StructuredDescription + .getDefaultInstance()) { + getStructuredDescriptionBuilder().mergeFrom(value); + } else { + structuredDescription_ = value; + } } else { - return (java.lang.String) ref; + structuredDescriptionBuilder_.mergeFrom(value); + } + if (structuredDescription_ != null) { + bitField2_ |= 0x80000000; + onChanged(); } + return this; } /** * * *
-     * The return label of the product, used to group products in account-level
-     * return policies. Max. 100 characters. For more information, see
-     * [Return policy label](https://support.google.com/merchants/answer/9445425).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string return_policy_label = 170; - * - * @return The bytes for returnPolicyLabel. + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * */ - public com.google.protobuf.ByteString getReturnPolicyLabelBytes() { - java.lang.Object ref = returnPolicyLabel_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - returnPolicyLabel_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public Builder clearStructuredDescription() { + bitField2_ = (bitField2_ & ~0x80000000); + structuredDescription_ = null; + if (structuredDescriptionBuilder_ != null) { + structuredDescriptionBuilder_.dispose(); + structuredDescriptionBuilder_ = null; } + onChanged(); + return this; } /** * * *
-     * The return label of the product, used to group products in account-level
-     * return policies. Max. 100 characters. For more information, see
-     * [Return policy label](https://support.google.com/merchants/answer/9445425).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string return_policy_label = 170; - * - * @param value The returnPolicyLabel to set. - * @return This builder for chaining. + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * */ - public Builder setReturnPolicyLabel(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - returnPolicyLabel_ = value; - bitField1_ |= 0x00100000; + public com.google.shopping.merchant.products.v1.StructuredDescription.Builder + getStructuredDescriptionBuilder() { + bitField2_ |= 0x80000000; onChanged(); - return this; + return internalGetStructuredDescriptionFieldBuilder().getBuilder(); } /** * * *
-     * The return label of the product, used to group products in account-level
-     * return policies. Max. 100 characters. For more information, see
-     * [Return policy label](https://support.google.com/merchants/answer/9445425).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string return_policy_label = 170; - * - * @return This builder for chaining. + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * */ - public Builder clearReturnPolicyLabel() { - returnPolicyLabel_ = getDefaultInstance().getReturnPolicyLabel(); - bitField1_ = (bitField1_ & ~0x00100000); - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder + getStructuredDescriptionOrBuilder() { + if (structuredDescriptionBuilder_ != null) { + return structuredDescriptionBuilder_.getMessageOrBuilder(); + } else { + return structuredDescription_ == null + ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() + : structuredDescription_; + } } /** * * *
-     * The return label of the product, used to group products in account-level
-     * return policies. Max. 100 characters. For more information, see
-     * [Return policy label](https://support.google.com/merchants/answer/9445425).
+     * Structured description, for algorithmically (AI)-generated descriptions.
      * 
* - * optional string return_policy_label = 170; - * - * @param value The bytes for returnPolicyLabel to set. - * @return This builder for chaining. + * + * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * */ - public Builder setReturnPolicyLabelBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.StructuredDescription, + com.google.shopping.merchant.products.v1.StructuredDescription.Builder, + com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder> + internalGetStructuredDescriptionFieldBuilder() { + if (structuredDescriptionBuilder_ == null) { + structuredDescriptionBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.StructuredDescription, + com.google.shopping.merchant.products.v1.StructuredDescription.Builder, + com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder>( + getStructuredDescription(), getParentForChildren(), isClean()); + structuredDescription_ = null; } - checkByteStringIsUtf8(value); - returnPolicyLabel_ = value; - bitField1_ |= 0x00100000; - onChanged(); - return this; + return structuredDescriptionBuilder_; } - private java.lang.Object transitTimeLabel_ = ""; + private com.google.shopping.type.Price autoPricingMinPrice_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + autoPricingMinPriceBuilder_; /** * * *
-     * The transit time label of the product, used to group product in
-     * account-level transit time tables.
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string transit_time_label = 47; + * .google.shopping.type.Price auto_pricing_min_price = 124; * - * @return Whether the transitTimeLabel field is set. + * @return Whether the autoPricingMinPrice field is set. */ - public boolean hasTransitTimeLabel() { - return ((bitField1_ & 0x00200000) != 0); + public boolean hasAutoPricingMinPrice() { + return ((bitField3_ & 0x00000001) != 0); } /** * * *
-     * The transit time label of the product, used to group product in
-     * account-level transit time tables.
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string transit_time_label = 47; + * .google.shopping.type.Price auto_pricing_min_price = 124; * - * @return The transitTimeLabel. + * @return The autoPricingMinPrice. */ - public java.lang.String getTransitTimeLabel() { - java.lang.Object ref = transitTimeLabel_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - transitTimeLabel_ = s; - return s; + public com.google.shopping.type.Price getAutoPricingMinPrice() { + if (autoPricingMinPriceBuilder_ == null) { + return autoPricingMinPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : autoPricingMinPrice_; } else { - return (java.lang.String) ref; + return autoPricingMinPriceBuilder_.getMessage(); } } @@ -28023,45 +56650,51 @@ public java.lang.String getTransitTimeLabel() { * * *
-     * The transit time label of the product, used to group product in
-     * account-level transit time tables.
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string transit_time_label = 47; - * - * @return The bytes for transitTimeLabel. + * .google.shopping.type.Price auto_pricing_min_price = 124; */ - public com.google.protobuf.ByteString getTransitTimeLabelBytes() { - java.lang.Object ref = transitTimeLabel_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - transitTimeLabel_ = b; - return b; + public Builder setAutoPricingMinPrice(com.google.shopping.type.Price value) { + if (autoPricingMinPriceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + autoPricingMinPrice_ = value; } else { - return (com.google.protobuf.ByteString) ref; + autoPricingMinPriceBuilder_.setMessage(value); } + bitField3_ |= 0x00000001; + onChanged(); + return this; } /** * * *
-     * The transit time label of the product, used to group product in
-     * account-level transit time tables.
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string transit_time_label = 47; - * - * @param value The transitTimeLabel to set. - * @return This builder for chaining. + * .google.shopping.type.Price auto_pricing_min_price = 124; */ - public Builder setTransitTimeLabel(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setAutoPricingMinPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (autoPricingMinPriceBuilder_ == null) { + autoPricingMinPrice_ = builderForValue.build(); + } else { + autoPricingMinPriceBuilder_.setMessage(builderForValue.build()); } - transitTimeLabel_ = value; - bitField1_ |= 0x00200000; + bitField3_ |= 0x00000001; onChanged(); return this; } @@ -28070,18 +56703,32 @@ public Builder setTransitTimeLabel(java.lang.String value) { * * *
-     * The transit time label of the product, used to group product in
-     * account-level transit time tables.
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string transit_time_label = 47; - * - * @return This builder for chaining. + * .google.shopping.type.Price auto_pricing_min_price = 124; */ - public Builder clearTransitTimeLabel() { - transitTimeLabel_ = getDefaultInstance().getTransitTimeLabel(); - bitField1_ = (bitField1_ & ~0x00200000); - onChanged(); + public Builder mergeAutoPricingMinPrice(com.google.shopping.type.Price value) { + if (autoPricingMinPriceBuilder_ == null) { + if (((bitField3_ & 0x00000001) != 0) + && autoPricingMinPrice_ != null + && autoPricingMinPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { + getAutoPricingMinPriceBuilder().mergeFrom(value); + } else { + autoPricingMinPrice_ = value; + } + } else { + autoPricingMinPriceBuilder_.mergeFrom(value); + } + if (autoPricingMinPrice_ != null) { + bitField3_ |= 0x00000001; + onChanged(); + } return this; } @@ -28089,69 +56736,68 @@ public Builder clearTransitTimeLabel() { * * *
-     * The transit time label of the product, used to group product in
-     * account-level transit time tables.
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string transit_time_label = 47; - * - * @param value The bytes for transitTimeLabel to set. - * @return This builder for chaining. + * .google.shopping.type.Price auto_pricing_min_price = 124; */ - public Builder setTransitTimeLabelBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder clearAutoPricingMinPrice() { + bitField3_ = (bitField3_ & ~0x00000001); + autoPricingMinPrice_ = null; + if (autoPricingMinPriceBuilder_ != null) { + autoPricingMinPriceBuilder_.dispose(); + autoPricingMinPriceBuilder_ = null; } - checkByteStringIsUtf8(value); - transitTimeLabel_ = value; - bitField1_ |= 0x00200000; onChanged(); return this; } - private java.lang.Object size_ = ""; - /** * * *
-     * Size of the item. Only one value is allowed. For variants with different
-     * sizes, insert a separate product for each size with the same
-     * `itemGroupId` value, see
-     * [Size](https://support.google.com/merchants/answer/6324492).
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string size = 48; - * - * @return Whether the size field is set. + * .google.shopping.type.Price auto_pricing_min_price = 124; */ - public boolean hasSize() { - return ((bitField1_ & 0x00400000) != 0); + public com.google.shopping.type.Price.Builder getAutoPricingMinPriceBuilder() { + bitField3_ |= 0x00000001; + onChanged(); + return internalGetAutoPricingMinPriceFieldBuilder().getBuilder(); } /** * * *
-     * Size of the item. Only one value is allowed. For variants with different
-     * sizes, insert a separate product for each size with the same
-     * `itemGroupId` value, see
-     * [Size](https://support.google.com/merchants/answer/6324492).
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string size = 48; - * - * @return The size. + * .google.shopping.type.Price auto_pricing_min_price = 124; */ - public java.lang.String getSize() { - java.lang.Object ref = size_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - size_ = s; - return s; + public com.google.shopping.type.PriceOrBuilder getAutoPricingMinPriceOrBuilder() { + if (autoPricingMinPriceBuilder_ != null) { + return autoPricingMinPriceBuilder_.getMessageOrBuilder(); } else { - return (java.lang.String) ref; + return autoPricingMinPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : autoPricingMinPrice_; } } @@ -28159,156 +56805,159 @@ public java.lang.String getSize() { * * *
-     * Size of the item. Only one value is allowed. For variants with different
-     * sizes, insert a separate product for each size with the same
-     * `itemGroupId` value, see
-     * [Size](https://support.google.com/merchants/answer/6324492).
+     * A safeguard in the [automated discounts]
+     * (https://support.google.com/merchants/answer/10295759) and
+     * "Dynamic Promotions"
+     * (https://support.google.com/merchants/answer/13949249) projects,
+     * ensuring that discounts on business offers do not fall below this value,
+     * thereby preserving the offer's value and profitability.
      * 
* - * optional string size = 48; - * - * @return The bytes for size. + * .google.shopping.type.Price auto_pricing_min_price = 124; */ - public com.google.protobuf.ByteString getSizeBytes() { - java.lang.Object ref = size_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - size_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetAutoPricingMinPriceFieldBuilder() { + if (autoPricingMinPriceBuilder_ == null) { + autoPricingMinPriceBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getAutoPricingMinPrice(), getParentForChildren(), isClean()); + autoPricingMinPrice_ = null; } + return autoPricingMinPriceBuilder_; } - /** - * - * - *
-     * Size of the item. Only one value is allowed. For variants with different
-     * sizes, insert a separate product for each size with the same
-     * `itemGroupId` value, see
-     * [Size](https://support.google.com/merchants/answer/6324492).
-     * 
- * - * optional string size = 48; - * - * @param value The size to set. - * @return This builder for chaining. - */ - public Builder setSize(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + private java.util.List + sustainabilityIncentives_ = java.util.Collections.emptyList(); + + private void ensureSustainabilityIncentivesIsMutable() { + if (!((bitField3_ & 0x00000002) != 0)) { + sustainabilityIncentives_ = + new java.util.ArrayList< + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive>( + sustainabilityIncentives_); + bitField3_ |= 0x00000002; } - size_ = value; - bitField1_ |= 0x00400000; - onChanged(); - return this; } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> + sustainabilityIncentivesBuilder_; + /** * * *
-     * Size of the item. Only one value is allowed. For variants with different
-     * sizes, insert a separate product for each size with the same
-     * `itemGroupId` value, see
-     * [Size](https://support.google.com/merchants/answer/6324492).
+     * The list of sustainability incentive programs.
      * 
* - * optional string size = 48; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder clearSize() { - size_ = getDefaultInstance().getSize(); - bitField1_ = (bitField1_ & ~0x00400000); - onChanged(); - return this; + public java.util.List + getSustainabilityIncentivesList() { + if (sustainabilityIncentivesBuilder_ == null) { + return java.util.Collections.unmodifiableList(sustainabilityIncentives_); + } else { + return sustainabilityIncentivesBuilder_.getMessageList(); + } } /** * * *
-     * Size of the item. Only one value is allowed. For variants with different
-     * sizes, insert a separate product for each size with the same
-     * `itemGroupId` value, see
-     * [Size](https://support.google.com/merchants/answer/6324492).
+     * The list of sustainability incentive programs.
      * 
* - * optional string size = 48; - * - * @param value The bytes for size to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder setSizeBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public int getSustainabilityIncentivesCount() { + if (sustainabilityIncentivesBuilder_ == null) { + return sustainabilityIncentives_.size(); + } else { + return sustainabilityIncentivesBuilder_.getCount(); } - checkByteStringIsUtf8(value); - size_ = value; - bitField1_ |= 0x00400000; - onChanged(); - return this; } - private int sizeSystem_ = 0; - /** * * *
-     * System in which the size is specified. Recommended for apparel items.
-     * For more information, see
-     * [Size system](https://support.google.com/merchants/answer/6324502).
+     * The list of sustainability incentive programs.
      * 
* - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @return Whether the sizeSystem field is set. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - @java.lang.Override - public boolean hasSizeSystem() { - return ((bitField1_ & 0x00800000) != 0); + public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive + getSustainabilityIncentives(int index) { + if (sustainabilityIncentivesBuilder_ == null) { + return sustainabilityIncentives_.get(index); + } else { + return sustainabilityIncentivesBuilder_.getMessage(index); + } } /** * * *
-     * System in which the size is specified. Recommended for apparel items.
-     * For more information, see
-     * [Size system](https://support.google.com/merchants/answer/6324502).
+     * The list of sustainability incentive programs.
      * 
* - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @return The enum numeric value on the wire for sizeSystem. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - @java.lang.Override - public int getSizeSystemValue() { - return sizeSystem_; + public Builder setSustainabilityIncentives( + int index, com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive value) { + if (sustainabilityIncentivesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.set(index, value); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.setMessage(index, value); + } + return this; } /** * * *
-     * System in which the size is specified. Recommended for apparel items.
-     * For more information, see
-     * [Size system](https://support.google.com/merchants/answer/6324502).
+     * The list of sustainability incentive programs.
      * 
* - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @param value The enum numeric value on the wire for sizeSystem to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder setSizeSystemValue(int value) { - sizeSystem_ = value; - bitField1_ |= 0x00800000; - onChanged(); + public Builder setSustainabilityIncentives( + int index, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + builderForValue) { + if (sustainabilityIncentivesBuilder_ == null) { + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.set(index, builderForValue.build()); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.setMessage(index, builderForValue.build()); + } return this; } @@ -28316,45 +56965,51 @@ public Builder setSizeSystemValue(int value) { * * *
-     * System in which the size is specified. Recommended for apparel items.
-     * For more information, see
-     * [Size system](https://support.google.com/merchants/answer/6324502).
+     * The list of sustainability incentive programs.
      * 
* - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @return The sizeSystem. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.SizeSystem getSizeSystem() { - com.google.shopping.merchant.products.v1.SizeSystem result = - com.google.shopping.merchant.products.v1.SizeSystem.forNumber(sizeSystem_); - return result == null - ? com.google.shopping.merchant.products.v1.SizeSystem.UNRECOGNIZED - : result; + public Builder addSustainabilityIncentives( + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive value) { + if (sustainabilityIncentivesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.add(value); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.addMessage(value); + } + return this; } /** * * *
-     * System in which the size is specified. Recommended for apparel items.
-     * For more information, see
-     * [Size system](https://support.google.com/merchants/answer/6324502).
+     * The list of sustainability incentive programs.
      * 
* - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @param value The sizeSystem to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder setSizeSystem(com.google.shopping.merchant.products.v1.SizeSystem value) { - if (value == null) { - throw new NullPointerException(); + public Builder addSustainabilityIncentives( + int index, com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive value) { + if (sustainabilityIncentivesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.add(index, value); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.addMessage(index, value); } - bitField1_ |= 0x00800000; - sizeSystem_ = value.getNumber(); - onChanged(); return this; } @@ -28362,107 +57017,117 @@ public Builder setSizeSystem(com.google.shopping.merchant.products.v1.SizeSystem * * *
-     * System in which the size is specified. Recommended for apparel items.
-     * For more information, see
-     * [Size system](https://support.google.com/merchants/answer/6324502).
+     * The list of sustainability incentive programs.
      * 
* - * optional .google.shopping.merchant.products.v1.SizeSystem size_system = 49; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder clearSizeSystem() { - bitField1_ = (bitField1_ & ~0x00800000); - sizeSystem_ = 0; - onChanged(); - return this; - } - - private com.google.protobuf.Internal.IntList sizeTypes_ = emptyIntList(); - - private void ensureSizeTypesIsMutable() { - if (!sizeTypes_.isModifiable()) { - sizeTypes_ = makeMutableCopy(sizeTypes_); + public Builder addSustainabilityIncentives( + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + builderForValue) { + if (sustainabilityIncentivesBuilder_ == null) { + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.add(builderForValue.build()); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.addMessage(builderForValue.build()); } - bitField1_ |= 0x01000000; + return this; } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @return A list containing the sizeTypes. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public java.util.List getSizeTypesList() { - return new com.google.protobuf.Internal.IntListAdapter< - com.google.shopping.merchant.products.v1.SizeType>(sizeTypes_, sizeTypes_converter_); + public Builder addSustainabilityIncentives( + int index, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + builderForValue) { + if (sustainabilityIncentivesBuilder_ == null) { + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.add(index, builderForValue.build()); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.addMessage(index, builderForValue.build()); + } + return this; } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @return The count of sizeTypes. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public int getSizeTypesCount() { - return sizeTypes_.size(); + public Builder addAllSustainabilityIncentives( + java.lang.Iterable< + ? extends com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive> + values) { + if (sustainabilityIncentivesBuilder_ == null) { + ensureSustainabilityIncentivesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sustainabilityIncentives_); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.addAllMessages(values); + } + return this; } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param index The index of the element to return. - * @return The sizeTypes at the given index. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public com.google.shopping.merchant.products.v1.SizeType getSizeTypes(int index) { - return sizeTypes_converter_.convert(sizeTypes_.getInt(index)); + public Builder clearSustainabilityIncentives() { + if (sustainabilityIncentivesBuilder_ == null) { + sustainabilityIncentives_ = java.util.Collections.emptyList(); + bitField3_ = (bitField3_ & ~0x00000002); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.clear(); + } + return this; } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param index The index to set the value at. - * @param value The sizeTypes to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder setSizeTypes( - int index, com.google.shopping.merchant.products.v1.SizeType value) { - if (value == null) { - throw new NullPointerException(); + public Builder removeSustainabilityIncentives(int index) { + if (sustainabilityIncentivesBuilder_ == null) { + ensureSustainabilityIncentivesIsMutable(); + sustainabilityIncentives_.remove(index); + onChanged(); + } else { + sustainabilityIncentivesBuilder_.remove(index); } - ensureSizeTypesIsMutable(); - sizeTypes_.setInt(index, value.getNumber()); - onChanged(); return this; } @@ -28470,233 +57135,244 @@ public Builder setSizeTypes( * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param value The sizeTypes to add. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder addSizeTypes(com.google.shopping.merchant.products.v1.SizeType value) { - if (value == null) { - throw new NullPointerException(); - } - ensureSizeTypesIsMutable(); - sizeTypes_.addInt(value.getNumber()); - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + getSustainabilityIncentivesBuilder(int index) { + return internalGetSustainabilityIncentivesFieldBuilder().getBuilder(index); } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param values The sizeTypes to add. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder addAllSizeTypes( - java.lang.Iterable values) { - ensureSizeTypesIsMutable(); - for (com.google.shopping.merchant.products.v1.SizeType value : values) { - sizeTypes_.addInt(value.getNumber()); + public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder + getSustainabilityIncentivesOrBuilder(int index) { + if (sustainabilityIncentivesBuilder_ == null) { + return sustainabilityIncentives_.get(index); + } else { + return sustainabilityIncentivesBuilder_.getMessageOrBuilder(index); } - onChanged(); - return this; } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder clearSizeTypes() { - sizeTypes_ = emptyIntList(); - bitField1_ = (bitField1_ & ~0x01000000); - onChanged(); - return this; + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> + getSustainabilityIncentivesOrBuilderList() { + if (sustainabilityIncentivesBuilder_ != null) { + return sustainabilityIncentivesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(sustainabilityIncentives_); + } } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @return A list containing the enum numeric values on the wire for sizeTypes. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public java.util.List getSizeTypesValueList() { - sizeTypes_.makeImmutable(); - return sizeTypes_; + public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + addSustainabilityIncentivesBuilder() { + return internalGetSustainabilityIncentivesFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive + .getDefaultInstance()); } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param index The index of the value to return. - * @return The enum numeric value on the wire of sizeTypes at the given index. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public int getSizeTypesValue(int index) { - return sizeTypes_.getInt(index); + public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + addSustainabilityIncentivesBuilder(int index) { + return internalGetSustainabilityIncentivesFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive + .getDefaultInstance()); } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * The list of sustainability incentive programs.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; - * - * @param index The index to set the value at. - * @param value The enum numeric value on the wire for sizeTypes to set. - * @return This builder for chaining. + * + * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * */ - public Builder setSizeTypesValue(int index, int value) { - ensureSizeTypesIsMutable(); - sizeTypes_.setInt(index, value); - onChanged(); - return this; + public java.util.List< + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder> + getSustainabilityIncentivesBuilderList() { + return internalGetSustainabilityIncentivesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> + internalGetSustainabilityIncentivesFieldBuilder() { + if (sustainabilityIncentivesBuilder_ == null) { + sustainabilityIncentivesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder, + com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder>( + sustainabilityIncentives_, + ((bitField3_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + sustainabilityIncentives_ = null; + } + return sustainabilityIncentivesBuilder_; + } + + private com.google.protobuf.LazyStringArrayList videoLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureVideoLinksIsMutable() { + if (!videoLinks_.isModifiable()) { + videoLinks_ = new com.google.protobuf.LazyStringArrayList(videoLinks_); + } + bitField3_ |= 0x00000004; } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @param value The enum numeric value on the wire for sizeTypes to add. - * @return This builder for chaining. + * @return A list containing the videoLinks. */ - public Builder addSizeTypesValue(int value) { - ensureSizeTypesIsMutable(); - sizeTypes_.addInt(value); - onChanged(); - return this; + public com.google.protobuf.ProtocolStringList getVideoLinksList() { + videoLinks_.makeImmutable(); + return videoLinks_; } /** * * *
-     * The cut of the item. It can be used to represent combined size types for
-     * apparel items. Maximum two of size types can be provided, see
-     * [Size type](https://support.google.com/merchants/answer/6324497).
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * repeated .google.shopping.merchant.products.v1.SizeType size_types = 50; + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @param values The enum numeric values on the wire for sizeTypes to add. - * @return This builder for chaining. + * @return The count of videoLinks. */ - public Builder addAllSizeTypesValue(java.lang.Iterable values) { - ensureSizeTypesIsMutable(); - for (int value : values) { - sizeTypes_.addInt(value); - } - onChanged(); - return this; + public int getVideoLinksCount() { + return videoLinks_.size(); } - private int energyEfficiencyClass_ = 0; - /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @return Whether the energyEfficiencyClass field is set. + * @param index The index of the element to return. + * @return The videoLinks at the given index. */ - @java.lang.Override - public boolean hasEnergyEfficiencyClass() { - return ((bitField1_ & 0x02000000) != 0); + public java.lang.String getVideoLinks(int index) { + return videoLinks_.get(index); } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @return The enum numeric value on the wire for energyEfficiencyClass. + * @param index The index of the value to return. + * @return The bytes of the videoLinks at the given index. */ - @java.lang.Override - public int getEnergyEfficiencyClassValue() { - return energyEfficiencyClass_; + public com.google.protobuf.ByteString getVideoLinksBytes(int index) { + return videoLinks_.getByteString(index); } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @param value The enum numeric value on the wire for energyEfficiencyClass to set. + * @param index The index to set the value at. + * @param value The videoLinks to set. * @return This builder for chaining. */ - public Builder setEnergyEfficiencyClassValue(int value) { - energyEfficiencyClass_ = value; - bitField1_ |= 0x02000000; + public Builder setVideoLinks(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureVideoLinksIsMutable(); + videoLinks_.set(index, value); + bitField3_ |= 0x00000004; onChanged(); return this; } @@ -28705,51 +57381,47 @@ public Builder setEnergyEfficiencyClassValue(int value) { * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @return The energyEfficiencyClass. + * @param value The videoLinks to add. + * @return This builder for chaining. */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass - getEnergyEfficiencyClass() { - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( - energyEfficiencyClass_); - return result == null - ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED - : result; + public Builder addVideoLinks(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureVideoLinksIsMutable(); + videoLinks_.add(value); + bitField3_ |= 0x00000004; + onChanged(); + return this; } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @param value The energyEfficiencyClass to set. + * @param values The videoLinks to add. * @return This builder for chaining. */ - public Builder setEnergyEfficiencyClass( - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass value) { - if (value == null) { - throw new NullPointerException(); - } - bitField1_ |= 0x02000000; - energyEfficiencyClass_ = value.getNumber(); + public Builder addAllVideoLinks(java.lang.Iterable values) { + ensureVideoLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, videoLinks_); + bitField3_ |= 0x00000004; onChanged(); return this; } @@ -28758,139 +57430,164 @@ public Builder setEnergyEfficiencyClass( * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass energy_efficiency_class = 53; - * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * * @return This builder for chaining. */ - public Builder clearEnergyEfficiencyClass() { - bitField1_ = (bitField1_ & ~0x02000000); - energyEfficiencyClass_ = 0; + public Builder clearVideoLinks() { + videoLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField3_ = (bitField3_ & ~0x00000004); + ; onChanged(); return this; } - private int minEnergyEfficiencyClass_ = 0; - /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * Optional. A list of video URLs for the item. Use this attribute to provide
+     * more visuals for your product beyond your image attributes. See the [Help
+     * Center article](https://support.google.com/merchants/answer/15216925) for
+     * more information.
      * 
* - * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; - * + * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; * - * @return Whether the minEnergyEfficiencyClass field is set. + * @param value The bytes of the videoLinks to add. + * @return This builder for chaining. */ - @java.lang.Override - public boolean hasMinEnergyEfficiencyClass() { - return ((bitField1_ & 0x04000000) != 0); + public Builder addVideoLinksBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureVideoLinksIsMutable(); + videoLinks_.add(value); + bitField3_ |= 0x00000004; + onChanged(); + return this; + } + + private java.util.List + minimumOrderValues_ = java.util.Collections.emptyList(); + + private void ensureMinimumOrderValuesIsMutable() { + if (!((bitField3_ & 0x00000008) != 0)) { + minimumOrderValues_ = + new java.util.ArrayList< + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue>( + minimumOrderValues_); + bitField3_ |= 0x00000008; + } } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder> + minimumOrderValuesBuilder_; + /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return The enum numeric value on the wire for minEnergyEfficiencyClass. */ - @java.lang.Override - public int getMinEnergyEfficiencyClassValue() { - return minEnergyEfficiencyClass_; + public java.util.List + getMinimumOrderValuesList() { + if (minimumOrderValuesBuilder_ == null) { + return java.util.Collections.unmodifiableList(minimumOrderValues_); + } else { + return minimumOrderValuesBuilder_.getMessageList(); + } } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @param value The enum numeric value on the wire for minEnergyEfficiencyClass to set. - * @return This builder for chaining. */ - public Builder setMinEnergyEfficiencyClassValue(int value) { - minEnergyEfficiencyClass_ = value; - bitField1_ |= 0x04000000; - onChanged(); - return this; + public int getMinimumOrderValuesCount() { + if (minimumOrderValuesBuilder_ == null) { + return minimumOrderValues_.size(); + } else { + return minimumOrderValuesBuilder_.getCount(); + } } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return The minEnergyEfficiencyClass. */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass - getMinEnergyEfficiencyClass() { - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( - minEnergyEfficiencyClass_); - return result == null - ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED - : result; + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue getMinimumOrderValues( + int index) { + if (minimumOrderValuesBuilder_ == null) { + return minimumOrderValues_.get(index); + } else { + return minimumOrderValuesBuilder_.getMessage(index); + } } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @param value The minEnergyEfficiencyClass to set. - * @return This builder for chaining. */ - public Builder setMinEnergyEfficiencyClass( - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass value) { - if (value == null) { - throw new NullPointerException(); + public Builder setMinimumOrderValues( + int index, com.google.shopping.merchant.products.v1.ProductMinimumOrderValue value) { + if (minimumOrderValuesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.set(index, value); + onChanged(); + } else { + minimumOrderValuesBuilder_.setMessage(index, value); } - bitField1_ |= 0x04000000; - minEnergyEfficiencyClass_ = value.getNumber(); - onChanged(); return this; } @@ -28898,86 +57595,110 @@ public Builder setMinEnergyEfficiencyClass( * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass min_energy_efficiency_class = 54; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return This builder for chaining. */ - public Builder clearMinEnergyEfficiencyClass() { - bitField1_ = (bitField1_ & ~0x04000000); - minEnergyEfficiencyClass_ = 0; - onChanged(); + public Builder setMinimumOrderValues( + int index, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder builderForValue) { + if (minimumOrderValuesBuilder_ == null) { + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.set(index, builderForValue.build()); + onChanged(); + } else { + minimumOrderValuesBuilder_.setMessage(index, builderForValue.build()); + } return this; } - private int maxEnergyEfficiencyClass_ = 0; - /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return Whether the maxEnergyEfficiencyClass field is set. - */ - @java.lang.Override - public boolean hasMaxEnergyEfficiencyClass() { - return ((bitField1_ & 0x08000000) != 0); + */ + public Builder addMinimumOrderValues( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue value) { + if (minimumOrderValuesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.add(value); + onChanged(); + } else { + minimumOrderValuesBuilder_.addMessage(value); + } + return this; } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return The enum numeric value on the wire for maxEnergyEfficiencyClass. */ - @java.lang.Override - public int getMaxEnergyEfficiencyClassValue() { - return maxEnergyEfficiencyClass_; + public Builder addMinimumOrderValues( + int index, com.google.shopping.merchant.products.v1.ProductMinimumOrderValue value) { + if (minimumOrderValuesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.add(index, value); + onChanged(); + } else { + minimumOrderValuesBuilder_.addMessage(index, value); + } + return this; } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @param value The enum numeric value on the wire for maxEnergyEfficiencyClass to set. - * @return This builder for chaining. */ - public Builder setMaxEnergyEfficiencyClassValue(int value) { - maxEnergyEfficiencyClass_ = value; - bitField1_ |= 0x08000000; - onChanged(); + public Builder addMinimumOrderValues( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder builderForValue) { + if (minimumOrderValuesBuilder_ == null) { + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.add(builderForValue.build()); + onChanged(); + } else { + minimumOrderValuesBuilder_.addMessage(builderForValue.build()); + } return this; } @@ -28985,52 +57706,54 @@ public Builder setMaxEnergyEfficiencyClassValue(int value) { * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return The maxEnergyEfficiencyClass. */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.EnergyEfficiencyClass - getMaxEnergyEfficiencyClass() { - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass result = - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.forNumber( - maxEnergyEfficiencyClass_); - return result == null - ? com.google.shopping.merchant.products.v1.EnergyEfficiencyClass.UNRECOGNIZED - : result; + public Builder addMinimumOrderValues( + int index, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder builderForValue) { + if (minimumOrderValuesBuilder_ == null) { + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.add(index, builderForValue.build()); + onChanged(); + } else { + minimumOrderValuesBuilder_.addMessage(index, builderForValue.build()); + } + return this; } /** * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @param value The maxEnergyEfficiencyClass to set. - * @return This builder for chaining. */ - public Builder setMaxEnergyEfficiencyClass( - com.google.shopping.merchant.products.v1.EnergyEfficiencyClass value) { - if (value == null) { - throw new NullPointerException(); + public Builder addAllMinimumOrderValues( + java.lang.Iterable< + ? extends com.google.shopping.merchant.products.v1.ProductMinimumOrderValue> + values) { + if (minimumOrderValuesBuilder_ == null) { + ensureMinimumOrderValuesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, minimumOrderValues_); + onChanged(); + } else { + minimumOrderValuesBuilder_.addAllMessages(values); } - bitField1_ |= 0x08000000; - maxEnergyEfficiencyClass_ = value.getNumber(); - onChanged(); return this; } @@ -29038,204 +57761,226 @@ public Builder setMaxEnergyEfficiencyClass( * * *
-     * The [energy efficiency
-     * class](https://support.google.com/merchants/answer/7562785) as defined in
-     * EU directive 2010/30/EU.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* * - * optional .google.shopping.merchant.products.v1.EnergyEfficiencyClass max_energy_efficiency_class = 55; + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return This builder for chaining. */ - public Builder clearMaxEnergyEfficiencyClass() { - bitField1_ = (bitField1_ & ~0x08000000); - maxEnergyEfficiencyClass_ = 0; - onChanged(); + public Builder clearMinimumOrderValues() { + if (minimumOrderValuesBuilder_ == null) { + minimumOrderValues_ = java.util.Collections.emptyList(); + bitField3_ = (bitField3_ & ~0x00000008); + onChanged(); + } else { + minimumOrderValuesBuilder_.clear(); + } return this; } - private com.google.shopping.merchant.products.v1.UnitPricingMeasure unitPricingMeasure_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.UnitPricingMeasure, - com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder, - com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder> - unitPricingMeasureBuilder_; - /** * * *
-     * The measure and dimension of an item.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return Whether the unitPricingMeasure field is set. */ - public boolean hasUnitPricingMeasure() { - return ((bitField1_ & 0x10000000) != 0); + public Builder removeMinimumOrderValues(int index) { + if (minimumOrderValuesBuilder_ == null) { + ensureMinimumOrderValuesIsMutable(); + minimumOrderValues_.remove(index); + onChanged(); + } else { + minimumOrderValuesBuilder_.remove(index); + } + return this; } /** * * *
-     * The measure and dimension of an item.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * - * - * @return The unitPricingMeasure. */ - public com.google.shopping.merchant.products.v1.UnitPricingMeasure getUnitPricingMeasure() { - if (unitPricingMeasureBuilder_ == null) { - return unitPricingMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() - : unitPricingMeasure_; - } else { - return unitPricingMeasureBuilder_.getMessage(); - } + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder + getMinimumOrderValuesBuilder(int index) { + return internalGetMinimumOrderValuesFieldBuilder().getBuilder(index); } /** * * *
-     * The measure and dimension of an item.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * */ - public Builder setUnitPricingMeasure( - com.google.shopping.merchant.products.v1.UnitPricingMeasure value) { - if (unitPricingMeasureBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - unitPricingMeasure_ = value; + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder + getMinimumOrderValuesOrBuilder(int index) { + if (minimumOrderValuesBuilder_ == null) { + return minimumOrderValues_.get(index); } else { - unitPricingMeasureBuilder_.setMessage(value); + return minimumOrderValuesBuilder_.getMessageOrBuilder(index); } - bitField1_ |= 0x10000000; - onChanged(); - return this; } /** * * *
-     * The measure and dimension of an item.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * */ - public Builder setUnitPricingMeasure( - com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder builderForValue) { - if (unitPricingMeasureBuilder_ == null) { - unitPricingMeasure_ = builderForValue.build(); + public java.util.List< + ? extends com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder> + getMinimumOrderValuesOrBuilderList() { + if (minimumOrderValuesBuilder_ != null) { + return minimumOrderValuesBuilder_.getMessageOrBuilderList(); } else { - unitPricingMeasureBuilder_.setMessage(builderForValue.build()); + return java.util.Collections.unmodifiableList(minimumOrderValues_); } - bitField1_ |= 0x10000000; - onChanged(); - return this; } /** * * *
-     * The measure and dimension of an item.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * */ - public Builder mergeUnitPricingMeasure( - com.google.shopping.merchant.products.v1.UnitPricingMeasure value) { - if (unitPricingMeasureBuilder_ == null) { - if (((bitField1_ & 0x10000000) != 0) - && unitPricingMeasure_ != null - && unitPricingMeasure_ - != com.google.shopping.merchant.products.v1.UnitPricingMeasure - .getDefaultInstance()) { - getUnitPricingMeasureBuilder().mergeFrom(value); - } else { - unitPricingMeasure_ = value; - } - } else { - unitPricingMeasureBuilder_.mergeFrom(value); - } - if (unitPricingMeasure_ != null) { - bitField1_ |= 0x10000000; - onChanged(); - } - return this; + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder + addMinimumOrderValuesBuilder() { + return internalGetMinimumOrderValuesFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue + .getDefaultInstance()); } /** * * *
-     * The measure and dimension of an item.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * */ - public Builder clearUnitPricingMeasure() { - bitField1_ = (bitField1_ & ~0x10000000); - unitPricingMeasure_ = null; - if (unitPricingMeasureBuilder_ != null) { - unitPricingMeasureBuilder_.dispose(); - unitPricingMeasureBuilder_ = null; - } - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder + addMinimumOrderValuesBuilder(int index) { + return internalGetMinimumOrderValuesFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue + .getDefaultInstance()); } /** * * *
-     * The measure and dimension of an item.
+     * The [minimum value](https://support.google.com/merchants/answer/16989009)
+     * in the cart before a customer can initiate checkout. Supports multiple
+     * minimum order values. Different minimum order values can be specified per
+     * country, service and surface. Maximum entries: 100.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; * */ - public com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder - getUnitPricingMeasureBuilder() { - bitField1_ |= 0x10000000; - onChanged(); - return internalGetUnitPricingMeasureFieldBuilder().getBuilder(); + public java.util.List + getMinimumOrderValuesBuilderList() { + return internalGetMinimumOrderValuesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder> + internalGetMinimumOrderValuesFieldBuilder() { + if (minimumOrderValuesBuilder_ == null) { + minimumOrderValuesBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder>( + minimumOrderValues_, + ((bitField3_ & 0x00000008) != 0), + getParentForChildren(), + isClean()); + minimumOrderValues_ = null; + } + return minimumOrderValuesBuilder_; } + private java.lang.Object vin_ = ""; + /** * * *
-     * The measure and dimension of an item.
+     * The [Vehicle Identification Number
+     * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+     * vehicle.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; - * + * string vin = 147; + * + * @return The vin. */ - public com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder - getUnitPricingMeasureOrBuilder() { - if (unitPricingMeasureBuilder_ != null) { - return unitPricingMeasureBuilder_.getMessageOrBuilder(); + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; } else { - return unitPricingMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingMeasure.getDefaultInstance() - : unitPricingMeasure_; + return (java.lang.String) ref; } } @@ -29243,177 +57988,165 @@ public Builder clearUnitPricingMeasure() { * * *
-     * The measure and dimension of an item.
+     * The [Vehicle Identification Number
+     * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+     * vehicle.
      * 
* - * .google.shopping.merchant.products.v1.UnitPricingMeasure unit_pricing_measure = 56; - * + * string vin = 147; + * + * @return The bytes for vin. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.UnitPricingMeasure, - com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder, - com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder> - internalGetUnitPricingMeasureFieldBuilder() { - if (unitPricingMeasureBuilder_ == null) { - unitPricingMeasureBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.UnitPricingMeasure, - com.google.shopping.merchant.products.v1.UnitPricingMeasure.Builder, - com.google.shopping.merchant.products.v1.UnitPricingMeasureOrBuilder>( - getUnitPricingMeasure(), getParentForChildren(), isClean()); - unitPricingMeasure_ = null; + public com.google.protobuf.ByteString getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return unitPricingMeasureBuilder_; } - private com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure unitPricingBaseMeasure_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure, - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder, - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder> - unitPricingBaseMeasureBuilder_; - /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Vehicle Identification Number
+     * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+     * vehicle.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string vin = 147; * - * @return Whether the unitPricingBaseMeasure field is set. + * @param value The vin to set. + * @return This builder for chaining. */ - public boolean hasUnitPricingBaseMeasure() { - return ((bitField1_ & 0x20000000) != 0); + public Builder setVin(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + vin_ = value; + bitField3_ |= 0x00000010; + onChanged(); + return this; } /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Vehicle Identification Number
+     * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+     * vehicle.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string vin = 147; * - * @return The unitPricingBaseMeasure. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure - getUnitPricingBaseMeasure() { - if (unitPricingBaseMeasureBuilder_ == null) { - return unitPricingBaseMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() - : unitPricingBaseMeasure_; - } else { - return unitPricingBaseMeasureBuilder_.getMessage(); - } + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField3_ = (bitField3_ & ~0x00000010); + onChanged(); + return this; } /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Vehicle Identification Number
+     * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+     * vehicle.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string vin = 147; + * + * @param value The bytes for vin to set. + * @return This builder for chaining. */ - public Builder setUnitPricingBaseMeasure( - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure value) { - if (unitPricingBaseMeasureBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - unitPricingBaseMeasure_ = value; - } else { - unitPricingBaseMeasureBuilder_.setMessage(value); + public Builder setVinBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - bitField1_ |= 0x20000000; + checkByteStringIsUtf8(value); + vin_ = value; + bitField3_ |= 0x00000010; onChanged(); return this; } + private java.lang.Object model_ = ""; + /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+     * vehicle, such as `LX`, `EX`, and others.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string model = 148; + * + * @return The model. */ - public Builder setUnitPricingBaseMeasure( - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder builderForValue) { - if (unitPricingBaseMeasureBuilder_ == null) { - unitPricingBaseMeasure_ = builderForValue.build(); + public java.lang.String getModel() { + java.lang.Object ref = model_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + model_ = s; + return s; } else { - unitPricingBaseMeasureBuilder_.setMessage(builderForValue.build()); + return (java.lang.String) ref; } - bitField1_ |= 0x20000000; - onChanged(); - return this; } /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+     * vehicle, such as `LX`, `EX`, and others.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string model = 148; + * + * @return The bytes for model. */ - public Builder mergeUnitPricingBaseMeasure( - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure value) { - if (unitPricingBaseMeasureBuilder_ == null) { - if (((bitField1_ & 0x20000000) != 0) - && unitPricingBaseMeasure_ != null - && unitPricingBaseMeasure_ - != com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure - .getDefaultInstance()) { - getUnitPricingBaseMeasureBuilder().mergeFrom(value); - } else { - unitPricingBaseMeasure_ = value; - } + public com.google.protobuf.ByteString getModelBytes() { + java.lang.Object ref = model_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + model_ = b; + return b; } else { - unitPricingBaseMeasureBuilder_.mergeFrom(value); - } - if (unitPricingBaseMeasure_ != null) { - bitField1_ |= 0x20000000; - onChanged(); + return (com.google.protobuf.ByteString) ref; } - return this; } /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+     * vehicle, such as `LX`, `EX`, and others.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string model = 148; + * + * @param value The model to set. + * @return This builder for chaining. */ - public Builder clearUnitPricingBaseMeasure() { - bitField1_ = (bitField1_ & ~0x20000000); - unitPricingBaseMeasure_ = null; - if (unitPricingBaseMeasureBuilder_ != null) { - unitPricingBaseMeasureBuilder_.dispose(); - unitPricingBaseMeasureBuilder_ = null; + public Builder setModel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + model_ = value; + bitField3_ |= 0x00000020; onChanged(); return this; } @@ -29422,120 +58155,133 @@ public Builder clearUnitPricingBaseMeasure() { * * *
-     * The preference of the denominator of the unit price.
+     * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+     * vehicle, such as `LX`, `EX`, and others.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string model = 148; + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder - getUnitPricingBaseMeasureBuilder() { - bitField1_ |= 0x20000000; + public Builder clearModel() { + model_ = getDefaultInstance().getModel(); + bitField3_ = (bitField3_ & ~0x00000020); onChanged(); - return internalGetUnitPricingBaseMeasureFieldBuilder().getBuilder(); + return this; } /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+     * vehicle, such as `LX`, `EX`, and others.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string model = 148; + * + * @param value The bytes for model to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder - getUnitPricingBaseMeasureOrBuilder() { - if (unitPricingBaseMeasureBuilder_ != null) { - return unitPricingBaseMeasureBuilder_.getMessageOrBuilder(); - } else { - return unitPricingBaseMeasure_ == null - ? com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.getDefaultInstance() - : unitPricingBaseMeasure_; + public Builder setModelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + model_ = value; + bitField3_ |= 0x00000020; + onChanged(); + return this; } + private java.lang.Object trim_ = ""; + /** * * *
-     * The preference of the denominator of the unit price.
+     * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+     * vehicle model, such as `S`, `SV`, `SL` and others.
      * 
* - * - * .google.shopping.merchant.products.v1.UnitPricingBaseMeasure unit_pricing_base_measure = 57; - * + * string trim = 149; + * + * @return The trim. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure, - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder, - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder> - internalGetUnitPricingBaseMeasureFieldBuilder() { - if (unitPricingBaseMeasureBuilder_ == null) { - unitPricingBaseMeasureBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure, - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasure.Builder, - com.google.shopping.merchant.products.v1.UnitPricingBaseMeasureOrBuilder>( - getUnitPricingBaseMeasure(), getParentForChildren(), isClean()); - unitPricingBaseMeasure_ = null; + public java.lang.String getTrim() { + java.lang.Object ref = trim_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trim_ = s; + return s; + } else { + return (java.lang.String) ref; } - return unitPricingBaseMeasureBuilder_; } - private long multipack_; - /** * * *
-     * The number of identical products in a business-defined multipack.
+     * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+     * vehicle model, such as `S`, `SV`, `SL` and others.
      * 
* - * optional int64 multipack = 58; + * string trim = 149; * - * @return Whether the multipack field is set. + * @return The bytes for trim. */ - @java.lang.Override - public boolean hasMultipack() { - return ((bitField1_ & 0x40000000) != 0); + public com.google.protobuf.ByteString getTrimBytes() { + java.lang.Object ref = trim_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + trim_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** * * *
-     * The number of identical products in a business-defined multipack.
+     * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+     * vehicle model, such as `S`, `SV`, `SL` and others.
      * 
* - * optional int64 multipack = 58; + * string trim = 149; * - * @return The multipack. + * @param value The trim to set. + * @return This builder for chaining. */ - @java.lang.Override - public long getMultipack() { - return multipack_; + public Builder setTrim(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + trim_ = value; + bitField3_ |= 0x00000040; + onChanged(); + return this; } /** * * *
-     * The number of identical products in a business-defined multipack.
+     * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+     * vehicle model, such as `S`, `SV`, `SL` and others.
      * 
* - * optional int64 multipack = 58; + * string trim = 149; * - * @param value The multipack to set. * @return This builder for chaining. */ - public Builder setMultipack(long value) { - - multipack_ = value; - bitField1_ |= 0x40000000; + public Builder clearTrim() { + trim_ = getDefaultInstance().getTrim(); + bitField3_ = (bitField3_ & ~0x00000040); onChanged(); return this; } @@ -29544,113 +58290,116 @@ public Builder setMultipack(long value) { * * *
-     * The number of identical products in a business-defined multipack.
+     * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+     * vehicle model, such as `S`, `SV`, `SL` and others.
      * 
* - * optional int64 multipack = 58; + * string trim = 149; * + * @param value The bytes for trim to set. * @return This builder for chaining. */ - public Builder clearMultipack() { - bitField1_ = (bitField1_ & ~0x40000000); - multipack_ = 0L; + public Builder setTrimBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + trim_ = value; + bitField3_ |= 0x00000040; onChanged(); return this; } - private java.lang.Object adsGrouping_ = ""; + private int bodyStyle_ = 0; /** * * *
-     * Used to group items in an arbitrary way. Only for CPA%, discouraged
-     * otherwise. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The [body style](https://support.google.com/google-ads/answer/14157085) of
+     * the vehicle.
      * 
* - * optional string ads_grouping = 59; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * * - * @return Whether the adsGrouping field is set. + * @return The enum numeric value on the wire for bodyStyle. */ - public boolean hasAdsGrouping() { - return ((bitField1_ & 0x80000000) != 0); + @java.lang.Override + public int getBodyStyleValue() { + return bodyStyle_; } /** * * *
-     * Used to group items in an arbitrary way. Only for CPA%, discouraged
-     * otherwise. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The [body style](https://support.google.com/google-ads/answer/14157085) of
+     * the vehicle.
      * 
* - * optional string ads_grouping = 59; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * * - * @return The adsGrouping. + * @param value The enum numeric value on the wire for bodyStyle to set. + * @return This builder for chaining. */ - public java.lang.String getAdsGrouping() { - java.lang.Object ref = adsGrouping_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - adsGrouping_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public Builder setBodyStyleValue(int value) { + bodyStyle_ = value; + bitField3_ |= 0x00000080; + onChanged(); + return this; } /** * * *
-     * Used to group items in an arbitrary way. Only for CPA%, discouraged
-     * otherwise. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The [body style](https://support.google.com/google-ads/answer/14157085) of
+     * the vehicle.
      * 
* - * optional string ads_grouping = 59; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * * - * @return The bytes for adsGrouping. + * @return The bodyStyle. */ - public com.google.protobuf.ByteString getAdsGroupingBytes() { - java.lang.Object ref = adsGrouping_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - adsGrouping_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle + getBodyStyle() { + com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle result = + com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle.forNumber( + bodyStyle_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle.UNRECOGNIZED + : result; } /** * * *
-     * Used to group items in an arbitrary way. Only for CPA%, discouraged
-     * otherwise. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The [body style](https://support.google.com/google-ads/answer/14157085) of
+     * the vehicle.
      * 
* - * optional string ads_grouping = 59; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * * - * @param value The adsGrouping to set. + * @param value The bodyStyle to set. * @return This builder for chaining. */ - public Builder setAdsGrouping(java.lang.String value) { + public Builder setBodyStyle( + com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle value) { if (value == null) { throw new NullPointerException(); } - adsGrouping_ = value; - bitField1_ |= 0x80000000; + bitField3_ |= 0x00000080; + bodyStyle_ = value.getNumber(); onChanged(); return this; } @@ -29659,142 +58408,152 @@ public Builder setAdsGrouping(java.lang.String value) { * * *
-     * Used to group items in an arbitrary way. Only for CPA%, discouraged
-     * otherwise. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The [body style](https://support.google.com/google-ads/answer/14157085) of
+     * the vehicle.
      * 
* - * optional string ads_grouping = 59; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * * * @return This builder for chaining. */ - public Builder clearAdsGrouping() { - adsGrouping_ = getDefaultInstance().getAdsGrouping(); - bitField1_ = (bitField1_ & ~0x80000000); + public Builder clearBodyStyle() { + bitField3_ = (bitField3_ & ~0x00000080); + bodyStyle_ = 0; onChanged(); return this; } + private long year_; + /** * * *
-     * Used to group items in an arbitrary way. Only for CPA%, discouraged
-     * otherwise. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The [Year](https://support.google.com/google-ads/answer/14152816) of the
+     * vehicle model.
      * 
* - * optional string ads_grouping = 59; + * int64 year = 151; * - * @param value The bytes for adsGrouping to set. - * @return This builder for chaining. + * @return The year. */ - public Builder setAdsGroupingBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - adsGrouping_ = value; - bitField1_ |= 0x80000000; - onChanged(); - return this; - } - - private com.google.protobuf.LazyStringArrayList adsLabels_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensureAdsLabelsIsMutable() { - if (!adsLabels_.isModifiable()) { - adsLabels_ = new com.google.protobuf.LazyStringArrayList(adsLabels_); - } - bitField2_ |= 0x00000001; + @java.lang.Override + public long getYear() { + return year_; } /** * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The [Year](https://support.google.com/google-ads/answer/14152816) of the
+     * vehicle model.
      * 
* - * repeated string ads_labels = 60; + * int64 year = 151; * - * @return A list containing the adsLabels. + * @param value The year to set. + * @return This builder for chaining. */ - public com.google.protobuf.ProtocolStringList getAdsLabelsList() { - adsLabels_.makeImmutable(); - return adsLabels_; + public Builder setYear(long value) { + + year_ = value; + bitField3_ |= 0x00000100; + onChanged(); + return this; } /** * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The [Year](https://support.google.com/google-ads/answer/14152816) of the
+     * vehicle model.
      * 
* - * repeated string ads_labels = 60; + * int64 year = 151; * - * @return The count of adsLabels. + * @return This builder for chaining. */ - public int getAdsLabelsCount() { - return adsLabels_.size(); + public Builder clearYear() { + bitField3_ = (bitField3_ & ~0x00000100); + year_ = 0L; + onChanged(); + return this; } + private com.google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder> + mileageBuilder_; + /** * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
      * 
* - * repeated string ads_labels = 60; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; * - * @param index The index of the element to return. - * @return The adsLabels at the given index. + * @return Whether the mileage field is set. */ - public java.lang.String getAdsLabels(int index) { - return adsLabels_.get(index); + public boolean hasMileage() { + return ((bitField3_ & 0x00000200) != 0); } /** * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
      * 
* - * repeated string ads_labels = 60; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; * - * @param index The index of the value to return. - * @return The bytes of the adsLabels at the given index. + * @return The mileage. */ - public com.google.protobuf.ByteString getAdsLabelsBytes(int index) { - return adsLabels_.getByteString(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getMileage() { + if (mileageBuilder_ == null) { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance() + : mileage_; + } else { + return mileageBuilder_.getMessage(); + } } /** * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
      * 
* - * repeated string ads_labels = 60; - * - * @param index The index to set the value at. - * @param value The adsLabels to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; */ - public Builder setAdsLabels(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setMileage( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage value) { + if (mileageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mileage_ = value; + } else { + mileageBuilder_.setMessage(value); } - ensureAdsLabelsIsMutable(); - adsLabels_.set(index, value); - bitField2_ |= 0x00000001; + bitField3_ |= 0x00000200; onChanged(); return this; } @@ -29803,21 +58562,22 @@ public Builder setAdsLabels(int index, java.lang.String value) { * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
      * 
* - * repeated string ads_labels = 60; - * - * @param value The adsLabels to add. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; */ - public Builder addAdsLabels(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setMileage( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder + builderForValue) { + if (mileageBuilder_ == null) { + mileage_ = builderForValue.build(); + } else { + mileageBuilder_.setMessage(builderForValue.build()); } - ensureAdsLabelsIsMutable(); - adsLabels_.add(value); - bitField2_ |= 0x00000001; + bitField3_ |= 0x00000200; onChanged(); return this; } @@ -29826,18 +58586,53 @@ public Builder addAdsLabels(java.lang.String value) { * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
      * 
* - * repeated string ads_labels = 60; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + */ + public Builder mergeMileage( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage value) { + if (mileageBuilder_ == null) { + if (((bitField3_ & 0x00000200) != 0) + && mileage_ != null + && mileage_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance()) { + getMileageBuilder().mergeFrom(value); + } else { + mileage_ = value; + } + } else { + mileageBuilder_.mergeFrom(value); + } + if (mileage_ != null) { + bitField3_ |= 0x00000200; + onChanged(); + } + return this; + } + + /** * - * @param values The adsLabels to add. - * @return This builder for chaining. + * + *
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; */ - public Builder addAllAdsLabels(java.lang.Iterable values) { - ensureAdsLabelsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, adsLabels_); - bitField2_ |= 0x00000001; + public Builder clearMileage() { + bitField3_ = (bitField3_ & ~0x00000200); + mileage_ = null; + if (mileageBuilder_ != null) { + mileageBuilder_.dispose(); + mileageBuilder_ = null; + } onChanged(); return this; } @@ -29846,84 +58641,116 @@ public Builder addAllAdsLabels(java.lang.Iterable values) { * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
      * 
* - * repeated string ads_labels = 60; - * - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; */ - public Builder clearAdsLabels() { - adsLabels_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField2_ = (bitField2_ & ~0x00000001); - ; + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder + getMileageBuilder() { + bitField3_ |= 0x00000200; onChanged(); - return this; + return internalGetMileageFieldBuilder().getBuilder(); } /** * * *
-     * Similar to ads_grouping, but only works on CPC.
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
      * 
* - * repeated string ads_labels = 60; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getMileageOrBuilder() { + if (mileageBuilder_ != null) { + return mileageBuilder_.getMessageOrBuilder(); + } else { + return mileage_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance() + : mileage_; + } + } + + /** * - * @param value The bytes of the adsLabels to add. - * @return This builder for chaining. + * + *
+     * The number of miles/kms on the vehicle. See the
+     * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+     * information.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; */ - public Builder addAdsLabelsBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder> + internalGetMileageFieldBuilder() { + if (mileageBuilder_ == null) { + mileageBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder>( + getMileage(), getParentForChildren(), isClean()); + mileage_ = null; } - checkByteStringIsUtf8(value); - ensureAdsLabelsIsMutable(); - adsLabels_.add(value); - bitField2_ |= 0x00000001; - onChanged(); - return this; + return mileageBuilder_; } - private java.lang.Object adsRedirect_ = ""; + private com.google.shopping.merchant.products.v1.ProductAttributes.Mileage electricRange_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder> + electricRangeBuilder_; /** * * *
-     * Allows advertisers to override the item URL when the product is shown
-     * within the context of Product ads.
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
      * 
* - * optional string ads_redirect = 61; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * * - * @return Whether the adsRedirect field is set. + * @return Whether the electricRange field is set. */ - public boolean hasAdsRedirect() { - return ((bitField2_ & 0x00000002) != 0); + public boolean hasElectricRange() { + return ((bitField3_ & 0x00000400) != 0); } /** * * *
-     * Allows advertisers to override the item URL when the product is shown
-     * within the context of Product ads.
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
      * 
* - * optional string ads_redirect = 61; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * * - * @return The adsRedirect. + * @return The electricRange. */ - public java.lang.String getAdsRedirect() { - java.lang.Object ref = adsRedirect_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - adsRedirect_ = s; - return s; + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getElectricRange() { + if (electricRangeBuilder_ == null) { + return electricRange_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance() + : electricRange_; } else { - return (java.lang.String) ref; + return electricRangeBuilder_.getMessage(); } } @@ -29931,45 +58758,48 @@ public java.lang.String getAdsRedirect() { * * *
-     * Allows advertisers to override the item URL when the product is shown
-     * within the context of Product ads.
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
      * 
* - * optional string ads_redirect = 61; - * - * @return The bytes for adsRedirect. + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * */ - public com.google.protobuf.ByteString getAdsRedirectBytes() { - java.lang.Object ref = adsRedirect_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - adsRedirect_ = b; - return b; + public Builder setElectricRange( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage value) { + if (electricRangeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + electricRange_ = value; } else { - return (com.google.protobuf.ByteString) ref; + electricRangeBuilder_.setMessage(value); } + bitField3_ |= 0x00000400; + onChanged(); + return this; } /** * * *
-     * Allows advertisers to override the item URL when the product is shown
-     * within the context of Product ads.
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
      * 
* - * optional string ads_redirect = 61; - * - * @param value The adsRedirect to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * */ - public Builder setAdsRedirect(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setElectricRange( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder + builderForValue) { + if (electricRangeBuilder_ == null) { + electricRange_ = builderForValue.build(); + } else { + electricRangeBuilder_.setMessage(builderForValue.build()); } - adsRedirect_ = value; - bitField2_ |= 0x00000002; + bitField3_ |= 0x00000400; onChanged(); return this; } @@ -29978,17 +58808,53 @@ public Builder setAdsRedirect(java.lang.String value) { * * *
-     * Allows advertisers to override the item URL when the product is shown
-     * within the context of Product ads.
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
      * 
* - * optional string ads_redirect = 61; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + */ + public Builder mergeElectricRange( + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage value) { + if (electricRangeBuilder_ == null) { + if (((bitField3_ & 0x00000400) != 0) + && electricRange_ != null + && electricRange_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance()) { + getElectricRangeBuilder().mergeFrom(value); + } else { + electricRange_ = value; + } + } else { + electricRangeBuilder_.mergeFrom(value); + } + if (electricRange_ != null) { + bitField3_ |= 0x00000400; + onChanged(); + } + return this; + } + + /** * - * @return This builder for chaining. + * + *
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * */ - public Builder clearAdsRedirect() { - adsRedirect_ = getDefaultInstance().getAdsRedirect(); - bitField2_ = (bitField2_ & ~0x00000002); + public Builder clearElectricRange() { + bitField3_ = (bitField3_ & ~0x00000400); + electricRange_ = null; + if (electricRangeBuilder_ != null) { + electricRangeBuilder_.dispose(); + electricRangeBuilder_ = null; + } onChanged(); return this; } @@ -29997,66 +58863,122 @@ public Builder clearAdsRedirect() { * * *
-     * Allows advertisers to override the item URL when the product is shown
-     * within the context of Product ads.
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
      * 
* - * optional string ads_redirect = 61; + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder + getElectricRangeBuilder() { + bitField3_ |= 0x00000400; + onChanged(); + return internalGetElectricRangeFieldBuilder().getBuilder(); + } + + /** * - * @param value The bytes for adsRedirect to set. - * @return This builder for chaining. + * + *
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * */ - public Builder setAdsRedirectBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getElectricRangeOrBuilder() { + if (electricRangeBuilder_ != null) { + return electricRangeBuilder_.getMessageOrBuilder(); + } else { + return electricRange_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Mileage + .getDefaultInstance() + : electricRange_; } - checkByteStringIsUtf8(value); - adsRedirect_ = value; - bitField2_ |= 0x00000002; - onChanged(); - return this; } - private com.google.shopping.type.Price costOfGoodsSold_; + /** + * + * + *
+     * The [electric range](https://support.google.com/google-ads/answer/15162232)
+     * of the vehicle in miles/kms.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + */ private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - costOfGoodsSoldBuilder_; + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder> + internalGetElectricRangeFieldBuilder() { + if (electricRangeBuilder_ == null) { + electricRangeBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage, + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder>( + getElectricRange(), getParentForChildren(), isClean()); + electricRange_ = null; + } + return electricRangeBuilder_; + } + + private com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + fuelConsumption_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder> + fuelConsumptionBuilder_; /** * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * * - * @return Whether the costOfGoodsSold field is set. + * @return Whether the fuelConsumption field is set. */ - public boolean hasCostOfGoodsSold() { - return ((bitField2_ & 0x00000004) != 0); + public boolean hasFuelConsumption() { + return ((bitField3_ & 0x00000800) != 0); } /** * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * * - * @return The costOfGoodsSold. + * @return The fuelConsumption. */ - public com.google.shopping.type.Price getCostOfGoodsSold() { - if (costOfGoodsSoldBuilder_ == null) { - return costOfGoodsSold_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : costOfGoodsSold_; + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + getFuelConsumption() { + if (fuelConsumptionBuilder_ == null) { + return fuelConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumption_; } else { - return costOfGoodsSoldBuilder_.getMessage(); + return fuelConsumptionBuilder_.getMessage(); } } @@ -30064,21 +58986,26 @@ public com.google.shopping.type.Price getCostOfGoodsSold() { * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * */ - public Builder setCostOfGoodsSold(com.google.shopping.type.Price value) { - if (costOfGoodsSoldBuilder_ == null) { + public Builder setFuelConsumption( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption value) { + if (fuelConsumptionBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - costOfGoodsSold_ = value; + fuelConsumption_ = value; } else { - costOfGoodsSoldBuilder_.setMessage(value); + fuelConsumptionBuilder_.setMessage(value); } - bitField2_ |= 0x00000004; + bitField3_ |= 0x00000800; onChanged(); return this; } @@ -30087,18 +59014,24 @@ public Builder setCostOfGoodsSold(com.google.shopping.type.Price value) { * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * */ - public Builder setCostOfGoodsSold(com.google.shopping.type.Price.Builder builderForValue) { - if (costOfGoodsSoldBuilder_ == null) { - costOfGoodsSold_ = builderForValue.build(); + public Builder setFuelConsumption( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder + builderForValue) { + if (fuelConsumptionBuilder_ == null) { + fuelConsumption_ = builderForValue.build(); } else { - costOfGoodsSoldBuilder_.setMessage(builderForValue.build()); + fuelConsumptionBuilder_.setMessage(builderForValue.build()); } - bitField2_ |= 0x00000004; + bitField3_ |= 0x00000800; onChanged(); return this; } @@ -30107,25 +59040,32 @@ public Builder setCostOfGoodsSold(com.google.shopping.type.Price.Builder builder * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * */ - public Builder mergeCostOfGoodsSold(com.google.shopping.type.Price value) { - if (costOfGoodsSoldBuilder_ == null) { - if (((bitField2_ & 0x00000004) != 0) - && costOfGoodsSold_ != null - && costOfGoodsSold_ != com.google.shopping.type.Price.getDefaultInstance()) { - getCostOfGoodsSoldBuilder().mergeFrom(value); + public Builder mergeFuelConsumption( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption value) { + if (fuelConsumptionBuilder_ == null) { + if (((bitField3_ & 0x00000800) != 0) + && fuelConsumption_ != null + && fuelConsumption_ + != com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance()) { + getFuelConsumptionBuilder().mergeFrom(value); } else { - costOfGoodsSold_ = value; + fuelConsumption_ = value; } } else { - costOfGoodsSoldBuilder_.mergeFrom(value); + fuelConsumptionBuilder_.mergeFrom(value); } - if (costOfGoodsSold_ != null) { - bitField2_ |= 0x00000004; + if (fuelConsumption_ != null) { + bitField3_ |= 0x00000800; onChanged(); } return this; @@ -30135,17 +59075,21 @@ public Builder mergeCostOfGoodsSold(com.google.shopping.type.Price value) { * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * */ - public Builder clearCostOfGoodsSold() { - bitField2_ = (bitField2_ & ~0x00000004); - costOfGoodsSold_ = null; - if (costOfGoodsSoldBuilder_ != null) { - costOfGoodsSoldBuilder_.dispose(); - costOfGoodsSoldBuilder_ = null; + public Builder clearFuelConsumption() { + bitField3_ = (bitField3_ & ~0x00000800); + fuelConsumption_ = null; + if (fuelConsumptionBuilder_ != null) { + fuelConsumptionBuilder_.dispose(); + fuelConsumptionBuilder_ = null; } onChanged(); return this; @@ -30155,33 +59099,44 @@ public Builder clearCostOfGoodsSold() { * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * */ - public com.google.shopping.type.Price.Builder getCostOfGoodsSoldBuilder() { - bitField2_ |= 0x00000004; + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder + getFuelConsumptionBuilder() { + bitField3_ |= 0x00000800; onChanged(); - return internalGetCostOfGoodsSoldFieldBuilder().getBuilder(); + return internalGetFuelConsumptionFieldBuilder().getBuilder(); } /** * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * */ - public com.google.shopping.type.PriceOrBuilder getCostOfGoodsSoldOrBuilder() { - if (costOfGoodsSoldBuilder_ != null) { - return costOfGoodsSoldBuilder_.getMessageOrBuilder(); + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder + getFuelConsumptionOrBuilder() { + if (fuelConsumptionBuilder_ != null) { + return fuelConsumptionBuilder_.getMessageOrBuilder(); } else { - return costOfGoodsSold_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : costOfGoodsSold_; + return fuelConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumption_; } } @@ -30189,98 +59144,86 @@ public com.google.shopping.type.PriceOrBuilder getCostOfGoodsSoldOrBuilder() { * * *
-     * Cost of goods sold. Used for gross profit reporting.
+     * The [fuel
+     * consumption](https://support.google.com/google-ads/answer/14543580) of the
+     * vehicle.
      * 
* - * .google.shopping.type.Price cost_of_goods_sold = 62; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * */ private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - internalGetCostOfGoodsSoldFieldBuilder() { - if (costOfGoodsSoldBuilder_ == null) { - costOfGoodsSoldBuilder_ = + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder> + internalGetFuelConsumptionFieldBuilder() { + if (fuelConsumptionBuilder_ == null) { + fuelConsumptionBuilder_ = new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder>( - getCostOfGoodsSold(), getParentForChildren(), isClean()); - costOfGoodsSold_ = null; - } - return costOfGoodsSoldBuilder_; - } - - private java.util.List productDetails_ = - java.util.Collections.emptyList(); - - private void ensureProductDetailsIsMutable() { - if (!((bitField2_ & 0x00000008) != 0)) { - productDetails_ = - new java.util.ArrayList( - productDetails_); - bitField2_ |= 0x00000008; + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .FuelConsumptionOrBuilder>( + getFuelConsumption(), getParentForChildren(), isClean()); + fuelConsumption_ = null; } + return fuelConsumptionBuilder_; } - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDetail, - com.google.shopping.merchant.products.v1.ProductDetail.Builder, - com.google.shopping.merchant.products.v1.ProductDetailOrBuilder> - productDetailsBuilder_; + private com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + fuelConsumptionDischargedBattery_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder> + fuelConsumptionDischargedBatteryBuilder_; /** * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * - */ - public java.util.List - getProductDetailsList() { - if (productDetailsBuilder_ == null) { - return java.util.Collections.unmodifiableList(productDetails_); - } else { - return productDetailsBuilder_.getMessageList(); - } - } - - /** - * * - *
-     * Technical specification or additional product details.
-     * 
- * - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; - * + * @return Whether the fuelConsumptionDischargedBattery field is set. */ - public int getProductDetailsCount() { - if (productDetailsBuilder_ == null) { - return productDetails_.size(); - } else { - return productDetailsBuilder_.getCount(); - } + public boolean hasFuelConsumptionDischargedBattery() { + return ((bitField3_ & 0x00001000) != 0); } /** * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * + * + * @return The fuelConsumptionDischargedBattery. */ - public com.google.shopping.merchant.products.v1.ProductDetail getProductDetails(int index) { - if (productDetailsBuilder_ == null) { - return productDetails_.get(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + getFuelConsumptionDischargedBattery() { + if (fuelConsumptionDischargedBatteryBuilder_ == null) { + return fuelConsumptionDischargedBattery_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumptionDischargedBattery_; } else { - return productDetailsBuilder_.getMessage(index); + return fuelConsumptionDischargedBatteryBuilder_.getMessage(); } } @@ -30288,24 +59231,28 @@ public com.google.shopping.merchant.products.v1.ProductDetail getProductDetails( * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * */ - public Builder setProductDetails( - int index, com.google.shopping.merchant.products.v1.ProductDetail value) { - if (productDetailsBuilder_ == null) { + public Builder setFuelConsumptionDischargedBattery( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption value) { + if (fuelConsumptionDischargedBatteryBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureProductDetailsIsMutable(); - productDetails_.set(index, value); - onChanged(); + fuelConsumptionDischargedBattery_ = value; } else { - productDetailsBuilder_.setMessage(index, value); + fuelConsumptionDischargedBatteryBuilder_.setMessage(value); } + bitField3_ |= 0x00001000; + onChanged(); return this; } @@ -30313,21 +59260,26 @@ public Builder setProductDetails( * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * */ - public Builder setProductDetails( - int index, com.google.shopping.merchant.products.v1.ProductDetail.Builder builderForValue) { - if (productDetailsBuilder_ == null) { - ensureProductDetailsIsMutable(); - productDetails_.set(index, builderForValue.build()); - onChanged(); + public Builder setFuelConsumptionDischargedBattery( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder + builderForValue) { + if (fuelConsumptionDischargedBatteryBuilder_ == null) { + fuelConsumptionDischargedBattery_ = builderForValue.build(); } else { - productDetailsBuilder_.setMessage(index, builderForValue.build()); + fuelConsumptionDischargedBatteryBuilder_.setMessage(builderForValue.build()); } + bitField3_ |= 0x00001000; + onChanged(); return this; } @@ -30335,22 +59287,34 @@ public Builder setProductDetails( * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * */ - public Builder addProductDetails(com.google.shopping.merchant.products.v1.ProductDetail value) { - if (productDetailsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeFuelConsumptionDischargedBattery( + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption value) { + if (fuelConsumptionDischargedBatteryBuilder_ == null) { + if (((bitField3_ & 0x00001000) != 0) + && fuelConsumptionDischargedBattery_ != null + && fuelConsumptionDischargedBattery_ + != com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance()) { + getFuelConsumptionDischargedBatteryBuilder().mergeFrom(value); + } else { + fuelConsumptionDischargedBattery_ = value; } - ensureProductDetailsIsMutable(); - productDetails_.add(value); - onChanged(); } else { - productDetailsBuilder_.addMessage(value); + fuelConsumptionDischargedBatteryBuilder_.mergeFrom(value); + } + if (fuelConsumptionDischargedBattery_ != null) { + bitField3_ |= 0x00001000; + onChanged(); } return this; } @@ -30359,24 +59323,24 @@ public Builder addProductDetails(com.google.shopping.merchant.products.v1.Produc * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * */ - public Builder addProductDetails( - int index, com.google.shopping.merchant.products.v1.ProductDetail value) { - if (productDetailsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureProductDetailsIsMutable(); - productDetails_.add(index, value); - onChanged(); - } else { - productDetailsBuilder_.addMessage(index, value); + public Builder clearFuelConsumptionDischargedBattery() { + bitField3_ = (bitField3_ & ~0x00001000); + fuelConsumptionDischargedBattery_ = null; + if (fuelConsumptionDischargedBatteryBuilder_ != null) { + fuelConsumptionDischargedBatteryBuilder_.dispose(); + fuelConsumptionDischargedBatteryBuilder_ = null; } + onChanged(); return this; } @@ -30384,330 +59348,424 @@ public Builder addProductDetails( * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
- * - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; - * - */ - public Builder addProductDetails( - com.google.shopping.merchant.products.v1.ProductDetail.Builder builderForValue) { - if (productDetailsBuilder_ == null) { - ensureProductDetailsIsMutable(); - productDetails_.add(builderForValue.build()); - onChanged(); - } else { - productDetailsBuilder_.addMessage(builderForValue.build()); - } - return this; + * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder + getFuelConsumptionDischargedBatteryBuilder() { + bitField3_ |= 0x00001000; + onChanged(); + return internalGetFuelConsumptionDischargedBatteryFieldBuilder().getBuilder(); } /** * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * */ - public Builder addProductDetails( - int index, com.google.shopping.merchant.products.v1.ProductDetail.Builder builderForValue) { - if (productDetailsBuilder_ == null) { - ensureProductDetailsIsMutable(); - productDetails_.add(index, builderForValue.build()); - onChanged(); + public com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder + getFuelConsumptionDischargedBatteryOrBuilder() { + if (fuelConsumptionDischargedBatteryBuilder_ != null) { + return fuelConsumptionDischargedBatteryBuilder_.getMessageOrBuilder(); } else { - productDetailsBuilder_.addMessage(index, builderForValue.build()); + return fuelConsumptionDischargedBattery_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + .getDefaultInstance() + : fuelConsumptionDischargedBattery_; } - return this; } /** * * *
-     * Technical specification or additional product details.
+     * The fuel consumption of the vehicle when the hybrid battery is discharged.
+     * See the [Help Center
+     * article](https://support.google.com/google-ads/answer/15162033) for more
+     * information.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; * */ - public Builder addAllProductDetails( - java.lang.Iterable - values) { - if (productDetailsBuilder_ == null) { - ensureProductDetailsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, productDetails_); - onChanged(); - } else { - productDetailsBuilder_.addAllMessages(values); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder> + internalGetFuelConsumptionDischargedBatteryFieldBuilder() { + if (fuelConsumptionDischargedBatteryBuilder_ == null) { + fuelConsumptionDischargedBatteryBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .FuelConsumptionOrBuilder>( + getFuelConsumptionDischargedBattery(), getParentForChildren(), isClean()); + fuelConsumptionDischargedBattery_ = null; } - return this; + return fuelConsumptionDischargedBatteryBuilder_; } + private com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + energyConsumption_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumptionOrBuilder> + energyConsumptionBuilder_; + /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * + * + * @return Whether the energyConsumption field is set. */ - public Builder clearProductDetails() { - if (productDetailsBuilder_ == null) { - productDetails_ = java.util.Collections.emptyList(); - bitField2_ = (bitField2_ & ~0x00000008); - onChanged(); - } else { - productDetailsBuilder_.clear(); - } - return this; + public boolean hasEnergyConsumption() { + return ((bitField3_ & 0x00002000) != 0); } /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * + * + * @return The energyConsumption. */ - public Builder removeProductDetails(int index) { - if (productDetailsBuilder_ == null) { - ensureProductDetailsIsMutable(); - productDetails_.remove(index); - onChanged(); + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + getEnergyConsumption() { + if (energyConsumptionBuilder_ == null) { + return energyConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDefaultInstance() + : energyConsumption_; } else { - productDetailsBuilder_.remove(index); + return energyConsumptionBuilder_.getMessage(); } - return this; } /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * */ - public com.google.shopping.merchant.products.v1.ProductDetail.Builder getProductDetailsBuilder( - int index) { - return internalGetProductDetailsFieldBuilder().getBuilder(index); + public Builder setEnergyConsumption( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption value) { + if (energyConsumptionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + energyConsumption_ = value; + } else { + energyConsumptionBuilder_.setMessage(value); + } + bitField3_ |= 0x00002000; + onChanged(); + return this; } /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * */ - public com.google.shopping.merchant.products.v1.ProductDetailOrBuilder - getProductDetailsOrBuilder(int index) { - if (productDetailsBuilder_ == null) { - return productDetails_.get(index); + public Builder setEnergyConsumption( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Builder + builderForValue) { + if (energyConsumptionBuilder_ == null) { + energyConsumption_ = builderForValue.build(); } else { - return productDetailsBuilder_.getMessageOrBuilder(index); + energyConsumptionBuilder_.setMessage(builderForValue.build()); } + bitField3_ |= 0x00002000; + onChanged(); + return this; } /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * */ - public java.util.List - getProductDetailsOrBuilderList() { - if (productDetailsBuilder_ != null) { - return productDetailsBuilder_.getMessageOrBuilderList(); + public Builder mergeEnergyConsumption( + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption value) { + if (energyConsumptionBuilder_ == null) { + if (((bitField3_ & 0x00002000) != 0) + && energyConsumption_ != null + && energyConsumption_ + != com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDefaultInstance()) { + getEnergyConsumptionBuilder().mergeFrom(value); + } else { + energyConsumption_ = value; + } } else { - return java.util.Collections.unmodifiableList(productDetails_); + energyConsumptionBuilder_.mergeFrom(value); + } + if (energyConsumption_ != null) { + bitField3_ |= 0x00002000; + onChanged(); } + return this; } /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * */ - public com.google.shopping.merchant.products.v1.ProductDetail.Builder - addProductDetailsBuilder() { - return internalGetProductDetailsFieldBuilder() - .addBuilder(com.google.shopping.merchant.products.v1.ProductDetail.getDefaultInstance()); + public Builder clearEnergyConsumption() { + bitField3_ = (bitField3_ & ~0x00002000); + energyConsumption_ = null; + if (energyConsumptionBuilder_ != null) { + energyConsumptionBuilder_.dispose(); + energyConsumptionBuilder_ = null; + } + onChanged(); + return this; } /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * */ - public com.google.shopping.merchant.products.v1.ProductDetail.Builder addProductDetailsBuilder( - int index) { - return internalGetProductDetailsFieldBuilder() - .addBuilder( - index, com.google.shopping.merchant.products.v1.ProductDetail.getDefaultInstance()); + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Builder + getEnergyConsumptionBuilder() { + bitField3_ |= 0x00002000; + onChanged(); + return internalGetEnergyConsumptionFieldBuilder().getBuilder(); } /** * * *
-     * Technical specification or additional product details.
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated .google.shopping.merchant.products.v1.ProductDetail product_details = 63; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; * */ - public java.util.List - getProductDetailsBuilderList() { - return internalGetProductDetailsFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDetail, - com.google.shopping.merchant.products.v1.ProductDetail.Builder, - com.google.shopping.merchant.products.v1.ProductDetailOrBuilder> - internalGetProductDetailsFieldBuilder() { - if (productDetailsBuilder_ == null) { - productDetailsBuilder_ = - new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductDetail, - com.google.shopping.merchant.products.v1.ProductDetail.Builder, - com.google.shopping.merchant.products.v1.ProductDetailOrBuilder>( - productDetails_, - ((bitField2_ & 0x00000008) != 0), - getParentForChildren(), - isClean()); - productDetails_ = null; - } - return productDetailsBuilder_; - } - - private com.google.protobuf.LazyStringArrayList productHighlights_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensureProductHighlightsIsMutable() { - if (!productHighlights_.isModifiable()) { - productHighlights_ = new com.google.protobuf.LazyStringArrayList(productHighlights_); + public com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumptionOrBuilder + getEnergyConsumptionOrBuilder() { + if (energyConsumptionBuilder_ != null) { + return energyConsumptionBuilder_.getMessageOrBuilder(); + } else { + return energyConsumption_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .getDefaultInstance() + : energyConsumption_; } - bitField2_ |= 0x00000010; } /** * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [energy
+     * consumption](https://support.google.com/google-ads/answer/14546149) of the
+     * vehicle.
      * 
* - * repeated string product_highlights = 64; - * - * @return A list containing the productHighlights. + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; + * */ - public com.google.protobuf.ProtocolStringList getProductHighlightsList() { - productHighlights_.makeImmutable(); - return productHighlights_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumptionOrBuilder> + internalGetEnergyConsumptionFieldBuilder() { + if (energyConsumptionBuilder_ == null) { + energyConsumptionBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption, + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + .Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .EnergyConsumptionOrBuilder>( + getEnergyConsumption(), getParentForChildren(), isClean()); + energyConsumption_ = null; + } + return energyConsumptionBuilder_; } + private com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2Emissions_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2EmissionsOrBuilder> + co2EmissionsBuilder_; + /** * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * * - * @return The count of productHighlights. + * @return Whether the co2Emissions field is set. */ - public int getProductHighlightsCount() { - return productHighlights_.size(); + public boolean hasCo2Emissions() { + return ((bitField3_ & 0x00004000) != 0); } /** * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * * - * @param index The index of the element to return. - * @return The productHighlights at the given index. + * @return The co2Emissions. */ - public java.lang.String getProductHighlights(int index) { - return productHighlights_.get(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + getCo2Emissions() { + if (co2EmissionsBuilder_ == null) { + return co2Emissions_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDefaultInstance() + : co2Emissions_; + } else { + return co2EmissionsBuilder_.getMessage(); + } } /** * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; - * - * @param index The index of the value to return. - * @return The bytes of the productHighlights at the given index. + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * */ - public com.google.protobuf.ByteString getProductHighlightsBytes(int index) { - return productHighlights_.getByteString(index); + public Builder setCo2Emissions( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions value) { + if (co2EmissionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + co2Emissions_ = value; + } else { + co2EmissionsBuilder_.setMessage(value); + } + bitField3_ |= 0x00004000; + onChanged(); + return this; } /** * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; - * - * @param index The index to set the value at. - * @param value The productHighlights to set. - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * */ - public Builder setProductHighlights(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setCo2Emissions( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Builder + builderForValue) { + if (co2EmissionsBuilder_ == null) { + co2Emissions_ = builderForValue.build(); + } else { + co2EmissionsBuilder_.setMessage(builderForValue.build()); } - ensureProductHighlightsIsMutable(); - productHighlights_.set(index, value); - bitField2_ |= 0x00000010; + bitField3_ |= 0x00004000; onChanged(); return this; } @@ -30716,23 +59774,33 @@ public Builder setProductHighlights(int index, java.lang.String value) { * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; - * - * @param value The productHighlights to add. - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * */ - public Builder addProductHighlights(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeCo2Emissions( + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions value) { + if (co2EmissionsBuilder_ == null) { + if (((bitField3_ & 0x00004000) != 0) + && co2Emissions_ != null + && co2Emissions_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDefaultInstance()) { + getCo2EmissionsBuilder().mergeFrom(value); + } else { + co2Emissions_ = value; + } + } else { + co2EmissionsBuilder_.mergeFrom(value); + } + if (co2Emissions_ != null) { + bitField3_ |= 0x00004000; + onChanged(); } - ensureProductHighlightsIsMutable(); - productHighlights_.add(value); - bitField2_ |= 0x00000010; - onChanged(); return this; } @@ -30740,19 +59808,21 @@ public Builder addProductHighlights(java.lang.String value) { * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; - * - * @param values The productHighlights to add. - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * */ - public Builder addAllProductHighlights(java.lang.Iterable values) { - ensureProductHighlightsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, productHighlights_); - bitField2_ |= 0x00000010; + public Builder clearCo2Emissions() { + bitField3_ = (bitField3_ & ~0x00004000); + co2Emissions_ = null; + if (co2EmissionsBuilder_ != null) { + co2EmissionsBuilder_.dispose(); + co2EmissionsBuilder_ = null; + } onChanged(); return this; } @@ -30761,81 +59831,96 @@ public Builder addAllProductHighlights(java.lang.Iterable valu * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; - * - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * */ - public Builder clearProductHighlights() { - productHighlights_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField2_ = (bitField2_ & ~0x00000010); - ; + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Builder + getCo2EmissionsBuilder() { + bitField3_ |= 0x00004000; onChanged(); - return this; + return internalGetCo2EmissionsFieldBuilder().getBuilder(); } /** * * *
-     * Bullet points describing the most relevant [product
-     * highlights](https://support.google.com/merchants/answer/9216100).
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * repeated string product_highlights = 64; - * - * @param value The bytes of the productHighlights to add. - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * */ - public Builder addProductHighlightsBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public com.google.shopping.merchant.products.v1.ProductAttributes.Co2EmissionsOrBuilder + getCo2EmissionsOrBuilder() { + if (co2EmissionsBuilder_ != null) { + return co2EmissionsBuilder_.getMessageOrBuilder(); + } else { + return co2Emissions_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions + .getDefaultInstance() + : co2Emissions_; } - checkByteStringIsUtf8(value); - ensureProductHighlightsIsMutable(); - productHighlights_.add(value); - bitField2_ |= 0x00000010; - onChanged(); - return this; } - private java.lang.Object displayAdsId_ = ""; - /** * * *
-     * An identifier for an item for dynamic remarketing campaigns.
+     * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+     * of the vehicle.
      * 
* - * optional string display_ads_id = 65; - * - * @return Whether the displayAdsId field is set. + * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * */ - public boolean hasDisplayAdsId() { - return ((bitField2_ & 0x00000020) != 0); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2EmissionsOrBuilder> + internalGetCo2EmissionsFieldBuilder() { + if (co2EmissionsBuilder_ == null) { + co2EmissionsBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.Co2EmissionsOrBuilder>( + getCo2Emissions(), getParentForChildren(), isClean()); + co2Emissions_ = null; + } + return co2EmissionsBuilder_; } + private java.lang.Object dateFirstRegistered_ = ""; + /** * * *
-     * An identifier for an item for dynamic remarketing campaigns.
+     * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+     * [Date first
+     * registered](https://support.google.com/google-ads/answer/14546138) for more
+     * information.
      * 
* - * optional string display_ads_id = 65; + * string date_first_registered = 158; * - * @return The displayAdsId. + * @return The dateFirstRegistered. */ - public java.lang.String getDisplayAdsId() { - java.lang.Object ref = displayAdsId_; + public java.lang.String getDateFirstRegistered() { + java.lang.Object ref = dateFirstRegistered_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - displayAdsId_ = s; + dateFirstRegistered_ = s; return s; } else { return (java.lang.String) ref; @@ -30846,19 +59931,22 @@ public java.lang.String getDisplayAdsId() { * * *
-     * An identifier for an item for dynamic remarketing campaigns.
+     * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+     * [Date first
+     * registered](https://support.google.com/google-ads/answer/14546138) for more
+     * information.
      * 
* - * optional string display_ads_id = 65; + * string date_first_registered = 158; * - * @return The bytes for displayAdsId. + * @return The bytes for dateFirstRegistered. */ - public com.google.protobuf.ByteString getDisplayAdsIdBytes() { - java.lang.Object ref = displayAdsId_; + public com.google.protobuf.ByteString getDateFirstRegisteredBytes() { + java.lang.Object ref = dateFirstRegistered_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - displayAdsId_ = b; + dateFirstRegistered_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -30869,20 +59957,23 @@ public com.google.protobuf.ByteString getDisplayAdsIdBytes() { * * *
-     * An identifier for an item for dynamic remarketing campaigns.
+     * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+     * [Date first
+     * registered](https://support.google.com/google-ads/answer/14546138) for more
+     * information.
      * 
* - * optional string display_ads_id = 65; + * string date_first_registered = 158; * - * @param value The displayAdsId to set. + * @param value The dateFirstRegistered to set. * @return This builder for chaining. */ - public Builder setDisplayAdsId(java.lang.String value) { + public Builder setDateFirstRegistered(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - displayAdsId_ = value; - bitField2_ |= 0x00000020; + dateFirstRegistered_ = value; + bitField3_ |= 0x00008000; onChanged(); return this; } @@ -30891,16 +59982,19 @@ public Builder setDisplayAdsId(java.lang.String value) { * * *
-     * An identifier for an item for dynamic remarketing campaigns.
+     * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+     * [Date first
+     * registered](https://support.google.com/google-ads/answer/14546138) for more
+     * information.
      * 
* - * optional string display_ads_id = 65; + * string date_first_registered = 158; * * @return This builder for chaining. */ - public Builder clearDisplayAdsId() { - displayAdsId_ = getDefaultInstance().getDisplayAdsId(); - bitField2_ = (bitField2_ & ~0x00000020); + public Builder clearDateFirstRegistered() { + dateFirstRegistered_ = getDefaultInstance().getDateFirstRegistered(); + bitField3_ = (bitField3_ & ~0x00008000); onChanged(); return this; } @@ -30909,128 +60003,172 @@ public Builder clearDisplayAdsId() { * * *
-     * An identifier for an item for dynamic remarketing campaigns.
+     * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+     * [Date first
+     * registered](https://support.google.com/google-ads/answer/14546138) for more
+     * information.
      * 
* - * optional string display_ads_id = 65; + * string date_first_registered = 158; * - * @param value The bytes for displayAdsId to set. + * @param value The bytes for dateFirstRegistered to set. * @return This builder for chaining. */ - public Builder setDisplayAdsIdBytes(com.google.protobuf.ByteString value) { + public Builder setDateFirstRegisteredBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - displayAdsId_ = value; - bitField2_ |= 0x00000020; + dateFirstRegistered_ = value; + bitField3_ |= 0x00008000; onChanged(); return this; } - private com.google.protobuf.LazyStringArrayList displayAdsSimilarIds_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + private int engine_ = 0; - private void ensureDisplayAdsSimilarIdsIsMutable() { - if (!displayAdsSimilarIds_.isModifiable()) { - displayAdsSimilarIds_ = new com.google.protobuf.LazyStringArrayList(displayAdsSimilarIds_); - } - bitField2_ |= 0x00000040; + /** + * + * + *
+     * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+     * the vehicle.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; + * + * @return The enum numeric value on the wire for engine. + */ + @java.lang.Override + public int getEngineValue() { + return engine_; } /** * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+     * the vehicle.
      * 
* - * repeated string display_ads_similar_ids = 66; + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; * - * @return A list containing the displayAdsSimilarIds. + * @param value The enum numeric value on the wire for engine to set. + * @return This builder for chaining. */ - public com.google.protobuf.ProtocolStringList getDisplayAdsSimilarIdsList() { - displayAdsSimilarIds_.makeImmutable(); - return displayAdsSimilarIds_; + public Builder setEngineValue(int value) { + engine_ = value; + bitField3_ |= 0x00010000; + onChanged(); + return this; } /** * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+     * the vehicle.
      * 
* - * repeated string display_ads_similar_ids = 66; + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; * - * @return The count of displayAdsSimilarIds. + * @return The engine. */ - public int getDisplayAdsSimilarIdsCount() { - return displayAdsSimilarIds_.size(); + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EngineType getEngine() { + com.google.shopping.merchant.products.v1.ProductAttributes.EngineType result = + com.google.shopping.merchant.products.v1.ProductAttributes.EngineType.forNumber(engine_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EngineType.UNRECOGNIZED + : result; } /** * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+     * the vehicle.
      * 
* - * repeated string display_ads_similar_ids = 66; + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; * - * @param index The index of the element to return. - * @return The displayAdsSimilarIds at the given index. + * @param value The engine to set. + * @return This builder for chaining. */ - public java.lang.String getDisplayAdsSimilarIds(int index) { - return displayAdsSimilarIds_.get(index); + public Builder setEngine( + com.google.shopping.merchant.products.v1.ProductAttributes.EngineType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField3_ |= 0x00010000; + engine_ = value.getNumber(); + onChanged(); + return this; } /** * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+     * the vehicle.
      * 
* - * repeated string display_ads_similar_ids = 66; + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; * - * @param index The index of the value to return. - * @return The bytes of the displayAdsSimilarIds at the given index. + * @return This builder for chaining. */ - public com.google.protobuf.ByteString getDisplayAdsSimilarIdsBytes(int index) { - return displayAdsSimilarIds_.getByteString(index); + public Builder clearEngine() { + bitField3_ = (bitField3_ & ~0x00010000); + engine_ = 0; + onChanged(); + return this; } + private int emissionsStandard_ = 0; + /** * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * The [emission
+     * standard](https://support.google.com/google-ads/answer/14869021) of the
+     * vehicle.
      * 
* - * repeated string display_ads_similar_ids = 66; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * * - * @param index The index to set the value at. - * @param value The displayAdsSimilarIds to set. + * @return The enum numeric value on the wire for emissionsStandard. + */ + @java.lang.Override + public int getEmissionsStandardValue() { + return emissionsStandard_; + } + + /** + * + * + *
+     * The [emission
+     * standard](https://support.google.com/google-ads/answer/14869021) of the
+     * vehicle.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * + * + * @param value The enum numeric value on the wire for emissionsStandard to set. * @return This builder for chaining. */ - public Builder setDisplayAdsSimilarIds(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureDisplayAdsSimilarIdsIsMutable(); - displayAdsSimilarIds_.set(index, value); - bitField2_ |= 0x00000040; + public Builder setEmissionsStandardValue(int value) { + emissionsStandard_ = value; + bitField3_ |= 0x00020000; onChanged(); return this; } @@ -31039,23 +60177,52 @@ public Builder setDisplayAdsSimilarIds(int index, java.lang.String value) { * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * The [emission
+     * standard](https://support.google.com/google-ads/answer/14869021) of the
+     * vehicle.
      * 
* - * repeated string display_ads_similar_ids = 66; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * * - * @param value The displayAdsSimilarIds to add. + * @return The emissionsStandard. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard + getEmissionsStandard() { + com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard result = + com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard.forNumber( + emissionsStandard_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard + .UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * The [emission
+     * standard](https://support.google.com/google-ads/answer/14869021) of the
+     * vehicle.
+     * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * + * + * @param value The emissionsStandard to set. * @return This builder for chaining. */ - public Builder addDisplayAdsSimilarIds(java.lang.String value) { + public Builder setEmissionsStandard( + com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard value) { if (value == null) { throw new NullPointerException(); } - ensureDisplayAdsSimilarIdsIsMutable(); - displayAdsSimilarIds_.add(value); - bitField2_ |= 0x00000040; + bitField3_ |= 0x00020000; + emissionsStandard_ = value.getNumber(); onChanged(); return this; } @@ -31064,131 +60231,129 @@ public Builder addDisplayAdsSimilarIds(java.lang.String value) { * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * The [emission
+     * standard](https://support.google.com/google-ads/answer/14869021) of the
+     * vehicle.
      * 
* - * repeated string display_ads_similar_ids = 66; + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * * - * @param values The displayAdsSimilarIds to add. * @return This builder for chaining. */ - public Builder addAllDisplayAdsSimilarIds(java.lang.Iterable values) { - ensureDisplayAdsSimilarIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, displayAdsSimilarIds_); - bitField2_ |= 0x00000040; + public Builder clearEmissionsStandard() { + bitField3_ = (bitField3_ & ~0x00020000); + emissionsStandard_ = 0; onChanged(); return this; } + private boolean certifiedPreOwned_; + /** * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * Whether the vehicle is OEM [certified
+     * pre-owned](https://support.google.com/google-ads/answer/14156475).
      * 
* - * repeated string display_ads_similar_ids = 66; + * bool certified_pre_owned = 161; * - * @return This builder for chaining. + * @return The certifiedPreOwned. */ - public Builder clearDisplayAdsSimilarIds() { - displayAdsSimilarIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField2_ = (bitField2_ & ~0x00000040); - ; - onChanged(); - return this; + @java.lang.Override + public boolean getCertifiedPreOwned() { + return certifiedPreOwned_; } /** * * *
-     * Advertiser-specified recommendations. For more information, see
-     * [Display ads attribute
-     * specification](https://support.google.com/merchants/answer/6069387).
+     * Whether the vehicle is OEM [certified
+     * pre-owned](https://support.google.com/google-ads/answer/14156475).
      * 
* - * repeated string display_ads_similar_ids = 66; + * bool certified_pre_owned = 161; * - * @param value The bytes of the displayAdsSimilarIds to add. + * @param value The certifiedPreOwned to set. * @return This builder for chaining. */ - public Builder addDisplayAdsSimilarIdsBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureDisplayAdsSimilarIdsIsMutable(); - displayAdsSimilarIds_.add(value); - bitField2_ |= 0x00000040; + public Builder setCertifiedPreOwned(boolean value) { + + certifiedPreOwned_ = value; + bitField3_ |= 0x00040000; onChanged(); return this; } - private java.lang.Object displayAdsTitle_ = ""; - /** * * *
-     * Title of an item for dynamic remarketing campaigns.
+     * Whether the vehicle is OEM [certified
+     * pre-owned](https://support.google.com/google-ads/answer/14156475).
      * 
* - * optional string display_ads_title = 67; + * bool certified_pre_owned = 161; * - * @return Whether the displayAdsTitle field is set. + * @return This builder for chaining. */ - public boolean hasDisplayAdsTitle() { - return ((bitField2_ & 0x00000080) != 0); + public Builder clearCertifiedPreOwned() { + bitField3_ = (bitField3_ & ~0x00040000); + certifiedPreOwned_ = false; + onChanged(); + return this; } + private com.google.shopping.type.Price vehicleMsrp_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + vehicleMsrpBuilder_; + /** * * *
-     * Title of an item for dynamic remarketing campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_title = 67; + * .google.shopping.type.Price vehicle_msrp = 162; * - * @return The displayAdsTitle. - */ - public java.lang.String getDisplayAdsTitle() { - java.lang.Object ref = displayAdsTitle_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayAdsTitle_ = s; - return s; - } else { - return (java.lang.String) ref; - } + * @return Whether the vehicleMsrp field is set. + */ + public boolean hasVehicleMsrp() { + return ((bitField3_ & 0x00080000) != 0); } /** * * *
-     * Title of an item for dynamic remarketing campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_title = 67; + * .google.shopping.type.Price vehicle_msrp = 162; * - * @return The bytes for displayAdsTitle. + * @return The vehicleMsrp. */ - public com.google.protobuf.ByteString getDisplayAdsTitleBytes() { - java.lang.Object ref = displayAdsTitle_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - displayAdsTitle_ = b; - return b; + public com.google.shopping.type.Price getVehicleMsrp() { + if (vehicleMsrpBuilder_ == null) { + return vehicleMsrp_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleMsrp_; } else { - return (com.google.protobuf.ByteString) ref; + return vehicleMsrpBuilder_.getMessage(); } } @@ -31196,20 +60361,24 @@ public com.google.protobuf.ByteString getDisplayAdsTitleBytes() { * * *
-     * Title of an item for dynamic remarketing campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_title = 67; - * - * @param value The displayAdsTitle to set. - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_msrp = 162; */ - public Builder setDisplayAdsTitle(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setVehicleMsrp(com.google.shopping.type.Price value) { + if (vehicleMsrpBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + vehicleMsrp_ = value; + } else { + vehicleMsrpBuilder_.setMessage(value); } - displayAdsTitle_ = value; - bitField2_ |= 0x00000080; + bitField3_ |= 0x00080000; onChanged(); return this; } @@ -31218,16 +60387,21 @@ public Builder setDisplayAdsTitle(java.lang.String value) { * * *
-     * Title of an item for dynamic remarketing campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_title = 67; - * - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_msrp = 162; */ - public Builder clearDisplayAdsTitle() { - displayAdsTitle_ = getDefaultInstance().getDisplayAdsTitle(); - bitField2_ = (bitField2_ & ~0x00000080); + public Builder setVehicleMsrp(com.google.shopping.type.Price.Builder builderForValue) { + if (vehicleMsrpBuilder_ == null) { + vehicleMsrp_ = builderForValue.build(); + } else { + vehicleMsrpBuilder_.setMessage(builderForValue.build()); + } + bitField3_ |= 0x00080000; onChanged(); return this; } @@ -31236,64 +60410,93 @@ public Builder clearDisplayAdsTitle() { * * *
-     * Title of an item for dynamic remarketing campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_title = 67; + * .google.shopping.type.Price vehicle_msrp = 162; + */ + public Builder mergeVehicleMsrp(com.google.shopping.type.Price value) { + if (vehicleMsrpBuilder_ == null) { + if (((bitField3_ & 0x00080000) != 0) + && vehicleMsrp_ != null + && vehicleMsrp_ != com.google.shopping.type.Price.getDefaultInstance()) { + getVehicleMsrpBuilder().mergeFrom(value); + } else { + vehicleMsrp_ = value; + } + } else { + vehicleMsrpBuilder_.mergeFrom(value); + } + if (vehicleMsrp_ != null) { + bitField3_ |= 0x00080000; + onChanged(); + } + return this; + } + + /** * - * @param value The bytes for displayAdsTitle to set. - * @return This builder for chaining. + * + *
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
+     * 
+ * + * .google.shopping.type.Price vehicle_msrp = 162; */ - public Builder setDisplayAdsTitleBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder clearVehicleMsrp() { + bitField3_ = (bitField3_ & ~0x00080000); + vehicleMsrp_ = null; + if (vehicleMsrpBuilder_ != null) { + vehicleMsrpBuilder_.dispose(); + vehicleMsrpBuilder_ = null; } - checkByteStringIsUtf8(value); - displayAdsTitle_ = value; - bitField2_ |= 0x00000080; onChanged(); return this; } - private java.lang.Object displayAdsLink_ = ""; - /** * * *
-     * URL directly to your item's landing page for dynamic remarketing
-     * campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_link = 68; - * - * @return Whether the displayAdsLink field is set. + * .google.shopping.type.Price vehicle_msrp = 162; */ - public boolean hasDisplayAdsLink() { - return ((bitField2_ & 0x00000100) != 0); + public com.google.shopping.type.Price.Builder getVehicleMsrpBuilder() { + bitField3_ |= 0x00080000; + onChanged(); + return internalGetVehicleMsrpFieldBuilder().getBuilder(); } /** * * *
-     * URL directly to your item's landing page for dynamic remarketing
-     * campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_link = 68; - * - * @return The displayAdsLink. + * .google.shopping.type.Price vehicle_msrp = 162; */ - public java.lang.String getDisplayAdsLink() { - java.lang.Object ref = displayAdsLink_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayAdsLink_ = s; - return s; + public com.google.shopping.type.PriceOrBuilder getVehicleMsrpOrBuilder() { + if (vehicleMsrpBuilder_ != null) { + return vehicleMsrpBuilder_.getMessageOrBuilder(); } else { - return (java.lang.String) ref; + return vehicleMsrp_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleMsrp_; } } @@ -31301,148 +60504,209 @@ public java.lang.String getDisplayAdsLink() { * * *
-     * URL directly to your item's landing page for dynamic remarketing
-     * campaigns.
+     * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+     * current configuration. See the [Vehicle
+     * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+     * information.
      * 
* - * optional string display_ads_link = 68; - * - * @return The bytes for displayAdsLink. + * .google.shopping.type.Price vehicle_msrp = 162; */ - public com.google.protobuf.ByteString getDisplayAdsLinkBytes() { - java.lang.Object ref = displayAdsLink_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - displayAdsLink_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetVehicleMsrpFieldBuilder() { + if (vehicleMsrpBuilder_ == null) { + vehicleMsrpBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getVehicleMsrp(), getParentForChildren(), isClean()); + vehicleMsrp_ = null; } + return vehicleMsrpBuilder_; } + private com.google.shopping.type.Price vehicleAllInPrice_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + vehicleAllInPriceBuilder_; + /** * * *
-     * URL directly to your item's landing page for dynamic remarketing
-     * campaigns.
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * optional string display_ads_link = 68; + * .google.shopping.type.Price vehicle_all_in_price = 163; * - * @param value The displayAdsLink to set. - * @return This builder for chaining. + * @return Whether the vehicleAllInPrice field is set. */ - public Builder setDisplayAdsLink(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - displayAdsLink_ = value; - bitField2_ |= 0x00000100; - onChanged(); - return this; + public boolean hasVehicleAllInPrice() { + return ((bitField3_ & 0x00100000) != 0); } /** * * *
-     * URL directly to your item's landing page for dynamic remarketing
-     * campaigns.
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * optional string display_ads_link = 68; + * .google.shopping.type.Price vehicle_all_in_price = 163; * - * @return This builder for chaining. + * @return The vehicleAllInPrice. */ - public Builder clearDisplayAdsLink() { - displayAdsLink_ = getDefaultInstance().getDisplayAdsLink(); - bitField2_ = (bitField2_ & ~0x00000100); - onChanged(); - return this; + public com.google.shopping.type.Price getVehicleAllInPrice() { + if (vehicleAllInPriceBuilder_ == null) { + return vehicleAllInPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleAllInPrice_; + } else { + return vehicleAllInPriceBuilder_.getMessage(); + } } /** * * *
-     * URL directly to your item's landing page for dynamic remarketing
-     * campaigns.
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * optional string display_ads_link = 68; - * - * @param value The bytes for displayAdsLink to set. - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_all_in_price = 163; */ - public Builder setDisplayAdsLinkBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder setVehicleAllInPrice(com.google.shopping.type.Price value) { + if (vehicleAllInPriceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + vehicleAllInPrice_ = value; + } else { + vehicleAllInPriceBuilder_.setMessage(value); } - checkByteStringIsUtf8(value); - displayAdsLink_ = value; - bitField2_ |= 0x00000100; + bitField3_ |= 0x00100000; onChanged(); return this; } - private double displayAdsValue_; - /** * * *
-     * Offer margin for dynamic remarketing campaigns. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * optional double display_ads_value = 69; - * - * @return Whether the displayAdsValue field is set. + * .google.shopping.type.Price vehicle_all_in_price = 163; */ - @java.lang.Override - public boolean hasDisplayAdsValue() { - return ((bitField2_ & 0x00000200) != 0); + public Builder setVehicleAllInPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (vehicleAllInPriceBuilder_ == null) { + vehicleAllInPrice_ = builderForValue.build(); + } else { + vehicleAllInPriceBuilder_.setMessage(builderForValue.build()); + } + bitField3_ |= 0x00100000; + onChanged(); + return this; } /** * * *
-     * Offer margin for dynamic remarketing campaigns. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * optional double display_ads_value = 69; - * - * @return The displayAdsValue. + * .google.shopping.type.Price vehicle_all_in_price = 163; */ - @java.lang.Override - public double getDisplayAdsValue() { - return displayAdsValue_; + public Builder mergeVehicleAllInPrice(com.google.shopping.type.Price value) { + if (vehicleAllInPriceBuilder_ == null) { + if (((bitField3_ & 0x00100000) != 0) + && vehicleAllInPrice_ != null + && vehicleAllInPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { + getVehicleAllInPriceBuilder().mergeFrom(value); + } else { + vehicleAllInPrice_ = value; + } + } else { + vehicleAllInPriceBuilder_.mergeFrom(value); + } + if (vehicleAllInPrice_ != null) { + bitField3_ |= 0x00100000; + onChanged(); + } + return this; } /** * * *
-     * Offer margin for dynamic remarketing campaigns. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * optional double display_ads_value = 69; - * - * @param value The displayAdsValue to set. - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_all_in_price = 163; */ - public Builder setDisplayAdsValue(double value) { - - displayAdsValue_ = value; - bitField2_ |= 0x00000200; + public Builder clearVehicleAllInPrice() { + bitField3_ = (bitField3_ & ~0x00100000); + vehicleAllInPrice_ = null; + if (vehicleAllInPriceBuilder_ != null) { + vehicleAllInPriceBuilder_.dispose(); + vehicleAllInPriceBuilder_ = null; + } onChanged(); return this; } @@ -31451,115 +60715,176 @@ public Builder setDisplayAdsValue(double value) { * * *
-     * Offer margin for dynamic remarketing campaigns. For more information, see
-     * [Display ads
-     * attribute](https://support.google.com/merchants/answer/6069387).
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * optional double display_ads_value = 69; - * - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_all_in_price = 163; */ - public Builder clearDisplayAdsValue() { - bitField2_ = (bitField2_ & ~0x00000200); - displayAdsValue_ = 0D; + public com.google.shopping.type.Price.Builder getVehicleAllInPriceBuilder() { + bitField3_ |= 0x00100000; onChanged(); - return this; + return internalGetVehicleAllInPriceFieldBuilder().getBuilder(); } - private com.google.protobuf.LazyStringArrayList promotionIds_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensurePromotionIdsIsMutable() { - if (!promotionIds_.isModifiable()) { - promotionIds_ = new com.google.protobuf.LazyStringArrayList(promotionIds_); + /** + * + * + *
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
+     * 
+ * + * .google.shopping.type.Price vehicle_all_in_price = 163; + */ + public com.google.shopping.type.PriceOrBuilder getVehicleAllInPriceOrBuilder() { + if (vehicleAllInPriceBuilder_ != null) { + return vehicleAllInPriceBuilder_.getMessageOrBuilder(); + } else { + return vehicleAllInPrice_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleAllInPrice_; } - bitField2_ |= 0x00000400; } /** * * *
-     * The unique ID of a promotion.
+     * The all-in advertised price for a vehicle, which includes costs for the
+     * following – any accessories attached to the vehicle, environmental levies,
+     * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+     * for handling licensing, provincial regulatory fees, miscellaneous dealer
+     * charges for security etching and nitrogen tire fill, and
+     * factory-to-customer or dealer-to-customer discounts or incentives. See the
+     * [Vehicle all-in
+     * price](https://support.google.com/google-ads/answer/14156981) for more
+     * information.
      * 
* - * repeated string promotion_ids = 70; - * - * @return A list containing the promotionIds. + * .google.shopping.type.Price vehicle_all_in_price = 163; */ - public com.google.protobuf.ProtocolStringList getPromotionIdsList() { - promotionIds_.makeImmutable(); - return promotionIds_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetVehicleAllInPriceFieldBuilder() { + if (vehicleAllInPriceBuilder_ == null) { + vehicleAllInPriceBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getVehicleAllInPrice(), getParentForChildren(), isClean()); + vehicleAllInPrice_ = null; + } + return vehicleAllInPriceBuilder_; } + private int vehiclePriceType_ = 0; + /** * * *
-     * The unique ID of a promotion.
+     * The [price type](https://support.google.com/google-ads/answer/14592783) of
+     * the vehicle.
      * 
* - * repeated string promotion_ids = 70; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * * - * @return The count of promotionIds. + * @return The enum numeric value on the wire for vehiclePriceType. */ - public int getPromotionIdsCount() { - return promotionIds_.size(); + @java.lang.Override + public int getVehiclePriceTypeValue() { + return vehiclePriceType_; } /** * * *
-     * The unique ID of a promotion.
+     * The [price type](https://support.google.com/google-ads/answer/14592783) of
+     * the vehicle.
      * 
* - * repeated string promotion_ids = 70; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * * - * @param index The index of the element to return. - * @return The promotionIds at the given index. + * @param value The enum numeric value on the wire for vehiclePriceType to set. + * @return This builder for chaining. */ - public java.lang.String getPromotionIds(int index) { - return promotionIds_.get(index); + public Builder setVehiclePriceTypeValue(int value) { + vehiclePriceType_ = value; + bitField3_ |= 0x00200000; + onChanged(); + return this; } /** * * *
-     * The unique ID of a promotion.
+     * The [price type](https://support.google.com/google-ads/answer/14592783) of
+     * the vehicle.
      * 
* - * repeated string promotion_ids = 70; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * * - * @param index The index of the value to return. - * @return The bytes of the promotionIds at the given index. + * @return The vehiclePriceType. */ - public com.google.protobuf.ByteString getPromotionIdsBytes(int index) { - return promotionIds_.getByteString(index); + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType + getVehiclePriceType() { + com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType result = + com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType.forNumber( + vehiclePriceType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType.UNRECOGNIZED + : result; } /** * * *
-     * The unique ID of a promotion.
+     * The [price type](https://support.google.com/google-ads/answer/14592783) of
+     * the vehicle.
      * 
* - * repeated string promotion_ids = 70; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * * - * @param index The index to set the value at. - * @param value The promotionIds to set. + * @param value The vehiclePriceType to set. * @return This builder for chaining. */ - public Builder setPromotionIds(int index, java.lang.String value) { + public Builder setVehiclePriceType( + com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType value) { if (value == null) { throw new NullPointerException(); } - ensurePromotionIdsIsMutable(); - promotionIds_.set(index, value); - bitField2_ |= 0x00000400; + bitField3_ |= 0x00200000; + vehiclePriceType_ = value.getNumber(); onChanged(); return this; } @@ -31568,60 +60893,63 @@ public Builder setPromotionIds(int index, java.lang.String value) { * * *
-     * The unique ID of a promotion.
+     * The [price type](https://support.google.com/google-ads/answer/14592783) of
+     * the vehicle.
      * 
* - * repeated string promotion_ids = 70; + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * * - * @param value The promotionIds to add. * @return This builder for chaining. */ - public Builder addPromotionIds(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensurePromotionIdsIsMutable(); - promotionIds_.add(value); - bitField2_ |= 0x00000400; + public Builder clearVehiclePriceType() { + bitField3_ = (bitField3_ & ~0x00200000); + vehiclePriceType_ = 0; onChanged(); return this; } + private boolean vehicleMandatoryInspectionIncluded_; + /** * * *
-     * The unique ID of a promotion.
+     * Whether the vehicle is sold with mandatory inspection and maintenance
+     * performed before delivery. See the [Vehicle mandatory inspection
+     * included](https://support.google.com/google-ads/answer/15956630) for more
+     * information.`
      * 
* - * repeated string promotion_ids = 70; + * bool vehicle_mandatory_inspection_included = 166; * - * @param values The promotionIds to add. - * @return This builder for chaining. + * @return The vehicleMandatoryInspectionIncluded. */ - public Builder addAllPromotionIds(java.lang.Iterable values) { - ensurePromotionIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, promotionIds_); - bitField2_ |= 0x00000400; - onChanged(); - return this; + @java.lang.Override + public boolean getVehicleMandatoryInspectionIncluded() { + return vehicleMandatoryInspectionIncluded_; } /** * * *
-     * The unique ID of a promotion.
+     * Whether the vehicle is sold with mandatory inspection and maintenance
+     * performed before delivery. See the [Vehicle mandatory inspection
+     * included](https://support.google.com/google-ads/answer/15956630) for more
+     * information.`
      * 
* - * repeated string promotion_ids = 70; + * bool vehicle_mandatory_inspection_included = 166; * + * @param value The vehicleMandatoryInspectionIncluded to set. * @return This builder for chaining. */ - public Builder clearPromotionIds() { - promotionIds_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField2_ = (bitField2_ & ~0x00000400); - ; + public Builder setVehicleMandatoryInspectionIncluded(boolean value) { + + vehicleMandatoryInspectionIncluded_ = value; + bitField3_ |= 0x00400000; onChanged(); return this; } @@ -31630,78 +60958,94 @@ public Builder clearPromotionIds() { * * *
-     * The unique ID of a promotion.
+     * Whether the vehicle is sold with mandatory inspection and maintenance
+     * performed before delivery. See the [Vehicle mandatory inspection
+     * included](https://support.google.com/google-ads/answer/15956630) for more
+     * information.`
      * 
* - * repeated string promotion_ids = 70; + * bool vehicle_mandatory_inspection_included = 166; * - * @param value The bytes of the promotionIds to add. * @return This builder for chaining. */ - public Builder addPromotionIdsBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensurePromotionIdsIsMutable(); - promotionIds_.add(value); - bitField2_ |= 0x00000400; + public Builder clearVehicleMandatoryInspectionIncluded() { + bitField3_ = (bitField3_ & ~0x00400000); + vehicleMandatoryInspectionIncluded_ = false; onChanged(); return this; } - private int pickupMethod_ = 0; + private com.google.shopping.type.Price vehicleExpenses_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + vehicleExpensesBuilder_; /** * * *
-     * The [pickup](https://support.google.com/merchants/answer/14634021) option
-     * for the item.
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * .google.shopping.type.Price vehicle_expenses = 167; * - * @return Whether the pickupMethod field is set. + * @return Whether the vehicleExpenses field is set. */ - @java.lang.Override - public boolean hasPickupMethod() { - return ((bitField2_ & 0x00000800) != 0); + public boolean hasVehicleExpenses() { + return ((bitField3_ & 0x00800000) != 0); } /** * * *
-     * The [pickup](https://support.google.com/merchants/answer/14634021) option
-     * for the item.
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; + * .google.shopping.type.Price vehicle_expenses = 167; * - * @return The enum numeric value on the wire for pickupMethod. + * @return The vehicleExpenses. */ - @java.lang.Override - public int getPickupMethodValue() { - return pickupMethod_; + public com.google.shopping.type.Price getVehicleExpenses() { + if (vehicleExpensesBuilder_ == null) { + return vehicleExpenses_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleExpenses_; + } else { + return vehicleExpensesBuilder_.getMessage(); + } } /** * * *
-     * The [pickup](https://support.google.com/merchants/answer/14634021) option
-     * for the item.
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; - * - * @param value The enum numeric value on the wire for pickupMethod to set. - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_expenses = 167; */ - public Builder setPickupMethodValue(int value) { - pickupMethod_ = value; - bitField2_ |= 0x00000800; + public Builder setVehicleExpenses(com.google.shopping.type.Price value) { + if (vehicleExpensesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + vehicleExpenses_ = value; + } else { + vehicleExpensesBuilder_.setMessage(value); + } + bitField3_ |= 0x00800000; onChanged(); return this; } @@ -31710,43 +61054,53 @@ public Builder setPickupMethodValue(int value) { * * *
-     * The [pickup](https://support.google.com/merchants/answer/14634021) option
-     * for the item.
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; - * - * @return The pickupMethod. + * .google.shopping.type.Price vehicle_expenses = 167; */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.PickupMethod getPickupMethod() { - com.google.shopping.merchant.products.v1.PickupMethod result = - com.google.shopping.merchant.products.v1.PickupMethod.forNumber(pickupMethod_); - return result == null - ? com.google.shopping.merchant.products.v1.PickupMethod.UNRECOGNIZED - : result; + public Builder setVehicleExpenses(com.google.shopping.type.Price.Builder builderForValue) { + if (vehicleExpensesBuilder_ == null) { + vehicleExpenses_ = builderForValue.build(); + } else { + vehicleExpensesBuilder_.setMessage(builderForValue.build()); + } + bitField3_ |= 0x00800000; + onChanged(); + return this; } /** * * *
-     * The [pickup](https://support.google.com/merchants/answer/14634021) option
-     * for the item.
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; - * - * @param value The pickupMethod to set. - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_expenses = 167; */ - public Builder setPickupMethod(com.google.shopping.merchant.products.v1.PickupMethod value) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeVehicleExpenses(com.google.shopping.type.Price value) { + if (vehicleExpensesBuilder_ == null) { + if (((bitField3_ & 0x00800000) != 0) + && vehicleExpenses_ != null + && vehicleExpenses_ != com.google.shopping.type.Price.getDefaultInstance()) { + getVehicleExpensesBuilder().mergeFrom(value); + } else { + vehicleExpenses_ = value; + } + } else { + vehicleExpensesBuilder_.mergeFrom(value); + } + if (vehicleExpenses_ != null) { + bitField3_ |= 0x00800000; + onChanged(); } - bitField2_ |= 0x00000800; - pickupMethod_ = value.getNumber(); - onChanged(); return this; } @@ -31754,117 +61108,161 @@ public Builder setPickupMethod(com.google.shopping.merchant.products.v1.PickupMe * * *
-     * The [pickup](https://support.google.com/merchants/answer/14634021) option
-     * for the item.
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupMethod pickup_method = 80; - * - * @return This builder for chaining. + * .google.shopping.type.Price vehicle_expenses = 167; */ - public Builder clearPickupMethod() { - bitField2_ = (bitField2_ & ~0x00000800); - pickupMethod_ = 0; + public Builder clearVehicleExpenses() { + bitField3_ = (bitField3_ & ~0x00800000); + vehicleExpenses_ = null; + if (vehicleExpensesBuilder_ != null) { + vehicleExpensesBuilder_.dispose(); + vehicleExpensesBuilder_ = null; + } onChanged(); return this; } - private int pickupSla_ = 0; - /** * * *
-     * Item store pickup timeline. For more information, see
-     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; - * - * @return Whether the pickupSla field is set. + * .google.shopping.type.Price vehicle_expenses = 167; */ - @java.lang.Override - public boolean hasPickupSla() { - return ((bitField2_ & 0x00001000) != 0); + public com.google.shopping.type.Price.Builder getVehicleExpensesBuilder() { + bitField3_ |= 0x00800000; + onChanged(); + return internalGetVehicleExpensesFieldBuilder().getBuilder(); } /** * * *
-     * Item store pickup timeline. For more information, see
-     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * .google.shopping.type.Price vehicle_expenses = 167; + */ + public com.google.shopping.type.PriceOrBuilder getVehicleExpensesOrBuilder() { + if (vehicleExpensesBuilder_ != null) { + return vehicleExpensesBuilder_.getMessageOrBuilder(); + } else { + return vehicleExpenses_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : vehicleExpenses_; + } + } + + /** * - * @return The enum numeric value on the wire for pickupSla. + * + *
+     * The miscellaneous expenses like insurance and registration fees of the
+     * vehicle. See the [Vehicle
+     * expenses](https://support.google.com/google-ads/answer/15957154) for more
+     * information.
+     * 
+ * + * .google.shopping.type.Price vehicle_expenses = 167; */ - @java.lang.Override - public int getPickupSlaValue() { - return pickupSla_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetVehicleExpensesFieldBuilder() { + if (vehicleExpensesBuilder_ == null) { + vehicleExpensesBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getVehicleExpenses(), getParentForChildren(), isClean()); + vehicleExpenses_ = null; + } + return vehicleExpensesBuilder_; } + private com.google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty, + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.WarrantyOrBuilder> + warrantyBuilder_; + /** * * *
-     * Item store pickup timeline. For more information, see
-     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; * - * @param value The enum numeric value on the wire for pickupSla to set. - * @return This builder for chaining. + * @return Whether the warranty field is set. */ - public Builder setPickupSlaValue(int value) { - pickupSla_ = value; - bitField2_ |= 0x00001000; - onChanged(); - return this; + public boolean hasWarranty() { + return ((bitField3_ & 0x01000000) != 0); } /** * * *
-     * Item store pickup timeline. For more information, see
-     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; * - * @return The pickupSla. + * @return The warranty. */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.PickupSla getPickupSla() { - com.google.shopping.merchant.products.v1.PickupSla result = - com.google.shopping.merchant.products.v1.PickupSla.forNumber(pickupSla_); - return result == null - ? com.google.shopping.merchant.products.v1.PickupSla.UNRECOGNIZED - : result; + public com.google.shopping.merchant.products.v1.ProductAttributes.Warranty getWarranty() { + if (warrantyBuilder_ == null) { + return warranty_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + .getDefaultInstance() + : warranty_; + } else { + return warrantyBuilder_.getMessage(); + } } /** * * *
-     * Item store pickup timeline. For more information, see
-     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; - * - * @param value The pickupSla to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; */ - public Builder setPickupSla(com.google.shopping.merchant.products.v1.PickupSla value) { - if (value == null) { - throw new NullPointerException(); + public Builder setWarranty( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty value) { + if (warrantyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + warranty_ = value; + } else { + warrantyBuilder_.setMessage(value); } - bitField2_ |= 0x00001000; - pickupSla_ = value.getNumber(); + bitField3_ |= 0x01000000; onChanged(); return this; } @@ -31873,84 +61271,114 @@ public Builder setPickupSla(com.google.shopping.merchant.products.v1.PickupSla v * * *
-     * Item store pickup timeline. For more information, see
-     * [Pickup SLA](https://support.google.com/merchants/answer/14635400).
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional .google.shopping.merchant.products.v1.PickupSla pickup_sla = 81; - * - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; */ - public Builder clearPickupSla() { - bitField2_ = (bitField2_ & ~0x00001000); - pickupSla_ = 0; + public Builder setWarranty( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.Builder + builderForValue) { + if (warrantyBuilder_ == null) { + warranty_ = builderForValue.build(); + } else { + warrantyBuilder_.setMessage(builderForValue.build()); + } + bitField3_ |= 0x01000000; onChanged(); return this; } - private java.lang.Object linkTemplate_ = ""; - /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13871172) for
-     * business hosted local storefront.
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional string link_template = 82; + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; + */ + public Builder mergeWarranty( + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty value) { + if (warrantyBuilder_ == null) { + if (((bitField3_ & 0x01000000) != 0) + && warranty_ != null + && warranty_ + != com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + .getDefaultInstance()) { + getWarrantyBuilder().mergeFrom(value); + } else { + warranty_ = value; + } + } else { + warrantyBuilder_.mergeFrom(value); + } + if (warranty_ != null) { + bitField3_ |= 0x01000000; + onChanged(); + } + return this; + } + + /** * - * @return Whether the linkTemplate field is set. + * + *
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
+     * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; */ - public boolean hasLinkTemplate() { - return ((bitField2_ & 0x00002000) != 0); + public Builder clearWarranty() { + bitField3_ = (bitField3_ & ~0x01000000); + warranty_ = null; + if (warrantyBuilder_ != null) { + warrantyBuilder_.dispose(); + warrantyBuilder_ = null; + } + onChanged(); + return this; } /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13871172) for
-     * business hosted local storefront.
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional string link_template = 82; - * - * @return The linkTemplate. + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; */ - public java.lang.String getLinkTemplate() { - java.lang.Object ref = linkTemplate_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - linkTemplate_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.Builder + getWarrantyBuilder() { + bitField3_ |= 0x01000000; + onChanged(); + return internalGetWarrantyFieldBuilder().getBuilder(); } /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13871172) for
-     * business hosted local storefront.
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional string link_template = 82; - * - * @return The bytes for linkTemplate. + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; */ - public com.google.protobuf.ByteString getLinkTemplateBytes() { - java.lang.Object ref = linkTemplate_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - linkTemplate_ = b; - return b; + public com.google.shopping.merchant.products.v1.ProductAttributes.WarrantyOrBuilder + getWarrantyOrBuilder() { + if (warrantyBuilder_ != null) { + return warrantyBuilder_.getMessageOrBuilder(); } else { - return (com.google.protobuf.ByteString) ref; + return warranty_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.Warranty + .getDefaultInstance() + : warranty_; } } @@ -31958,157 +61386,180 @@ public com.google.protobuf.ByteString getLinkTemplateBytes() { * * *
-     * [Link template](https://support.google.com/merchants/answer/13871172) for
-     * business hosted local storefront.
+     * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+     * the vehicle.
      * 
* - * optional string link_template = 82; - * - * @param value The linkTemplate to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; */ - public Builder setLinkTemplate(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty, + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.WarrantyOrBuilder> + internalGetWarrantyFieldBuilder() { + if (warrantyBuilder_ == null) { + warrantyBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty, + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.WarrantyOrBuilder>( + getWarranty(), getParentForChildren(), isClean()); + warranty_ = null; } - linkTemplate_ = value; - bitField2_ |= 0x00002000; - onChanged(); - return this; + return warrantyBuilder_; } + private com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + displayAddress_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddressOrBuilder> + displayAddressBuilder_; + /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13871172) for
-     * business hosted local storefront.
+     * The display address of the property.
      * 
* - * optional string link_template = 82; + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * * - * @return This builder for chaining. + * @return Whether the displayAddress field is set. */ - public Builder clearLinkTemplate() { - linkTemplate_ = getDefaultInstance().getLinkTemplate(); - bitField2_ = (bitField2_ & ~0x00002000); - onChanged(); - return this; + public boolean hasDisplayAddress() { + return ((bitField3_ & 0x02000000) != 0); } /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13871172) for
-     * business hosted local storefront.
+     * The display address of the property.
      * 
* - * optional string link_template = 82; + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * * - * @param value The bytes for linkTemplate to set. - * @return This builder for chaining. + * @return The displayAddress. */ - public Builder setLinkTemplateBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + getDisplayAddress() { + if (displayAddressBuilder_ == null) { + return displayAddress_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + .getDefaultInstance() + : displayAddress_; + } else { + return displayAddressBuilder_.getMessage(); } - checkByteStringIsUtf8(value); - linkTemplate_ = value; - bitField2_ |= 0x00002000; - onChanged(); - return this; } - private java.lang.Object mobileLinkTemplate_ = ""; - /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13870216) for
-     * business hosted local storefront optimized for mobile
-     * devices.
+     * The display address of the property.
      * 
* - * optional string mobile_link_template = 83; - * - * @return Whether the mobileLinkTemplate field is set. + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * */ - public boolean hasMobileLinkTemplate() { - return ((bitField2_ & 0x00004000) != 0); + public Builder setDisplayAddress( + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress value) { + if (displayAddressBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + displayAddress_ = value; + } else { + displayAddressBuilder_.setMessage(value); + } + bitField3_ |= 0x02000000; + onChanged(); + return this; } /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13870216) for
-     * business hosted local storefront optimized for mobile
-     * devices.
+     * The display address of the property.
      * 
* - * optional string mobile_link_template = 83; - * - * @return The mobileLinkTemplate. + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * */ - public java.lang.String getMobileLinkTemplate() { - java.lang.Object ref = mobileLinkTemplate_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - mobileLinkTemplate_ = s; - return s; + public Builder setDisplayAddress( + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.Builder + builderForValue) { + if (displayAddressBuilder_ == null) { + displayAddress_ = builderForValue.build(); } else { - return (java.lang.String) ref; + displayAddressBuilder_.setMessage(builderForValue.build()); } + bitField3_ |= 0x02000000; + onChanged(); + return this; } /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13870216) for
-     * business hosted local storefront optimized for mobile
-     * devices.
+     * The display address of the property.
      * 
* - * optional string mobile_link_template = 83; - * - * @return The bytes for mobileLinkTemplate. + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * */ - public com.google.protobuf.ByteString getMobileLinkTemplateBytes() { - java.lang.Object ref = mobileLinkTemplate_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - mobileLinkTemplate_ = b; - return b; + public Builder mergeDisplayAddress( + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress value) { + if (displayAddressBuilder_ == null) { + if (((bitField3_ & 0x02000000) != 0) + && displayAddress_ != null + && displayAddress_ + != com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + .getDefaultInstance()) { + getDisplayAddressBuilder().mergeFrom(value); + } else { + displayAddress_ = value; + } } else { - return (com.google.protobuf.ByteString) ref; + displayAddressBuilder_.mergeFrom(value); + } + if (displayAddress_ != null) { + bitField3_ |= 0x02000000; + onChanged(); } + return this; } /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13870216) for
-     * business hosted local storefront optimized for mobile
-     * devices.
+     * The display address of the property.
      * 
* - * optional string mobile_link_template = 83; - * - * @param value The mobileLinkTemplate to set. - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * */ - public Builder setMobileLinkTemplate(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder clearDisplayAddress() { + bitField3_ = (bitField3_ & ~0x02000000); + displayAddress_ = null; + if (displayAddressBuilder_ != null) { + displayAddressBuilder_.dispose(); + displayAddressBuilder_ = null; } - mobileLinkTemplate_ = value; - bitField2_ |= 0x00004000; onChanged(); return this; } @@ -32117,132 +61568,124 @@ public Builder setMobileLinkTemplate(java.lang.String value) { * * *
-     * [Link template](https://support.google.com/merchants/answer/13870216) for
-     * business hosted local storefront optimized for mobile
-     * devices.
+     * The display address of the property.
      * 
* - * optional string mobile_link_template = 83; - * - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * */ - public Builder clearMobileLinkTemplate() { - mobileLinkTemplate_ = getDefaultInstance().getMobileLinkTemplate(); - bitField2_ = (bitField2_ & ~0x00004000); + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.Builder + getDisplayAddressBuilder() { + bitField3_ |= 0x02000000; onChanged(); - return this; + return internalGetDisplayAddressFieldBuilder().getBuilder(); } /** * * *
-     * [Link template](https://support.google.com/merchants/answer/13870216) for
-     * business hosted local storefront optimized for mobile
-     * devices.
+     * The display address of the property.
      * 
* - * optional string mobile_link_template = 83; - * - * @param value The bytes for mobileLinkTemplate to set. - * @return This builder for chaining. + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * */ - public Builder setMobileLinkTemplateBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddressOrBuilder + getDisplayAddressOrBuilder() { + if (displayAddressBuilder_ != null) { + return displayAddressBuilder_.getMessageOrBuilder(); + } else { + return displayAddress_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress + .getDefaultInstance() + : displayAddress_; } - checkByteStringIsUtf8(value); - mobileLinkTemplate_ = value; - bitField2_ |= 0x00004000; - onChanged(); - return this; } - private java.lang.Object customLabel0_ = ""; - /** * * *
-     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The display address of the property.
      * 
* - * optional string custom_label_0 = 71; - * - * @return Whether the customLabel0 field is set. + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * */ - public boolean hasCustomLabel0() { - return ((bitField2_ & 0x00008000) != 0); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddressOrBuilder> + internalGetDisplayAddressFieldBuilder() { + if (displayAddressBuilder_ == null) { + displayAddressBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddressOrBuilder>( + getDisplayAddress(), getParentForChildren(), isClean()); + displayAddress_ = null; + } + return displayAddressBuilder_; } + private double latitude_; + /** * * *
-     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The latitude of the property. The value must be between -90 (inclusive) and
+     * 90 (inclusive), up to 6 decimal places.
      * 
* - * optional string custom_label_0 = 71; + * optional double latitude = 180; * - * @return The customLabel0. + * @return Whether the latitude field is set. */ - 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; - } + @java.lang.Override + public boolean hasLatitude() { + return ((bitField3_ & 0x04000000) != 0); } /** * * *
-     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The latitude of the property. The value must be between -90 (inclusive) and
+     * 90 (inclusive), up to 6 decimal places.
      * 
* - * optional string custom_label_0 = 71; + * optional double latitude = 180; * - * @return The bytes for customLabel0. + * @return The latitude. */ - 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; - } + @java.lang.Override + public double getLatitude() { + return latitude_; } /** * * *
-     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The latitude of the property. The value must be between -90 (inclusive) and
+     * 90 (inclusive), up to 6 decimal places.
      * 
* - * optional string custom_label_0 = 71; + * optional double latitude = 180; * - * @param value The customLabel0 to set. + * @param value The latitude to set. * @return This builder for chaining. */ - public Builder setCustomLabel0(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - customLabel0_ = value; - bitField2_ |= 0x00008000; + public Builder setLatitude(double value) { + + latitude_ = value; + bitField3_ |= 0x04000000; onChanged(); return this; } @@ -32251,81 +61694,117 @@ public Builder setCustomLabel0(java.lang.String value) { * * *
-     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The latitude of the property. The value must be between -90 (inclusive) and
+     * 90 (inclusive), up to 6 decimal places.
      * 
* - * optional string custom_label_0 = 71; + * optional double latitude = 180; * * @return This builder for chaining. */ - public Builder clearCustomLabel0() { - customLabel0_ = getDefaultInstance().getCustomLabel0(); - bitField2_ = (bitField2_ & ~0x00008000); + public Builder clearLatitude() { + bitField3_ = (bitField3_ & ~0x04000000); + latitude_ = 0D; onChanged(); return this; } + private double longitude_; + /** * * *
-     * [Custom label 0](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The longitude of the property. The value must be between -180 (inclusive)
+     * and 180 (inclusive), up to 6 decimal places.
      * 
* - * optional string custom_label_0 = 71; + * optional double longitude = 181; * - * @param value The bytes for customLabel0 to set. + * @return Whether the longitude field is set. + */ + @java.lang.Override + public boolean hasLongitude() { + return ((bitField3_ & 0x08000000) != 0); + } + + /** + * + * + *
+     * The longitude of the property. The value must be between -180 (inclusive)
+     * and 180 (inclusive), up to 6 decimal places.
+     * 
+ * + * optional double longitude = 181; + * + * @return The longitude. + */ + @java.lang.Override + public double getLongitude() { + return longitude_; + } + + /** + * + * + *
+     * The longitude of the property. The value must be between -180 (inclusive)
+     * and 180 (inclusive), up to 6 decimal places.
+     * 
+ * + * optional double longitude = 181; + * + * @param value The longitude 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; - bitField2_ |= 0x00008000; + public Builder setLongitude(double value) { + + longitude_ = value; + bitField3_ |= 0x08000000; onChanged(); return this; } - private java.lang.Object customLabel1_ = ""; - /** * * *
-     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The longitude of the property. The value must be between -180 (inclusive)
+     * and 180 (inclusive), up to 6 decimal places.
      * 
* - * optional string custom_label_1 = 72; + * optional double longitude = 181; * - * @return Whether the customLabel1 field is set. + * @return This builder for chaining. */ - public boolean hasCustomLabel1() { - return ((bitField2_ & 0x00010000) != 0); + public Builder clearLongitude() { + bitField3_ = (bitField3_ & ~0x08000000); + longitude_ = 0D; + onChanged(); + return this; } + private java.lang.Object neighborhood_ = ""; + /** * * *
-     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The neighborhood (locality) of the property, such as `Wallingford`,
+     * `Greenwood`, etc.
      * 
* - * optional string custom_label_1 = 72; + * string neighborhood = 182; * - * @return The customLabel1. + * @return The neighborhood. */ - public java.lang.String getCustomLabel1() { - java.lang.Object ref = customLabel1_; + public java.lang.String getNeighborhood() { + java.lang.Object ref = neighborhood_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - customLabel1_ = s; + neighborhood_ = s; return s; } else { return (java.lang.String) ref; @@ -32336,20 +61815,20 @@ public java.lang.String getCustomLabel1() { * * *
-     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The neighborhood (locality) of the property, such as `Wallingford`,
+     * `Greenwood`, etc.
      * 
* - * optional string custom_label_1 = 72; + * string neighborhood = 182; * - * @return The bytes for customLabel1. + * @return The bytes for neighborhood. */ - public com.google.protobuf.ByteString getCustomLabel1Bytes() { - java.lang.Object ref = customLabel1_; + public com.google.protobuf.ByteString getNeighborhoodBytes() { + java.lang.Object ref = neighborhood_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - customLabel1_ = b; + neighborhood_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -32360,21 +61839,21 @@ public com.google.protobuf.ByteString getCustomLabel1Bytes() { * * *
-     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The neighborhood (locality) of the property, such as `Wallingford`,
+     * `Greenwood`, etc.
      * 
* - * optional string custom_label_1 = 72; + * string neighborhood = 182; * - * @param value The customLabel1 to set. + * @param value The neighborhood to set. * @return This builder for chaining. */ - public Builder setCustomLabel1(java.lang.String value) { + public Builder setNeighborhood(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - customLabel1_ = value; - bitField2_ |= 0x00010000; + neighborhood_ = value; + bitField3_ |= 0x10000000; onChanged(); return this; } @@ -32383,17 +61862,17 @@ public Builder setCustomLabel1(java.lang.String value) { * * *
-     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The neighborhood (locality) of the property, such as `Wallingford`,
+     * `Greenwood`, etc.
      * 
* - * optional string custom_label_1 = 72; + * string neighborhood = 182; * * @return This builder for chaining. */ - public Builder clearCustomLabel1() { - customLabel1_ = getDefaultInstance().getCustomLabel1(); - bitField2_ = (bitField2_ & ~0x00010000); + public Builder clearNeighborhood() { + neighborhood_ = getDefaultInstance().getNeighborhood(); + bitField3_ = (bitField3_ & ~0x10000000); onChanged(); return this; } @@ -32402,65 +61881,69 @@ public Builder clearCustomLabel1() { * * *
-     * [Custom label 1](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The neighborhood (locality) of the property, such as `Wallingford`,
+     * `Greenwood`, etc.
      * 
* - * optional string custom_label_1 = 72; + * string neighborhood = 182; * - * @param value The bytes for customLabel1 to set. + * @param value The bytes for neighborhood to set. * @return This builder for chaining. */ - public Builder setCustomLabel1Bytes(com.google.protobuf.ByteString value) { + public Builder setNeighborhoodBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - customLabel1_ = value; - bitField2_ |= 0x00010000; + neighborhood_ = value; + bitField3_ |= 0x10000000; onChanged(); return this; } - private java.lang.Object customLabel2_ = ""; + private com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea unitArea_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitAreaOrBuilder> + unitAreaBuilder_; /** * * *
-     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_2 = 73; + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * * - * @return Whether the customLabel2 field is set. + * @return Whether the unitArea field is set. */ - public boolean hasCustomLabel2() { - return ((bitField2_ & 0x00020000) != 0); + public boolean hasUnitArea() { + return ((bitField3_ & 0x20000000) != 0); } /** * * *
-     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_2 = 73; + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * * - * @return The customLabel2. + * @return The unitArea. */ - 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; + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea getUnitArea() { + if (unitAreaBuilder_ == null) { + return unitArea_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + .getDefaultInstance() + : unitArea_; } else { - return (java.lang.String) ref; + return unitAreaBuilder_.getMessage(); } } @@ -32468,45 +61951,46 @@ public java.lang.String getCustomLabel2() { * * *
-     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_2 = 73; - * - * @return The bytes for customLabel2. + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * */ - 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; + public Builder setUnitArea( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea value) { + if (unitAreaBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + unitArea_ = value; } else { - return (com.google.protobuf.ByteString) ref; + unitAreaBuilder_.setMessage(value); } + bitField3_ |= 0x20000000; + onChanged(); + return this; } /** * * *
-     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_2 = 73; - * - * @param value The customLabel2 to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * */ - public Builder setCustomLabel2(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setUnitArea( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Builder + builderForValue) { + if (unitAreaBuilder_ == null) { + unitArea_ = builderForValue.build(); + } else { + unitAreaBuilder_.setMessage(builderForValue.build()); } - customLabel2_ = value; - bitField2_ |= 0x00020000; + bitField3_ |= 0x20000000; onChanged(); return this; } @@ -32515,18 +61999,31 @@ public Builder setCustomLabel2(java.lang.String value) { * * *
-     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_2 = 73; - * - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * */ - public Builder clearCustomLabel2() { - customLabel2_ = getDefaultInstance().getCustomLabel2(); - bitField2_ = (bitField2_ & ~0x00020000); - onChanged(); + public Builder mergeUnitArea( + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea value) { + if (unitAreaBuilder_ == null) { + if (((bitField3_ & 0x20000000) != 0) + && unitArea_ != null + && unitArea_ + != com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + .getDefaultInstance()) { + getUnitAreaBuilder().mergeFrom(value); + } else { + unitArea_ = value; + } + } else { + unitAreaBuilder_.mergeFrom(value); + } + if (unitArea_ != null) { + bitField3_ |= 0x20000000; + onChanged(); + } return this; } @@ -32534,65 +62031,59 @@ public Builder clearCustomLabel2() { * * *
-     * [Custom label 2](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_2 = 73; - * - * @param value The bytes for customLabel2 to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * */ - public Builder setCustomLabel2Bytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder clearUnitArea() { + bitField3_ = (bitField3_ & ~0x20000000); + unitArea_ = null; + if (unitAreaBuilder_ != null) { + unitAreaBuilder_.dispose(); + unitAreaBuilder_ = null; } - checkByteStringIsUtf8(value); - customLabel2_ = value; - bitField2_ |= 0x00020000; onChanged(); return this; } - private java.lang.Object customLabel3_ = ""; - /** * * *
-     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_3 = 74; - * - * @return Whether the customLabel3 field is set. + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * */ - public boolean hasCustomLabel3() { - return ((bitField2_ & 0x00040000) != 0); + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Builder + getUnitAreaBuilder() { + bitField3_ |= 0x20000000; + onChanged(); + return internalGetUnitAreaFieldBuilder().getBuilder(); } /** * * *
-     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_3 = 74; - * - * @return The customLabel3. + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * */ - 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; + public com.google.shopping.merchant.products.v1.ProductAttributes.UnitAreaOrBuilder + getUnitAreaOrBuilder() { + if (unitAreaBuilder_ != null) { + return unitAreaBuilder_.getMessageOrBuilder(); } else { - return (java.lang.String) ref; + return unitArea_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea + .getDefaultInstance() + : unitArea_; } } @@ -32600,128 +62091,124 @@ public java.lang.String getCustomLabel3() { * * *
-     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The unit area of the property, such as `1000 sqft`.
      * 
* - * optional string custom_label_3 = 74; - * - * @return The bytes for customLabel3. + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * */ - 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; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitAreaOrBuilder> + internalGetUnitAreaFieldBuilder() { + if (unitAreaBuilder_ == null) { + unitAreaBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.UnitAreaOrBuilder>( + getUnitArea(), getParentForChildren(), isClean()); + unitArea_ = null; } + return unitAreaBuilder_; } + private long numberOfUnits_; + /** * * *
-     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The number of units available for a specific floor plan of the property.
+     * The value must be greater than 0.
      * 
* - * optional string custom_label_3 = 74; + * optional int64 number_of_units = 184; * - * @param value The customLabel3 to set. - * @return This builder for chaining. + * @return Whether the numberOfUnits field is set. */ - public Builder setCustomLabel3(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - customLabel3_ = value; - bitField2_ |= 0x00040000; - onChanged(); - return this; + @java.lang.Override + public boolean hasNumberOfUnits() { + return ((bitField3_ & 0x40000000) != 0); } /** * * *
-     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The number of units available for a specific floor plan of the property.
+     * The value must be greater than 0.
      * 
* - * optional string custom_label_3 = 74; + * optional int64 number_of_units = 184; * - * @return This builder for chaining. + * @return The numberOfUnits. */ - public Builder clearCustomLabel3() { - customLabel3_ = getDefaultInstance().getCustomLabel3(); - bitField2_ = (bitField2_ & ~0x00040000); - onChanged(); - return this; + @java.lang.Override + public long getNumberOfUnits() { + return numberOfUnits_; } /** * * *
-     * [Custom label 3](https://support.google.com/merchants/answer/6324473)
-     * for custom grouping of items in a Shopping campaign.
+     * The number of units available for a specific floor plan of the property.
+     * The value must be greater than 0.
      * 
* - * optional string custom_label_3 = 74; + * optional int64 number_of_units = 184; * - * @param value The bytes for customLabel3 to set. + * @param value The numberOfUnits 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; - bitField2_ |= 0x00040000; + public Builder setNumberOfUnits(long value) { + + numberOfUnits_ = value; + bitField3_ |= 0x40000000; onChanged(); return this; } - private java.lang.Object customLabel4_ = ""; - /** * * *
-     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The number of units available for a specific floor plan of the property.
+     * The value must be greater than 0.
      * 
* - * optional string custom_label_4 = 75; + * optional int64 number_of_units = 184; * - * @return Whether the customLabel4 field is set. + * @return This builder for chaining. */ - public boolean hasCustomLabel4() { - return ((bitField2_ & 0x00080000) != 0); + public Builder clearNumberOfUnits() { + bitField3_ = (bitField3_ & ~0x40000000); + numberOfUnits_ = 0L; + onChanged(); + return this; } + private java.lang.Object propertyName_ = ""; + /** * * *
-     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The name of the property.
      * 
* - * optional string custom_label_4 = 75; + * string property_name = 185; * - * @return The customLabel4. + * @return The propertyName. */ - public java.lang.String getCustomLabel4() { - java.lang.Object ref = customLabel4_; + public java.lang.String getPropertyName() { + java.lang.Object ref = propertyName_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - customLabel4_ = s; + propertyName_ = s; return s; } else { return (java.lang.String) ref; @@ -32732,20 +62219,19 @@ public java.lang.String getCustomLabel4() { * * *
-     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The name of the property.
      * 
* - * optional string custom_label_4 = 75; + * string property_name = 185; * - * @return The bytes for customLabel4. + * @return The bytes for propertyName. */ - public com.google.protobuf.ByteString getCustomLabel4Bytes() { - java.lang.Object ref = customLabel4_; + public com.google.protobuf.ByteString getPropertyNameBytes() { + java.lang.Object ref = propertyName_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - customLabel4_ = b; + propertyName_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -32756,21 +62242,20 @@ public com.google.protobuf.ByteString getCustomLabel4Bytes() { * * *
-     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The name of the property.
      * 
* - * optional string custom_label_4 = 75; + * string property_name = 185; * - * @param value The customLabel4 to set. + * @param value The propertyName to set. * @return This builder for chaining. */ - public Builder setCustomLabel4(java.lang.String value) { + public Builder setPropertyName(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - customLabel4_ = value; - bitField2_ |= 0x00080000; + propertyName_ = value; + bitField3_ |= 0x80000000; onChanged(); return this; } @@ -32779,17 +62264,16 @@ public Builder setCustomLabel4(java.lang.String value) { * * *
-     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The name of the property.
      * 
* - * optional string custom_label_4 = 75; + * string property_name = 185; * * @return This builder for chaining. */ - public Builder clearCustomLabel4() { - customLabel4_ = getDefaultInstance().getCustomLabel4(); - bitField2_ = (bitField2_ & ~0x00080000); + public Builder clearPropertyName() { + propertyName_ = getDefaultInstance().getPropertyName(); + bitField3_ = (bitField3_ & ~0x80000000); onChanged(); return this; } @@ -32798,209 +62282,154 @@ public Builder clearCustomLabel4() { * * *
-     * [Custom label 4](https://support.google.com/merchants/answer/6324473) for
-     * custom grouping of items in a Shopping campaign.
+     * The name of the property.
      * 
* - * optional string custom_label_4 = 75; + * string property_name = 185; * - * @param value The bytes for customLabel4 to set. + * @param value The bytes for propertyName to set. * @return This builder for chaining. */ - public Builder setCustomLabel4Bytes(com.google.protobuf.ByteString value) { + public Builder setPropertyNameBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - customLabel4_ = value; - bitField2_ |= 0x00080000; + propertyName_ = value; + bitField3_ |= 0x80000000; onChanged(); return this; } - private com.google.protobuf.Internal.IntList includedDestinations_ = emptyIntList(); - - private void ensureIncludedDestinationsIsMutable() { - if (!includedDestinations_.isModifiable()) { - includedDestinations_ = makeMutableCopy(includedDestinations_); - } - bitField2_ |= 0x00100000; - } + private double numberOfBedrooms_; /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The number of bedrooms in the property. The value must be greater than or
+     * equal to 0 and a multiple of 1.0.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * + * optional double number_of_bedrooms = 186; * - * @return A list containing the includedDestinations. + * @return Whether the numberOfBedrooms field is set. */ - public java.util.List - getIncludedDestinationsList() { - return new com.google.protobuf.Internal.IntListAdapter< - com.google.shopping.type.Destination.DestinationEnum>( - includedDestinations_, includedDestinations_converter_); + @java.lang.Override + public boolean hasNumberOfBedrooms() { + return ((bitField4_ & 0x00000001) != 0); } /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The number of bedrooms in the property. The value must be greater than or
+     * equal to 0 and a multiple of 1.0.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * + * optional double number_of_bedrooms = 186; * - * @return The count of includedDestinations. + * @return The numberOfBedrooms. */ - public int getIncludedDestinationsCount() { - return includedDestinations_.size(); + @java.lang.Override + public double getNumberOfBedrooms() { + return numberOfBedrooms_; } /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The number of bedrooms in the property. The value must be greater than or
+     * equal to 0 and a multiple of 1.0.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * + * optional double number_of_bedrooms = 186; * - * @param index The index of the element to return. - * @return The includedDestinations at the given index. + * @param value The numberOfBedrooms to set. + * @return This builder for chaining. */ - public com.google.shopping.type.Destination.DestinationEnum getIncludedDestinations(int index) { - return includedDestinations_converter_.convert(includedDestinations_.getInt(index)); + public Builder setNumberOfBedrooms(double value) { + + numberOfBedrooms_ = value; + bitField4_ |= 0x00000001; + onChanged(); + return this; } /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The number of bedrooms in the property. The value must be greater than or
+     * equal to 0 and a multiple of 1.0.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * + * optional double number_of_bedrooms = 186; * - * @param index The index to set the value at. - * @param value The includedDestinations to set. * @return This builder for chaining. */ - public Builder setIncludedDestinations( - int index, com.google.shopping.type.Destination.DestinationEnum value) { - if (value == null) { - throw new NullPointerException(); - } - ensureIncludedDestinationsIsMutable(); - includedDestinations_.setInt(index, value.getNumber()); + public Builder clearNumberOfBedrooms() { + bitField4_ = (bitField4_ & ~0x00000001); + numberOfBedrooms_ = 0D; onChanged(); return this; } + private double numberOfBathrooms_; + /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The number of bathrooms in the property. The value must be greater than 0
+     * and a multiple of 0.5.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * + * optional double number_of_bathrooms = 187; * - * @param value The includedDestinations to add. - * @return This builder for chaining. + * @return Whether the numberOfBathrooms field is set. */ - public Builder addIncludedDestinations( - com.google.shopping.type.Destination.DestinationEnum value) { - if (value == null) { - throw new NullPointerException(); - } - ensureIncludedDestinationsIsMutable(); - includedDestinations_.addInt(value.getNumber()); - onChanged(); - return this; + @java.lang.Override + public boolean hasNumberOfBathrooms() { + return ((bitField4_ & 0x00000002) != 0); } /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
+     * The number of bathrooms in the property. The value must be greater than 0
+     * and a multiple of 0.5.
+     * 
* - * For more information, see - * [Included - * destination](https://support.google.com/merchants/answer/7501026). + * optional double number_of_bathrooms = 187; * - * Note: We recommend setting destinations on datasources level for most use - * cases. Use this field within products to only setup exceptions. + * @return The numberOfBathrooms. + */ + @java.lang.Override + public double getNumberOfBathrooms() { + return numberOfBathrooms_; + } + + /** + * + * + *
+     * The number of bathrooms in the property. The value must be greater than 0
+     * and a multiple of 0.5.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * + * optional double number_of_bathrooms = 187; * - * @param values The includedDestinations to add. + * @param value The numberOfBathrooms to set. * @return This builder for chaining. */ - public Builder addAllIncludedDestinations( - java.lang.Iterable values) { - ensureIncludedDestinationsIsMutable(); - for (com.google.shopping.type.Destination.DestinationEnum value : values) { - includedDestinations_.addInt(value.getNumber()); - } + public Builder setNumberOfBathrooms(double value) { + + numberOfBathrooms_ = value; + bitField4_ |= 0x00000002; onChanged(); return this; } @@ -33009,137 +62438,107 @@ public Builder addAllIncludedDestinations( * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The number of bathrooms in the property. The value must be greater than 0
+     * and a multiple of 0.5.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; - * + * optional double number_of_bathrooms = 187; * * @return This builder for chaining. */ - public Builder clearIncludedDestinations() { - includedDestinations_ = emptyIntList(); - bitField2_ = (bitField2_ & ~0x00100000); + public Builder clearNumberOfBathrooms() { + bitField4_ = (bitField4_ & ~0x00000002); + numberOfBathrooms_ = 0D; onChanged(); return this; } + private int propertyType_ = 0; + /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The type of property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; * * - * @return A list containing the enum numeric values on the wire for includedDestinations. + * @return The enum numeric value on the wire for propertyType. */ - public java.util.List getIncludedDestinationsValueList() { - includedDestinations_.makeImmutable(); - return includedDestinations_; + @java.lang.Override + public int getPropertyTypeValue() { + return propertyType_; } /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The type of property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; * * - * @param index The index of the value to return. - * @return The enum numeric value on the wire of includedDestinations at the given index. + * @param value The enum numeric value on the wire for propertyType to set. + * @return This builder for chaining. */ - public int getIncludedDestinationsValue(int index) { - return includedDestinations_.getInt(index); + public Builder setPropertyTypeValue(int value) { + propertyType_ = value; + bitField4_ |= 0x00000004; + onChanged(); + return this; } /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The type of property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; * * - * @param index The index to set the value at. - * @param value The enum numeric value on the wire for includedDestinations to set. - * @return This builder for chaining. + * @return The propertyType. */ - public Builder setIncludedDestinationsValue(int index, int value) { - ensureIncludedDestinationsIsMutable(); - includedDestinations_.setInt(index, value); - onChanged(); - return this; + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType + getPropertyType() { + com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType result = + com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType.forNumber( + propertyType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType.UNRECOGNIZED + : result; } /** * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The type of property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; * * - * @param value The enum numeric value on the wire for includedDestinations to add. + * @param value The propertyType to set. * @return This builder for chaining. */ - public Builder addIncludedDestinationsValue(int value) { - ensureIncludedDestinationsIsMutable(); - includedDestinations_.addInt(value); + public Builder setPropertyType( + com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField4_ |= 0x00000004; + propertyType_ = value.getNumber(); onChanged(); return this; } @@ -33148,147 +62547,110 @@ public Builder addIncludedDestinationsValue(int value) { * * *
-     * The list of destinations to include for this target (corresponds to
-     * checked check boxes in Merchant Center). Default destinations are always
-     * included unless provided in `excludedDestinations`.
-     *
-     * For more information, see
-     * [Included
-     * destination](https://support.google.com/merchants/answer/7501026).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The type of property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum included_destinations = 76; + * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; * * - * @param values The enum numeric values on the wire for includedDestinations to add. * @return This builder for chaining. */ - public Builder addAllIncludedDestinationsValue(java.lang.Iterable values) { - ensureIncludedDestinationsIsMutable(); - for (int value : values) { - includedDestinations_.addInt(value); - } + public Builder clearPropertyType() { + bitField4_ = (bitField4_ & ~0x00000004); + propertyType_ = 0; onChanged(); return this; } - private com.google.protobuf.Internal.IntList excludedDestinations_ = emptyIntList(); + private com.google.protobuf.Internal.IntList amenityFeature_ = emptyIntList(); - private void ensureExcludedDestinationsIsMutable() { - if (!excludedDestinations_.isModifiable()) { - excludedDestinations_ = makeMutableCopy(excludedDestinations_); + private void ensureAmenityFeatureIsMutable() { + if (!amenityFeature_.isModifiable()) { + amenityFeature_ = makeMutableCopy(amenityFeature_); } - bitField2_ |= 0x00200000; + bitField4_ |= 0x00000008; } /** * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * - * @return A list containing the excludedDestinations. + * @return A list containing the amenityFeature. */ - public java.util.List - getExcludedDestinationsList() { + public java.util.List + getAmenityFeatureList() { return new com.google.protobuf.Internal.IntListAdapter< - com.google.shopping.type.Destination.DestinationEnum>( - excludedDestinations_, excludedDestinations_converter_); + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature>( + amenityFeature_, amenityFeature_converter_); } /** * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * - * @return The count of excludedDestinations. + * @return The count of amenityFeature. */ - public int getExcludedDestinationsCount() { - return excludedDestinations_.size(); + public int getAmenityFeatureCount() { + return amenityFeature_.size(); } /** * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * * @param index The index of the element to return. - * @return The excludedDestinations at the given index. + * @return The amenityFeature at the given index. */ - public com.google.shopping.type.Destination.DestinationEnum getExcludedDestinations(int index) { - return excludedDestinations_converter_.convert(excludedDestinations_.getInt(index)); + public com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature + getAmenityFeature(int index) { + return amenityFeature_converter_.convert(amenityFeature_.getInt(index)); } /** * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * * @param index The index to set the value at. - * @param value The excludedDestinations to set. + * @param value The amenityFeature to set. * @return This builder for chaining. */ - public Builder setExcludedDestinations( - int index, com.google.shopping.type.Destination.DestinationEnum value) { + public Builder setAmenityFeature( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature value) { if (value == null) { throw new NullPointerException(); } - ensureExcludedDestinationsIsMutable(); - excludedDestinations_.setInt(index, value.getNumber()); + ensureAmenityFeatureIsMutable(); + amenityFeature_.setInt(index, value.getNumber()); onChanged(); return this; } @@ -33297,30 +62659,23 @@ public Builder setExcludedDestinations( * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * - * @param value The excludedDestinations to add. + * @param value The amenityFeature to add. * @return This builder for chaining. */ - public Builder addExcludedDestinations( - com.google.shopping.type.Destination.DestinationEnum value) { + public Builder addAmenityFeature( + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature value) { if (value == null) { throw new NullPointerException(); } - ensureExcludedDestinationsIsMutable(); - excludedDestinations_.addInt(value.getNumber()); + ensureAmenityFeatureIsMutable(); + amenityFeature_.addInt(value.getNumber()); onChanged(); return this; } @@ -33329,28 +62684,24 @@ public Builder addExcludedDestinations( * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * - * @param values The excludedDestinations to add. + * @param values The amenityFeature to add. * @return This builder for chaining. */ - public Builder addAllExcludedDestinations( - java.lang.Iterable values) { - ensureExcludedDestinationsIsMutable(); - for (com.google.shopping.type.Destination.DestinationEnum value : values) { - excludedDestinations_.addInt(value.getNumber()); + public Builder addAllAmenityFeature( + java.lang.Iterable< + ? extends com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature> + values) { + ensureAmenityFeatureIsMutable(); + for (com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature value : + values) { + amenityFeature_.addInt(value.getNumber()); } onChanged(); return this; @@ -33360,25 +62711,18 @@ public Builder addAllExcludedDestinations( * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * * @return This builder for chaining. */ - public Builder clearExcludedDestinations() { - excludedDestinations_ = emptyIntList(); - bitField2_ = (bitField2_ & ~0x00200000); + public Builder clearAmenityFeature() { + amenityFeature_ = emptyIntList(); + bitField4_ = (bitField4_ & ~0x00000008); onChanged(); return this; } @@ -33387,297 +62731,193 @@ public Builder clearExcludedDestinations() { * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * - * @return A list containing the enum numeric values on the wire for excludedDestinations. + * @return A list containing the enum numeric values on the wire for amenityFeature. */ - public java.util.List getExcludedDestinationsValueList() { - excludedDestinations_.makeImmutable(); - return excludedDestinations_; + public java.util.List getAmenityFeatureValueList() { + amenityFeature_.makeImmutable(); + return amenityFeature_; } /** * * *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
+     * The amenity features for the property.
      * 
* - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; * * * @param index The index of the value to return. - * @return The enum numeric value on the wire of excludedDestinations at the given index. - */ - public int getExcludedDestinationsValue(int index) { - return excludedDestinations_.getInt(index); - } - - /** - * - * - *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
-     * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @param index The index to set the value at. - * @param value The enum numeric value on the wire for excludedDestinations to set. - * @return This builder for chaining. - */ - public Builder setExcludedDestinationsValue(int index, int value) { - ensureExcludedDestinationsIsMutable(); - excludedDestinations_.setInt(index, value); - onChanged(); - return this; - } - - /** - * - * - *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
-     * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @param value The enum numeric value on the wire for excludedDestinations to add. - * @return This builder for chaining. - */ - public Builder addExcludedDestinationsValue(int value) { - ensureExcludedDestinationsIsMutable(); - excludedDestinations_.addInt(value); - onChanged(); - return this; - } - - /** - * - * - *
-     * The list of destinations to exclude for this target (corresponds to
-     * unchecked check boxes in Merchant Center).
-     *
-     * For more information, see
-     * [Excluded
-     * destination](https://support.google.com/merchants/answer/6324486).
-     *
-     * Note: We recommend setting destinations on datasources level for most use
-     * cases. Use this field within products to only setup exceptions.
-     * 
- * - * repeated .google.shopping.type.Destination.DestinationEnum excluded_destinations = 77; - * - * - * @param values The enum numeric values on the wire for excludedDestinations to add. - * @return This builder for chaining. - */ - public Builder addAllExcludedDestinationsValue(java.lang.Iterable values) { - ensureExcludedDestinationsIsMutable(); - for (int value : values) { - excludedDestinations_.addInt(value); - } - onChanged(); - return this; - } - - private com.google.protobuf.LazyStringArrayList shoppingAdsExcludedCountries_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensureShoppingAdsExcludedCountriesIsMutable() { - if (!shoppingAdsExcludedCountries_.isModifiable()) { - shoppingAdsExcludedCountries_ = - new com.google.protobuf.LazyStringArrayList(shoppingAdsExcludedCountries_); - } - bitField2_ |= 0x00400000; + * @return The enum numeric value on the wire of amenityFeature at the given index. + */ + public int getAmenityFeatureValue(int index) { + return amenityFeature_.getInt(index); } /** * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The amenity features for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * * - * @return A list containing the shoppingAdsExcludedCountries. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for amenityFeature to set. + * @return This builder for chaining. */ - public com.google.protobuf.ProtocolStringList getShoppingAdsExcludedCountriesList() { - shoppingAdsExcludedCountries_.makeImmutable(); - return shoppingAdsExcludedCountries_; + public Builder setAmenityFeatureValue(int index, int value) { + ensureAmenityFeatureIsMutable(); + amenityFeature_.setInt(index, value); + onChanged(); + return this; } /** * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The amenity features for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * * - * @return The count of shoppingAdsExcludedCountries. + * @param value The enum numeric value on the wire for amenityFeature to add. + * @return This builder for chaining. */ - public int getShoppingAdsExcludedCountriesCount() { - return shoppingAdsExcludedCountries_.size(); + public Builder addAmenityFeatureValue(int value) { + ensureAmenityFeatureIsMutable(); + amenityFeature_.addInt(value); + onChanged(); + return this; } /** * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The amenity features for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * * - * @param index The index of the element to return. - * @return The shoppingAdsExcludedCountries at the given index. + * @param values The enum numeric values on the wire for amenityFeature to add. + * @return This builder for chaining. */ - public java.lang.String getShoppingAdsExcludedCountries(int index) { - return shoppingAdsExcludedCountries_.get(index); + public Builder addAllAmenityFeatureValue(java.lang.Iterable values) { + ensureAmenityFeatureIsMutable(); + for (int value : values) { + amenityFeature_.addInt(value); + } + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList utilitiesIncluded_ = emptyIntList(); + + private void ensureUtilitiesIncludedIsMutable() { + if (!utilitiesIncluded_.isModifiable()) { + utilitiesIncluded_ = makeMutableCopy(utilitiesIncluded_); + } + bitField4_ |= 0x00000010; } /** * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The utilities included for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @param index The index of the value to return. - * @return The bytes of the shoppingAdsExcludedCountries at the given index. + * @return A list containing the utilitiesIncluded. */ - public com.google.protobuf.ByteString getShoppingAdsExcludedCountriesBytes(int index) { - return shoppingAdsExcludedCountries_.getByteString(index); + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded> + getUtilitiesIncludedList() { + return new com.google.protobuf.Internal.IntListAdapter< + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded>( + utilitiesIncluded_, utilitiesIncluded_converter_); } /** * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The utilities included for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @param index The index to set the value at. - * @param value The shoppingAdsExcludedCountries to set. - * @return This builder for chaining. + * @return The count of utilitiesIncluded. */ - public Builder setShoppingAdsExcludedCountries(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureShoppingAdsExcludedCountriesIsMutable(); - shoppingAdsExcludedCountries_.set(index, value); - bitField2_ |= 0x00400000; - onChanged(); - return this; + public int getUtilitiesIncludedCount() { + return utilitiesIncluded_.size(); } /** * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The utilities included for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @param value The shoppingAdsExcludedCountries to add. - * @return This builder for chaining. + * @param index The index of the element to return. + * @return The utilitiesIncluded at the given index. */ - public Builder addShoppingAdsExcludedCountries(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureShoppingAdsExcludedCountriesIsMutable(); - shoppingAdsExcludedCountries_.add(value); - bitField2_ |= 0x00400000; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded + getUtilitiesIncluded(int index) { + return utilitiesIncluded_converter_.convert(utilitiesIncluded_.getInt(index)); } /** * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The utilities included for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @param values The shoppingAdsExcludedCountries to add. + * @param index The index to set the value at. + * @param value The utilitiesIncluded to set. * @return This builder for chaining. */ - public Builder addAllShoppingAdsExcludedCountries(java.lang.Iterable values) { - ensureShoppingAdsExcludedCountriesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, shoppingAdsExcludedCountries_); - bitField2_ |= 0x00400000; + public Builder setUtilitiesIncluded( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUtilitiesIncludedIsMutable(); + utilitiesIncluded_.setInt(index, value.getNumber()); onChanged(); return this; } @@ -33686,20 +62926,23 @@ public Builder addAllShoppingAdsExcludedCountries(java.lang.Iterable - * List of country codes [(ISO 3166-1 - * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the - * offer from Shopping Ads destination. Countries from this list are removed - * from countries configured in data source settings. + * The utilities included for the property. * * - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * + * @param value The utilitiesIncluded to add. * @return This builder for chaining. */ - public Builder clearShoppingAdsExcludedCountries() { - shoppingAdsExcludedCountries_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField2_ = (bitField2_ & ~0x00400000); - ; + public Builder addUtilitiesIncluded( + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUtilitiesIncludedIsMutable(); + utilitiesIncluded_.addInt(value.getNumber()); onChanged(); return this; } @@ -33708,118 +62951,104 @@ public Builder clearShoppingAdsExcludedCountries() { * * *
-     * List of country codes [(ISO 3166-1
-     * alpha-2)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to exclude the
-     * offer from Shopping Ads destination. Countries from this list are removed
-     * from countries configured in data source settings.
+     * The utilities included for the property.
      * 
* - * repeated string shopping_ads_excluded_countries = 78; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @param value The bytes of the shoppingAdsExcludedCountries to add. + * @param values The utilitiesIncluded to add. * @return This builder for chaining. */ - public Builder addShoppingAdsExcludedCountriesBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder addAllUtilitiesIncluded( + java.lang.Iterable< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded> + values) { + ensureUtilitiesIncludedIsMutable(); + for (com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded value : + values) { + utilitiesIncluded_.addInt(value.getNumber()); } - checkByteStringIsUtf8(value); - ensureShoppingAdsExcludedCountriesIsMutable(); - shoppingAdsExcludedCountries_.add(value); - bitField2_ |= 0x00400000; onChanged(); return this; } - private java.lang.Object externalSellerId_ = ""; - /** * * *
-     * Required for multi-seller accounts. Use this attribute if you're a
-     * marketplace uploading products for various sellers to your multi-seller
-     * account.
+     * The utilities included for the property.
      * 
* - * optional string external_seller_id = 1; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @return Whether the externalSellerId field is set. + * @return This builder for chaining. */ - public boolean hasExternalSellerId() { - return ((bitField2_ & 0x00800000) != 0); + public Builder clearUtilitiesIncluded() { + utilitiesIncluded_ = emptyIntList(); + bitField4_ = (bitField4_ & ~0x00000010); + onChanged(); + return this; } /** * * *
-     * Required for multi-seller accounts. Use this attribute if you're a
-     * marketplace uploading products for various sellers to your multi-seller
-     * account.
+     * The utilities included for the property.
      * 
* - * optional string external_seller_id = 1; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @return The externalSellerId. + * @return A list containing the enum numeric values on the wire for utilitiesIncluded. */ - public java.lang.String getExternalSellerId() { - java.lang.Object ref = externalSellerId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - externalSellerId_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public java.util.List getUtilitiesIncludedValueList() { + utilitiesIncluded_.makeImmutable(); + return utilitiesIncluded_; } /** * * *
-     * Required for multi-seller accounts. Use this attribute if you're a
-     * marketplace uploading products for various sellers to your multi-seller
-     * account.
+     * The utilities included for the property.
      * 
* - * optional string external_seller_id = 1; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @return The bytes for externalSellerId. + * @param index The index of the value to return. + * @return The enum numeric value on the wire of utilitiesIncluded at the given index. */ - public com.google.protobuf.ByteString getExternalSellerIdBytes() { - java.lang.Object ref = externalSellerId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - externalSellerId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public int getUtilitiesIncludedValue(int index) { + return utilitiesIncluded_.getInt(index); } /** * * *
-     * Required for multi-seller accounts. Use this attribute if you're a
-     * marketplace uploading products for various sellers to your multi-seller
-     * account.
+     * The utilities included for the property.
      * 
* - * optional string external_seller_id = 1; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @param value The externalSellerId to set. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for utilitiesIncluded to set. * @return This builder for chaining. */ - public Builder setExternalSellerId(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - externalSellerId_ = value; - bitField2_ |= 0x00800000; + public Builder setUtilitiesIncludedValue(int index, int value) { + ensureUtilitiesIncludedIsMutable(); + utilitiesIncluded_.setInt(index, value); onChanged(); return this; } @@ -33828,18 +63057,19 @@ public Builder setExternalSellerId(java.lang.String value) { * * *
-     * Required for multi-seller accounts. Use this attribute if you're a
-     * marketplace uploading products for various sellers to your multi-seller
-     * account.
+     * The utilities included for the property.
      * 
* - * optional string external_seller_id = 1; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * + * @param value The enum numeric value on the wire for utilitiesIncluded to add. * @return This builder for chaining. */ - public Builder clearExternalSellerId() { - externalSellerId_ = getDefaultInstance().getExternalSellerId(); - bitField2_ = (bitField2_ & ~0x00800000); + public Builder addUtilitiesIncludedValue(int value) { + ensureUtilitiesIncludedIsMutable(); + utilitiesIncluded_.addInt(value); onChanged(); return this; } @@ -33848,79 +63078,92 @@ public Builder clearExternalSellerId() { * * *
-     * Required for multi-seller accounts. Use this attribute if you're a
-     * marketplace uploading products for various sellers to your multi-seller
-     * account.
+     * The utilities included for the property.
      * 
* - * optional string external_seller_id = 1; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * * - * @param value The bytes for externalSellerId to set. + * @param values The enum numeric values on the wire for utilitiesIncluded to add. * @return This builder for chaining. */ - public Builder setExternalSellerIdBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder addAllUtilitiesIncludedValue(java.lang.Iterable values) { + ensureUtilitiesIncludedIsMutable(); + for (int value : values) { + utilitiesIncluded_.addInt(value); } - checkByteStringIsUtf8(value); - externalSellerId_ = value; - bitField2_ |= 0x00800000; onChanged(); return this; } - private int pause_ = 0; + private com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy petPolicy_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicyOrBuilder> + petPolicyBuilder_; /** * * *
-     * Publication of this item will be temporarily
-     * [paused](https://support.google.com/merchants/answer/11909930).
+     * The pet policy for the property.
      * 
* - * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * * - * @return Whether the pause field is set. + * @return Whether the petPolicy field is set. */ - @java.lang.Override - public boolean hasPause() { - return ((bitField2_ & 0x01000000) != 0); + public boolean hasPetPolicy() { + return ((bitField4_ & 0x00000020) != 0); } /** * * *
-     * Publication of this item will be temporarily
-     * [paused](https://support.google.com/merchants/answer/11909930).
+     * The pet policy for the property.
      * 
* - * optional .google.shopping.merchant.products.v1.Pause pause = 13; + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * * - * @return The enum numeric value on the wire for pause. + * @return The petPolicy. */ - @java.lang.Override - public int getPauseValue() { - return pause_; + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy getPetPolicy() { + if (petPolicyBuilder_ == null) { + return petPolicy_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + .getDefaultInstance() + : petPolicy_; + } else { + return petPolicyBuilder_.getMessage(); + } } /** * * *
-     * Publication of this item will be temporarily
-     * [paused](https://support.google.com/merchants/answer/11909930).
+     * The pet policy for the property.
      * 
* - * optional .google.shopping.merchant.products.v1.Pause pause = 13; - * - * @param value The enum numeric value on the wire for pause to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * */ - public Builder setPauseValue(int value) { - pause_ = value; - bitField2_ |= 0x01000000; + public Builder setPetPolicy( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy value) { + if (petPolicyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + petPolicy_ = value; + } else { + petPolicyBuilder_.setMessage(value); + } + bitField4_ |= 0x00000020; onChanged(); return this; } @@ -33929,41 +63172,54 @@ public Builder setPauseValue(int value) { * * *
-     * Publication of this item will be temporarily
-     * [paused](https://support.google.com/merchants/answer/11909930).
+     * The pet policy for the property.
      * 
* - * optional .google.shopping.merchant.products.v1.Pause pause = 13; - * - * @return The pause. + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * */ - @java.lang.Override - public com.google.shopping.merchant.products.v1.Pause getPause() { - com.google.shopping.merchant.products.v1.Pause result = - com.google.shopping.merchant.products.v1.Pause.forNumber(pause_); - return result == null ? com.google.shopping.merchant.products.v1.Pause.UNRECOGNIZED : result; + public Builder setPetPolicy( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.Builder + builderForValue) { + if (petPolicyBuilder_ == null) { + petPolicy_ = builderForValue.build(); + } else { + petPolicyBuilder_.setMessage(builderForValue.build()); + } + bitField4_ |= 0x00000020; + onChanged(); + return this; } /** * * *
-     * Publication of this item will be temporarily
-     * [paused](https://support.google.com/merchants/answer/11909930).
+     * The pet policy for the property.
      * 
* - * optional .google.shopping.merchant.products.v1.Pause pause = 13; - * - * @param value The pause to set. - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * */ - public Builder setPause(com.google.shopping.merchant.products.v1.Pause value) { - if (value == null) { - throw new NullPointerException(); + public Builder mergePetPolicy( + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy value) { + if (petPolicyBuilder_ == null) { + if (((bitField4_ & 0x00000020) != 0) + && petPolicy_ != null + && petPolicy_ + != com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + .getDefaultInstance()) { + getPetPolicyBuilder().mergeFrom(value); + } else { + petPolicy_ = value; + } + } else { + petPolicyBuilder_.mergeFrom(value); + } + if (petPolicy_ != null) { + bitField4_ |= 0x00000020; + onChanged(); } - bitField2_ |= 0x01000000; - pause_ = value.getNumber(); - onChanged(); return this; } @@ -33971,155 +63227,126 @@ public Builder setPause(com.google.shopping.merchant.products.v1.Pause value) { * * *
-     * Publication of this item will be temporarily
-     * [paused](https://support.google.com/merchants/answer/11909930).
+     * The pet policy for the property.
      * 
* - * optional .google.shopping.merchant.products.v1.Pause pause = 13; - * - * @return This builder for chaining. + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * */ - public Builder clearPause() { - bitField2_ = (bitField2_ & ~0x01000000); - pause_ = 0; + public Builder clearPetPolicy() { + bitField4_ = (bitField4_ & ~0x00000020); + petPolicy_ = null; + if (petPolicyBuilder_ != null) { + petPolicyBuilder_.dispose(); + petPolicyBuilder_ = null; + } onChanged(); return this; } - private com.google.protobuf.LazyStringArrayList lifestyleImageLinks_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - - private void ensureLifestyleImageLinksIsMutable() { - if (!lifestyleImageLinks_.isModifiable()) { - lifestyleImageLinks_ = new com.google.protobuf.LazyStringArrayList(lifestyleImageLinks_); - } - bitField2_ |= 0x02000000; - } - /** * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The pet policy for the property.
      * 
* - * repeated string lifestyle_image_links = 14; - * - * @return A list containing the lifestyleImageLinks. + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * */ - public com.google.protobuf.ProtocolStringList getLifestyleImageLinksList() { - lifestyleImageLinks_.makeImmutable(); - return lifestyleImageLinks_; + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.Builder + getPetPolicyBuilder() { + bitField4_ |= 0x00000020; + onChanged(); + return internalGetPetPolicyFieldBuilder().getBuilder(); } /** * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The pet policy for the property.
      * 
* - * repeated string lifestyle_image_links = 14; - * - * @return The count of lifestyleImageLinks. + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * */ - public int getLifestyleImageLinksCount() { - return lifestyleImageLinks_.size(); + public com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicyOrBuilder + getPetPolicyOrBuilder() { + if (petPolicyBuilder_ != null) { + return petPolicyBuilder_.getMessageOrBuilder(); + } else { + return petPolicy_ == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy + .getDefaultInstance() + : petPolicy_; + } } /** * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The pet policy for the property.
      * 
* - * repeated string lifestyle_image_links = 14; - * - * @param index The index of the element to return. - * @return The lifestyleImageLinks at the given index. + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * */ - public java.lang.String getLifestyleImageLinks(int index) { - return lifestyleImageLinks_.get(index); + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicyOrBuilder> + internalGetPetPolicyFieldBuilder() { + if (petPolicyBuilder_ == null) { + petPolicyBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicyOrBuilder>( + getPetPolicy(), getParentForChildren(), isClean()); + petPolicy_ = null; + } + return petPolicyBuilder_; } - /** - * - * - *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
-     * 
- * - * repeated string lifestyle_image_links = 14; - * - * @param index The index of the value to return. - * @return The bytes of the lifestyleImageLinks at the given index. - */ - public com.google.protobuf.ByteString getLifestyleImageLinksBytes(int index) { - return lifestyleImageLinks_.getByteString(index); - } + private int specialtyHousingType_ = 0; /** * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The specialty housing type for the property.
      * 
* - * repeated string lifestyle_image_links = 14; + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * * - * @param index The index to set the value at. - * @param value The lifestyleImageLinks to set. - * @return This builder for chaining. + * @return The enum numeric value on the wire for specialtyHousingType. */ - public Builder setLifestyleImageLinks(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureLifestyleImageLinksIsMutable(); - lifestyleImageLinks_.set(index, value); - bitField2_ |= 0x02000000; - onChanged(); - return this; + @java.lang.Override + public int getSpecialtyHousingTypeValue() { + return specialtyHousingType_; } /** * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The specialty housing type for the property.
      * 
* - * repeated string lifestyle_image_links = 14; + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * * - * @param value The lifestyleImageLinks to add. + * @param value The enum numeric value on the wire for specialtyHousingType to set. * @return This builder for chaining. */ - public Builder addLifestyleImageLinks(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureLifestyleImageLinksIsMutable(); - lifestyleImageLinks_.add(value); - bitField2_ |= 0x02000000; + public Builder setSpecialtyHousingTypeValue(int value) { + specialtyHousingType_ = value; + bitField4_ |= 0x00000040; onChanged(); return this; } @@ -34128,43 +63355,48 @@ public Builder addLifestyleImageLinks(java.lang.String value) { * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The specialty housing type for the property.
      * 
* - * repeated string lifestyle_image_links = 14; + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * * - * @param values The lifestyleImageLinks to add. - * @return This builder for chaining. + * @return The specialtyHousingType. */ - public Builder addAllLifestyleImageLinks(java.lang.Iterable values) { - ensureLifestyleImageLinksIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, lifestyleImageLinks_); - bitField2_ |= 0x02000000; - onChanged(); - return this; + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType + getSpecialtyHousingType() { + com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType result = + com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType.forNumber( + specialtyHousingType_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType + .UNRECOGNIZED + : result; } /** * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The specialty housing type for the property.
      * 
* - * repeated string lifestyle_image_links = 14; + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * * + * @param value The specialtyHousingType to set. * @return This builder for chaining. */ - public Builder clearLifestyleImageLinks() { - lifestyleImageLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField2_ = (bitField2_ & ~0x02000000); - ; + public Builder setSpecialtyHousingType( + com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField4_ |= 0x00000040; + specialtyHousingType_ = value.getNumber(); onChanged(); return this; } @@ -34173,65 +63405,57 @@ public Builder clearLifestyleImageLinks() { * * *
-     * Additional URLs of lifestyle images of the item, used to explicitly
-     * identify images that showcase your item in a real-world context. See the
-     * [Help Center article](https://support.google.com/merchants/answer/9103186)
-     * for more information.
+     * The specialty housing type for the property.
      * 
* - * repeated string lifestyle_image_links = 14; + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * * - * @param value The bytes of the lifestyleImageLinks to add. * @return This builder for chaining. */ - public Builder addLifestyleImageLinksBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureLifestyleImageLinksIsMutable(); - lifestyleImageLinks_.add(value); - bitField2_ |= 0x02000000; + public Builder clearSpecialtyHousingType() { + bitField4_ = (bitField4_ & ~0x00000040); + specialtyHousingType_ = 0; onChanged(); return this; } - private java.util.List - cloudExportAdditionalProperties_ = java.util.Collections.emptyList(); + private java.util.List + productFee_ = java.util.Collections.emptyList(); - private void ensureCloudExportAdditionalPropertiesIsMutable() { - if (!((bitField2_ & 0x04000000) != 0)) { - cloudExportAdditionalProperties_ = + private void ensureProductFeeIsMutable() { + if (!((bitField4_ & 0x00000080) != 0)) { + productFee_ = new java.util.ArrayList< - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties>( - cloudExportAdditionalProperties_); - bitField2_ |= 0x04000000; + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee>(productFee_); + bitField4_ |= 0x00000080; } } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties, - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder, - com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> - cloudExportAdditionalPropertiesBuilder_; + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder> + productFeeBuilder_; /** * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public java.util.List - getCloudExportAdditionalPropertiesList() { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - return java.util.Collections.unmodifiableList(cloudExportAdditionalProperties_); + public java.util.List + getProductFeeList() { + if (productFeeBuilder_ == null) { + return java.util.Collections.unmodifiableList(productFee_); } else { - return cloudExportAdditionalPropertiesBuilder_.getMessageList(); + return productFeeBuilder_.getMessageList(); } } @@ -34239,18 +63463,18 @@ private void ensureCloudExportAdditionalPropertiesIsMutable() { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public int getCloudExportAdditionalPropertiesCount() { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - return cloudExportAdditionalProperties_.size(); + public int getProductFeeCount() { + if (productFeeBuilder_ == null) { + return productFee_.size(); } else { - return cloudExportAdditionalPropertiesBuilder_.getCount(); + return productFeeBuilder_.getCount(); } } @@ -34258,19 +63482,19 @@ public int getCloudExportAdditionalPropertiesCount() { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties - getCloudExportAdditionalProperties(int index) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - return cloudExportAdditionalProperties_.get(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee getProductFee( + int index) { + if (productFeeBuilder_ == null) { + return productFee_.get(index); } else { - return cloudExportAdditionalPropertiesBuilder_.getMessage(index); + return productFeeBuilder_.getMessage(index); } } @@ -34278,24 +63502,24 @@ public int getCloudExportAdditionalPropertiesCount() { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder setCloudExportAdditionalProperties( - int index, com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties value) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { + public Builder setProductFee( + int index, com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee value) { + if (productFeeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.set(index, value); + ensureProductFeeIsMutable(); + productFee_.set(index, value); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.setMessage(index, value); + productFeeBuilder_.setMessage(index, value); } return this; } @@ -34304,23 +63528,23 @@ public Builder setCloudExportAdditionalProperties( * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder setCloudExportAdditionalProperties( - int index, - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder - builderForValue) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.set(index, builderForValue.build()); + public Builder setProductFee( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder + builderForValue) { + if (productFeeBuilder_ == null) { + ensureProductFeeIsMutable(); + productFee_.set(index, builderForValue.build()); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.setMessage(index, builderForValue.build()); + productFeeBuilder_.setMessage(index, builderForValue.build()); } return this; } @@ -34329,24 +63553,24 @@ public Builder setCloudExportAdditionalProperties( * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder addCloudExportAdditionalProperties( - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties value) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { + public Builder addProductFee( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee value) { + if (productFeeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.add(value); + ensureProductFeeIsMutable(); + productFee_.add(value); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.addMessage(value); + productFeeBuilder_.addMessage(value); } return this; } @@ -34355,24 +63579,24 @@ public Builder addCloudExportAdditionalProperties( * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder addCloudExportAdditionalProperties( - int index, com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties value) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { + public Builder addProductFee( + int index, com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee value) { + if (productFeeBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.add(index, value); + ensureProductFeeIsMutable(); + productFee_.add(index, value); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.addMessage(index, value); + productFeeBuilder_.addMessage(index, value); } return this; } @@ -34381,22 +63605,22 @@ public Builder addCloudExportAdditionalProperties( * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder addCloudExportAdditionalProperties( - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder + public Builder addProductFee( + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder builderForValue) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.add(builderForValue.build()); + if (productFeeBuilder_ == null) { + ensureProductFeeIsMutable(); + productFee_.add(builderForValue.build()); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.addMessage(builderForValue.build()); + productFeeBuilder_.addMessage(builderForValue.build()); } return this; } @@ -34405,23 +63629,23 @@ public Builder addCloudExportAdditionalProperties( * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder addCloudExportAdditionalProperties( + public Builder addProductFee( int index, - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder builderForValue) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.add(index, builderForValue.build()); + if (productFeeBuilder_ == null) { + ensureProductFeeIsMutable(); + productFee_.add(index, builderForValue.build()); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.addMessage(index, builderForValue.build()); + productFeeBuilder_.addMessage(index, builderForValue.build()); } return this; } @@ -34430,24 +63654,23 @@ public Builder addCloudExportAdditionalProperties( * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder addAllCloudExportAdditionalProperties( + public Builder addAllProductFee( java.lang.Iterable< - ? extends com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties> + ? extends com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee> values) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - ensureCloudExportAdditionalPropertiesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, cloudExportAdditionalProperties_); + if (productFeeBuilder_ == null) { + ensureProductFeeIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, productFee_); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.addAllMessages(values); + productFeeBuilder_.addAllMessages(values); } return this; } @@ -34456,20 +63679,20 @@ public Builder addAllCloudExportAdditionalProperties( * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder clearCloudExportAdditionalProperties() { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - cloudExportAdditionalProperties_ = java.util.Collections.emptyList(); - bitField2_ = (bitField2_ & ~0x04000000); + public Builder clearProductFee() { + if (productFeeBuilder_ == null) { + productFee_ = java.util.Collections.emptyList(); + bitField4_ = (bitField4_ & ~0x00000080); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.clear(); + productFeeBuilder_.clear(); } return this; } @@ -34478,20 +63701,20 @@ public Builder clearCloudExportAdditionalProperties() { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public Builder removeCloudExportAdditionalProperties(int index) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - ensureCloudExportAdditionalPropertiesIsMutable(); - cloudExportAdditionalProperties_.remove(index); + public Builder removeProductFee(int index) { + if (productFeeBuilder_ == null) { + ensureProductFeeIsMutable(); + productFee_.remove(index); onChanged(); } else { - cloudExportAdditionalPropertiesBuilder_.remove(index); + productFeeBuilder_.remove(index); } return this; } @@ -34500,35 +63723,35 @@ public Builder removeCloudExportAdditionalProperties(int index) { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder - getCloudExportAdditionalPropertiesBuilder(int index) { - return internalGetCloudExportAdditionalPropertiesFieldBuilder().getBuilder(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder + getProductFeeBuilder(int index) { + return internalGetProductFeeFieldBuilder().getBuilder(index); } /** * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder - getCloudExportAdditionalPropertiesOrBuilder(int index) { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - return cloudExportAdditionalProperties_.get(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder + getProductFeeOrBuilder(int index) { + if (productFeeBuilder_ == null) { + return productFee_.get(index); } else { - return cloudExportAdditionalPropertiesBuilder_.getMessageOrBuilder(index); + return productFeeBuilder_.getMessageOrBuilder(index); } } @@ -34536,21 +63759,21 @@ public Builder removeCloudExportAdditionalProperties(int index) { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ public java.util.List< ? extends - com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> - getCloudExportAdditionalPropertiesOrBuilderList() { - if (cloudExportAdditionalPropertiesBuilder_ != null) { - return cloudExportAdditionalPropertiesBuilder_.getMessageOrBuilderList(); + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder> + getProductFeeOrBuilderList() { + if (productFeeBuilder_ != null) { + return productFeeBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(cloudExportAdditionalProperties_); + return java.util.Collections.unmodifiableList(productFee_); } } @@ -34558,18 +63781,18 @@ public Builder removeCloudExportAdditionalProperties(int index) { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder - addCloudExportAdditionalPropertiesBuilder() { - return internalGetCloudExportAdditionalPropertiesFieldBuilder() + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder + addProductFeeBuilder() { + return internalGetProductFeeFieldBuilder() .addBuilder( - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee .getDefaultInstance()); } @@ -34577,19 +63800,19 @@ public Builder removeCloudExportAdditionalProperties(int index) { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ - public com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder - addCloudExportAdditionalPropertiesBuilder(int index) { - return internalGetCloudExportAdditionalPropertiesFieldBuilder() + public com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder + addProductFeeBuilder(int index) { + return internalGetProductFeeFieldBuilder() .addBuilder( index, - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee .getDefaultInstance()); } @@ -34597,77 +63820,70 @@ public Builder removeCloudExportAdditionalProperties(int index) { * * *
-     * Extra fields to export to the Cloud Retail program.
+     * The product fee for the property.
      * 
* * - * repeated .google.shopping.merchant.products.v1.CloudExportAdditionalProperties cloud_export_additional_properties = 84; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; * */ public java.util.List< - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder> - getCloudExportAdditionalPropertiesBuilderList() { - return internalGetCloudExportAdditionalPropertiesFieldBuilder().getBuilderList(); + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder> + getProductFeeBuilderList() { + return internalGetProductFeeFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties, - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder, - com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder> - internalGetCloudExportAdditionalPropertiesFieldBuilder() { - if (cloudExportAdditionalPropertiesBuilder_ == null) { - cloudExportAdditionalPropertiesBuilder_ = + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder> + internalGetProductFeeFieldBuilder() { + if (productFeeBuilder_ == null) { + productFeeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties, - com.google.shopping.merchant.products.v1.CloudExportAdditionalProperties.Builder, - com.google.shopping.merchant.products.v1.CloudExportAdditionalPropertiesOrBuilder>( - cloudExportAdditionalProperties_, - ((bitField2_ & 0x04000000) != 0), - getParentForChildren(), - isClean()); - cloudExportAdditionalProperties_ = null; + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder>( + productFee_, ((bitField4_ & 0x00000080) != 0), getParentForChildren(), isClean()); + productFee_ = null; } - return cloudExportAdditionalPropertiesBuilder_; + return productFeeBuilder_; } - private java.lang.Object virtualModelLink_ = ""; + private java.lang.Object shortTitle_ = ""; /** * * *
-     * URL of the 3D image of the item. See the
-     * [Help Center article](https://support.google.com/merchants/answer/13674896)
-     * for more information.
+     * The short title of the item.
      * 
* - * optional string virtual_model_link = 130; + * optional string short_title = 194; * - * @return Whether the virtualModelLink field is set. + * @return Whether the shortTitle field is set. */ - public boolean hasVirtualModelLink() { - return ((bitField2_ & 0x08000000) != 0); + public boolean hasShortTitle() { + return ((bitField4_ & 0x00000100) != 0); } /** * * *
-     * URL of the 3D image of the item. See the
-     * [Help Center article](https://support.google.com/merchants/answer/13674896)
-     * for more information.
+     * The short title of the item.
      * 
* - * optional string virtual_model_link = 130; + * optional string short_title = 194; * - * @return The virtualModelLink. + * @return The shortTitle. */ - public java.lang.String getVirtualModelLink() { - java.lang.Object ref = virtualModelLink_; + public java.lang.String getShortTitle() { + java.lang.Object ref = shortTitle_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - virtualModelLink_ = s; + shortTitle_ = s; return s; } else { return (java.lang.String) ref; @@ -34678,21 +63894,19 @@ public java.lang.String getVirtualModelLink() { * * *
-     * URL of the 3D image of the item. See the
-     * [Help Center article](https://support.google.com/merchants/answer/13674896)
-     * for more information.
+     * The short title of the item.
      * 
* - * optional string virtual_model_link = 130; + * optional string short_title = 194; * - * @return The bytes for virtualModelLink. + * @return The bytes for shortTitle. */ - public com.google.protobuf.ByteString getVirtualModelLinkBytes() { - java.lang.Object ref = virtualModelLink_; + public com.google.protobuf.ByteString getShortTitleBytes() { + java.lang.Object ref = shortTitle_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - virtualModelLink_ = b; + shortTitle_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -34703,22 +63917,20 @@ public com.google.protobuf.ByteString getVirtualModelLinkBytes() { * * *
-     * URL of the 3D image of the item. See the
-     * [Help Center article](https://support.google.com/merchants/answer/13674896)
-     * for more information.
+     * The short title of the item.
      * 
* - * optional string virtual_model_link = 130; + * optional string short_title = 194; * - * @param value The virtualModelLink to set. + * @param value The shortTitle to set. * @return This builder for chaining. */ - public Builder setVirtualModelLink(java.lang.String value) { + public Builder setShortTitle(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - virtualModelLink_ = value; - bitField2_ |= 0x08000000; + shortTitle_ = value; + bitField4_ |= 0x00000100; onChanged(); return this; } @@ -34727,18 +63939,16 @@ public Builder setVirtualModelLink(java.lang.String value) { * * *
-     * URL of the 3D image of the item. See the
-     * [Help Center article](https://support.google.com/merchants/answer/13674896)
-     * for more information.
+     * The short title of the item.
      * 
* - * optional string virtual_model_link = 130; + * optional string short_title = 194; * * @return This builder for chaining. */ - public Builder clearVirtualModelLink() { - virtualModelLink_ = getDefaultInstance().getVirtualModelLink(); - bitField2_ = (bitField2_ & ~0x08000000); + public Builder clearShortTitle() { + shortTitle_ = getDefaultInstance().getShortTitle(); + bitField4_ = (bitField4_ & ~0x00000100); onChanged(); return this; } @@ -34747,435 +63957,114 @@ public Builder clearVirtualModelLink() { * * *
-     * URL of the 3D image of the item. See the
-     * [Help Center article](https://support.google.com/merchants/answer/13674896)
-     * for more information.
+     * The short title of the item.
      * 
* - * optional string virtual_model_link = 130; + * optional string short_title = 194; * - * @param value The bytes for virtualModelLink to set. + * @param value The bytes for shortTitle to set. * @return This builder for chaining. */ - public Builder setVirtualModelLinkBytes(com.google.protobuf.ByteString value) { + public Builder setShortTitleBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - virtualModelLink_ = value; - bitField2_ |= 0x08000000; + shortTitle_ = value; + bitField4_ |= 0x00000100; onChanged(); return this; } - private java.util.List - certifications_ = java.util.Collections.emptyList(); + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer> + questionsAndAnswers_ = java.util.Collections.emptyList(); - private void ensureCertificationsIsMutable() { - if (!((bitField2_ & 0x10000000) != 0)) { - certifications_ = - new java.util.ArrayList( - certifications_); - bitField2_ |= 0x10000000; + private void ensureQuestionsAndAnswersIsMutable() { + if (!((bitField4_ & 0x00000200) != 0)) { + questionsAndAnswers_ = + new java.util.ArrayList< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer>( + questionsAndAnswers_); + bitField4_ |= 0x00000200; } } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductCertification, - com.google.shopping.merchant.products.v1.ProductCertification.Builder, - com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> - certificationsBuilder_; - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public java.util.List - getCertificationsList() { - if (certificationsBuilder_ == null) { - return java.util.Collections.unmodifiableList(certifications_); - } else { - return certificationsBuilder_.getMessageList(); - } - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public int getCertificationsCount() { - if (certificationsBuilder_ == null) { - return certifications_.size(); - } else { - return certificationsBuilder_.getCount(); - } - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public com.google.shopping.merchant.products.v1.ProductCertification getCertifications( - int index) { - if (certificationsBuilder_ == null) { - return certifications_.get(index); - } else { - return certificationsBuilder_.getMessage(index); - } - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder setCertifications( - int index, com.google.shopping.merchant.products.v1.ProductCertification value) { - if (certificationsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCertificationsIsMutable(); - certifications_.set(index, value); - onChanged(); - } else { - certificationsBuilder_.setMessage(index, value); - } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder setCertifications( - int index, - com.google.shopping.merchant.products.v1.ProductCertification.Builder builderForValue) { - if (certificationsBuilder_ == null) { - ensureCertificationsIsMutable(); - certifications_.set(index, builderForValue.build()); - onChanged(); - } else { - certificationsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder addCertifications( - com.google.shopping.merchant.products.v1.ProductCertification value) { - if (certificationsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCertificationsIsMutable(); - certifications_.add(value); - onChanged(); - } else { - certificationsBuilder_.addMessage(value); - } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder addCertifications( - int index, com.google.shopping.merchant.products.v1.ProductCertification value) { - if (certificationsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCertificationsIsMutable(); - certifications_.add(index, value); - onChanged(); - } else { - certificationsBuilder_.addMessage(index, value); - } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder addCertifications( - com.google.shopping.merchant.products.v1.ProductCertification.Builder builderForValue) { - if (certificationsBuilder_ == null) { - ensureCertificationsIsMutable(); - certifications_.add(builderForValue.build()); - onChanged(); - } else { - certificationsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder addCertifications( - int index, - com.google.shopping.merchant.products.v1.ProductCertification.Builder builderForValue) { - if (certificationsBuilder_ == null) { - ensureCertificationsIsMutable(); - certifications_.add(index, builderForValue.build()); - onChanged(); - } else { - certificationsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder addAllCertifications( - java.lang.Iterable - values) { - if (certificationsBuilder_ == null) { - ensureCertificationsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, certifications_); - onChanged(); - } else { - certificationsBuilder_.addAllMessages(values); - } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public Builder clearCertifications() { - if (certificationsBuilder_ == null) { - certifications_ = java.util.Collections.emptyList(); - bitField2_ = (bitField2_ & ~0x10000000); - onChanged(); - } else { - certificationsBuilder_.clear(); - } - return this; - } + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder> + questionsAndAnswersBuilder_; /** * * *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder removeCertifications(int index) { - if (certificationsBuilder_ == null) { - ensureCertificationsIsMutable(); - certifications_.remove(index); - onChanged(); + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer> + getQuestionsAndAnswersList() { + if (questionsAndAnswersBuilder_ == null) { + return java.util.Collections.unmodifiableList(questionsAndAnswers_); } else { - certificationsBuilder_.remove(index); + return questionsAndAnswersBuilder_.getMessageList(); } - return this; - } - - /** - * - * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
-     * 
- * - * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; - * - */ - public com.google.shopping.merchant.products.v1.ProductCertification.Builder - getCertificationsBuilder(int index) { - return internalGetCertificationsFieldBuilder().getBuilder(index); } /** * * *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder - getCertificationsOrBuilder(int index) { - if (certificationsBuilder_ == null) { - return certifications_.get(index); + public int getQuestionsAndAnswersCount() { + if (questionsAndAnswersBuilder_ == null) { + return questionsAndAnswers_.size(); } else { - return certificationsBuilder_.getMessageOrBuilder(index); + return questionsAndAnswersBuilder_.getCount(); } } /** * * - *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
+     * 
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public java.util.List< - ? extends com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> - getCertificationsOrBuilderList() { - if (certificationsBuilder_ != null) { - return certificationsBuilder_.getMessageOrBuilderList(); + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + getQuestionsAndAnswers(int index) { + if (questionsAndAnswersBuilder_ == null) { + return questionsAndAnswers_.get(index); } else { - return java.util.Collections.unmodifiableList(certifications_); + return questionsAndAnswersBuilder_.getMessage(index); } } @@ -35183,154 +64072,177 @@ public Builder removeCertifications(int index) { * * *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductCertification.Builder - addCertificationsBuilder() { - return internalGetCertificationsFieldBuilder() - .addBuilder( - com.google.shopping.merchant.products.v1.ProductCertification.getDefaultInstance()); + public Builder setQuestionsAndAnswers( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer value) { + if (questionsAndAnswersBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.set(index, value); + onChanged(); + } else { + questionsAndAnswersBuilder_.setMessage(index, value); + } + return this; } /** * * *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductCertification.Builder - addCertificationsBuilder(int index) { - return internalGetCertificationsFieldBuilder() - .addBuilder( - index, - com.google.shopping.merchant.products.v1.ProductCertification.getDefaultInstance()); + public Builder setQuestionsAndAnswers( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + builderForValue) { + if (questionsAndAnswersBuilder_ == null) { + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.set(index, builderForValue.build()); + onChanged(); + } else { + questionsAndAnswersBuilder_.setMessage(index, builderForValue.build()); + } + return this; } /** * * *
-     * Product Certifications, for example for energy efficiency labeling of
-     * products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home)
-     * database. See the [Help
-     * Center](https://support.google.com/merchants/answer/13528839)
-     * article for more information.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductCertification certifications = 123; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public java.util.List - getCertificationsBuilderList() { - return internalGetCertificationsFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductCertification, - com.google.shopping.merchant.products.v1.ProductCertification.Builder, - com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder> - internalGetCertificationsFieldBuilder() { - if (certificationsBuilder_ == null) { - certificationsBuilder_ = - new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductCertification, - com.google.shopping.merchant.products.v1.ProductCertification.Builder, - com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder>( - certifications_, - ((bitField2_ & 0x10000000) != 0), - getParentForChildren(), - isClean()); - certifications_ = null; + public Builder addQuestionsAndAnswers( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer value) { + if (questionsAndAnswersBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.add(value); + onChanged(); + } else { + questionsAndAnswersBuilder_.addMessage(value); } - return certificationsBuilder_; + return this; } - private com.google.shopping.merchant.products.v1.StructuredTitle structuredTitle_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.StructuredTitle, - com.google.shopping.merchant.products.v1.StructuredTitle.Builder, - com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder> - structuredTitleBuilder_; - /** * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return Whether the structuredTitle field is set. */ - public boolean hasStructuredTitle() { - return ((bitField2_ & 0x20000000) != 0); + public Builder addQuestionsAndAnswers( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer value) { + if (questionsAndAnswersBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.add(index, value); + onChanged(); + } else { + questionsAndAnswersBuilder_.addMessage(index, value); + } + return this; } /** * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return The structuredTitle. */ - public com.google.shopping.merchant.products.v1.StructuredTitle getStructuredTitle() { - if (structuredTitleBuilder_ == null) { - return structuredTitle_ == null - ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() - : structuredTitle_; + public Builder addQuestionsAndAnswers( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + builderForValue) { + if (questionsAndAnswersBuilder_ == null) { + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.add(builderForValue.build()); + onChanged(); } else { - return structuredTitleBuilder_.getMessage(); + questionsAndAnswersBuilder_.addMessage(builderForValue.build()); } + return this; } /** * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder setStructuredTitle( - com.google.shopping.merchant.products.v1.StructuredTitle value) { - if (structuredTitleBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - structuredTitle_ = value; + public Builder addQuestionsAndAnswers( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + builderForValue) { + if (questionsAndAnswersBuilder_ == null) { + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.add(index, builderForValue.build()); + onChanged(); } else { - structuredTitleBuilder_.setMessage(value); + questionsAndAnswersBuilder_.addMessage(index, builderForValue.build()); } - bitField2_ |= 0x20000000; - onChanged(); return this; } @@ -35338,21 +64250,29 @@ public Builder setStructuredTitle( * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder setStructuredTitle( - com.google.shopping.merchant.products.v1.StructuredTitle.Builder builderForValue) { - if (structuredTitleBuilder_ == null) { - structuredTitle_ = builderForValue.build(); + public Builder addAllQuestionsAndAnswers( + java.lang.Iterable< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer> + values) { + if (questionsAndAnswersBuilder_ == null) { + ensureQuestionsAndAnswersIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, questionsAndAnswers_); + onChanged(); } else { - structuredTitleBuilder_.setMessage(builderForValue.build()); + questionsAndAnswersBuilder_.addAllMessages(values); } - bitField2_ |= 0x20000000; - onChanged(); return this; } @@ -35360,29 +64280,24 @@ public Builder setStructuredTitle( * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder mergeStructuredTitle( - com.google.shopping.merchant.products.v1.StructuredTitle value) { - if (structuredTitleBuilder_ == null) { - if (((bitField2_ & 0x20000000) != 0) - && structuredTitle_ != null - && structuredTitle_ - != com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance()) { - getStructuredTitleBuilder().mergeFrom(value); - } else { - structuredTitle_ = value; - } - } else { - structuredTitleBuilder_.mergeFrom(value); - } - if (structuredTitle_ != null) { - bitField2_ |= 0x20000000; + public Builder clearQuestionsAndAnswers() { + if (questionsAndAnswersBuilder_ == null) { + questionsAndAnswers_ = java.util.Collections.emptyList(); + bitField4_ = (bitField4_ & ~0x00000200); onChanged(); + } else { + questionsAndAnswersBuilder_.clear(); } return this; } @@ -35391,20 +64306,25 @@ public Builder mergeStructuredTitle( * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder clearStructuredTitle() { - bitField2_ = (bitField2_ & ~0x20000000); - structuredTitle_ = null; - if (structuredTitleBuilder_ != null) { - structuredTitleBuilder_.dispose(); - structuredTitleBuilder_ = null; + public Builder removeQuestionsAndAnswers(int index) { + if (questionsAndAnswersBuilder_ == null) { + ensureQuestionsAndAnswersIsMutable(); + questionsAndAnswers_.remove(index); + onChanged(); + } else { + questionsAndAnswersBuilder_.remove(index); } - onChanged(); return this; } @@ -35412,37 +64332,43 @@ public Builder clearStructuredTitle() { * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.StructuredTitle.Builder - getStructuredTitleBuilder() { - bitField2_ |= 0x20000000; - onChanged(); - return internalGetStructuredTitleFieldBuilder().getBuilder(); + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + getQuestionsAndAnswersBuilder(int index) { + return internalGetQuestionsAndAnswersFieldBuilder().getBuilder(index); } /** * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder - getStructuredTitleOrBuilder() { - if (structuredTitleBuilder_ != null) { - return structuredTitleBuilder_.getMessageOrBuilder(); + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder + getQuestionsAndAnswersOrBuilder(int index) { + if (questionsAndAnswersBuilder_ == null) { + return questionsAndAnswers_.get(index); } else { - return structuredTitle_ == null - ? com.google.shopping.merchant.products.v1.StructuredTitle.getDefaultInstance() - : structuredTitle_; + return questionsAndAnswersBuilder_.getMessageOrBuilder(index); } } @@ -35450,99 +64376,159 @@ public Builder clearStructuredTitle() { * * *
-     * Structured title, for algorithmically (AI)-generated titles.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* - * optional .google.shopping.merchant.products.v1.StructuredTitle structured_title = 132; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.StructuredTitle, - com.google.shopping.merchant.products.v1.StructuredTitle.Builder, - com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder> - internalGetStructuredTitleFieldBuilder() { - if (structuredTitleBuilder_ == null) { - structuredTitleBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.StructuredTitle, - com.google.shopping.merchant.products.v1.StructuredTitle.Builder, - com.google.shopping.merchant.products.v1.StructuredTitleOrBuilder>( - getStructuredTitle(), getParentForChildren(), isClean()); - structuredTitle_ = null; + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes + .QuestionAndAnswerOrBuilder> + getQuestionsAndAnswersOrBuilderList() { + if (questionsAndAnswersBuilder_ != null) { + return questionsAndAnswersBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(questionsAndAnswers_); } - return structuredTitleBuilder_; } - private com.google.shopping.merchant.products.v1.StructuredDescription structuredDescription_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.StructuredDescription, - com.google.shopping.merchant.products.v1.StructuredDescription.Builder, - com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder> - structuredDescriptionBuilder_; - /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return Whether the structuredDescription field is set. */ - public boolean hasStructuredDescription() { - return ((bitField2_ & 0x40000000) != 0); + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + addQuestionsAndAnswersBuilder() { + return internalGetQuestionsAndAnswersFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + .getDefaultInstance()); } /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * - * - * @return The structuredDescription. */ - public com.google.shopping.merchant.products.v1.StructuredDescription - getStructuredDescription() { - if (structuredDescriptionBuilder_ == null) { - return structuredDescription_ == null - ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() - : structuredDescription_; - } else { - return structuredDescriptionBuilder_.getMessage(); - } + public com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder + addQuestionsAndAnswersBuilder(int index) { + return internalGetQuestionsAndAnswersFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + .getDefaultInstance()); } /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+     * and answers](https://support.google.com/merchants/answer/17085211) about
+     * the product. Max 30 question and answer pairs. Max 10000 characters total.
+     * Each question can have max 1000 characters. Each answer can have max 1000
+     * characters.
      * 
* * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder setStructuredDescription( - com.google.shopping.merchant.products.v1.StructuredDescription value) { - if (structuredDescriptionBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - structuredDescription_ = value; - } else { - structuredDescriptionBuilder_.setMessage(value); + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder> + getQuestionsAndAnswersBuilderList() { + return internalGetQuestionsAndAnswersFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder> + internalGetQuestionsAndAnswersFieldBuilder() { + if (questionsAndAnswersBuilder_ == null) { + questionsAndAnswersBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer, + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + .Builder, + com.google.shopping.merchant.products.v1.ProductAttributes + .QuestionAndAnswerOrBuilder>( + questionsAndAnswers_, + ((bitField4_ & 0x00000200) != 0), + getParentForChildren(), + isClean()); + questionsAndAnswers_ = null; } - bitField2_ |= 0x40000000; + return questionsAndAnswersBuilder_; + } + + private float popularityRank_; + + /** + * + * + *
+     * Optional. Indicates the
+     * [popularity](https://support.google.com/merchants/answer/17085297) of the
+     * product in a merchant's inventory. Using a scale of 0.0 (lowest) to 100.0
+     * (highest).
+     * 
+ * + * float popularity_rank = 174 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The popularityRank. + */ + @java.lang.Override + public float getPopularityRank() { + return popularityRank_; + } + + /** + * + * + *
+     * Optional. Indicates the
+     * [popularity](https://support.google.com/merchants/answer/17085297) of the
+     * product in a merchant's inventory. Using a scale of 0.0 (lowest) to 100.0
+     * (highest).
+     * 
+ * + * float popularity_rank = 174 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The popularityRank to set. + * @return This builder for chaining. + */ + public Builder setPopularityRank(float value) { + + popularityRank_ = value; + bitField4_ |= 0x00000400; onChanged(); return this; } @@ -35551,284 +64537,273 @@ public Builder setStructuredDescription( * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Indicates the
+     * [popularity](https://support.google.com/merchants/answer/17085297) of the
+     * product in a merchant's inventory. Using a scale of 0.0 (lowest) to 100.0
+     * (highest).
      * 
* - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * + * float popularity_rank = 174 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. */ - public Builder setStructuredDescription( - com.google.shopping.merchant.products.v1.StructuredDescription.Builder builderForValue) { - if (structuredDescriptionBuilder_ == null) { - structuredDescription_ = builderForValue.build(); - } else { - structuredDescriptionBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x40000000; + public Builder clearPopularityRank() { + bitField4_ = (bitField4_ & ~0x00000400); + popularityRank_ = 0F; onChanged(); return this; } + private java.lang.Object itemGroupTitle_ = ""; + /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Represents the [title of the product
+     * group](https://support.google.com/merchants/answer/17085146) to which
+     * this variant product belongs. This can be used along with the [item group
+     * id](https://support.google.com/merchants/answer/6324507) attribute.
+     * It lets you perform better grouping of variant products, and helps
+     * identifying common product characteristics more efficiently.
      * 
* - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The itemGroupTitle. */ - public Builder mergeStructuredDescription( - com.google.shopping.merchant.products.v1.StructuredDescription value) { - if (structuredDescriptionBuilder_ == null) { - if (((bitField2_ & 0x40000000) != 0) - && structuredDescription_ != null - && structuredDescription_ - != com.google.shopping.merchant.products.v1.StructuredDescription - .getDefaultInstance()) { - getStructuredDescriptionBuilder().mergeFrom(value); - } else { - structuredDescription_ = value; - } + public java.lang.String getItemGroupTitle() { + java.lang.Object ref = itemGroupTitle_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + itemGroupTitle_ = s; + return s; } else { - structuredDescriptionBuilder_.mergeFrom(value); - } - if (structuredDescription_ != null) { - bitField2_ |= 0x40000000; - onChanged(); + return (java.lang.String) ref; } - return this; } /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Represents the [title of the product
+     * group](https://support.google.com/merchants/answer/17085146) to which
+     * this variant product belongs. This can be used along with the [item group
+     * id](https://support.google.com/merchants/answer/6324507) attribute.
+     * It lets you perform better grouping of variant products, and helps
+     * identifying common product characteristics more efficiently.
      * 
* - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for itemGroupTitle. */ - public Builder clearStructuredDescription() { - bitField2_ = (bitField2_ & ~0x40000000); - structuredDescription_ = null; - if (structuredDescriptionBuilder_ != null) { - structuredDescriptionBuilder_.dispose(); - structuredDescriptionBuilder_ = null; + public com.google.protobuf.ByteString getItemGroupTitleBytes() { + java.lang.Object ref = itemGroupTitle_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + itemGroupTitle_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - onChanged(); - return this; } /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Represents the [title of the product
+     * group](https://support.google.com/merchants/answer/17085146) to which
+     * this variant product belongs. This can be used along with the [item group
+     * id](https://support.google.com/merchants/answer/6324507) attribute.
+     * It lets you perform better grouping of variant products, and helps
+     * identifying common product characteristics more efficiently.
      * 
* - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The itemGroupTitle to set. + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.StructuredDescription.Builder - getStructuredDescriptionBuilder() { - bitField2_ |= 0x40000000; + public Builder setItemGroupTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + itemGroupTitle_ = value; + bitField4_ |= 0x00000800; onChanged(); - return internalGetStructuredDescriptionFieldBuilder().getBuilder(); + return this; } /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Represents the [title of the product
+     * group](https://support.google.com/merchants/answer/17085146) to which
+     * this variant product belongs. This can be used along with the [item group
+     * id](https://support.google.com/merchants/answer/6324507) attribute.
+     * It lets you perform better grouping of variant products, and helps
+     * identifying common product characteristics more efficiently.
      * 
* - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. */ - public com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder - getStructuredDescriptionOrBuilder() { - if (structuredDescriptionBuilder_ != null) { - return structuredDescriptionBuilder_.getMessageOrBuilder(); - } else { - return structuredDescription_ == null - ? com.google.shopping.merchant.products.v1.StructuredDescription.getDefaultInstance() - : structuredDescription_; - } + public Builder clearItemGroupTitle() { + itemGroupTitle_ = getDefaultInstance().getItemGroupTitle(); + bitField4_ = (bitField4_ & ~0x00000800); + onChanged(); + return this; } /** * * *
-     * Structured description, for algorithmically (AI)-generated descriptions.
+     * Optional. Represents the [title of the product
+     * group](https://support.google.com/merchants/answer/17085146) to which
+     * this variant product belongs. This can be used along with the [item group
+     * id](https://support.google.com/merchants/answer/6324507) attribute.
+     * It lets you perform better grouping of variant products, and helps
+     * identifying common product characteristics more efficiently.
      * 
* - * - * optional .google.shopping.merchant.products.v1.StructuredDescription structured_description = 133; - * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for itemGroupTitle to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.StructuredDescription, - com.google.shopping.merchant.products.v1.StructuredDescription.Builder, - com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder> - internalGetStructuredDescriptionFieldBuilder() { - if (structuredDescriptionBuilder_ == null) { - structuredDescriptionBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.merchant.products.v1.StructuredDescription, - com.google.shopping.merchant.products.v1.StructuredDescription.Builder, - com.google.shopping.merchant.products.v1.StructuredDescriptionOrBuilder>( - getStructuredDescription(), getParentForChildren(), isClean()); - structuredDescription_ = null; + public Builder setItemGroupTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - return structuredDescriptionBuilder_; + checkByteStringIsUtf8(value); + itemGroupTitle_ = value; + bitField4_ |= 0x00000800; + onChanged(); + return this; } - private com.google.shopping.type.Price autoPricingMinPrice_; - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - autoPricingMinPriceBuilder_; + private com.google.protobuf.LazyStringArrayList documentLinks_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + + private void ensureDocumentLinksIsMutable() { + if (!documentLinks_.isModifiable()) { + documentLinks_ = new com.google.protobuf.LazyStringArrayList(documentLinks_); + } + bitField4_ |= 0x00001000; + } /** * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; * - * @return Whether the autoPricingMinPrice field is set. + * @return A list containing the documentLinks. */ - public boolean hasAutoPricingMinPrice() { - return ((bitField2_ & 0x80000000) != 0); + public com.google.protobuf.ProtocolStringList getDocumentLinksList() { + documentLinks_.makeImmutable(); + return documentLinks_; } /** * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; * - * @return The autoPricingMinPrice. + * @return The count of documentLinks. */ - public com.google.shopping.type.Price getAutoPricingMinPrice() { - if (autoPricingMinPriceBuilder_ == null) { - return autoPricingMinPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : autoPricingMinPrice_; - } else { - return autoPricingMinPriceBuilder_.getMessage(); - } + public int getDocumentLinksCount() { + return documentLinks_.size(); } /** * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the element to return. + * @return The documentLinks at the given index. */ - public Builder setAutoPricingMinPrice(com.google.shopping.type.Price value) { - if (autoPricingMinPriceBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - autoPricingMinPrice_ = value; - } else { - autoPricingMinPriceBuilder_.setMessage(value); - } - bitField2_ |= 0x80000000; - onChanged(); - return this; + public java.lang.String getDocumentLinks(int index) { + return documentLinks_.get(index); } /** * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the value to return. + * @return The bytes of the documentLinks at the given index. */ - public Builder setAutoPricingMinPrice(com.google.shopping.type.Price.Builder builderForValue) { - if (autoPricingMinPriceBuilder_ == null) { - autoPricingMinPrice_ = builderForValue.build(); - } else { - autoPricingMinPriceBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x80000000; - onChanged(); - return this; + public com.google.protobuf.ByteString getDocumentLinksBytes(int index) { + return documentLinks_.getByteString(index); } /** * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index to set the value at. + * @param value The documentLinks to set. + * @return This builder for chaining. */ - public Builder mergeAutoPricingMinPrice(com.google.shopping.type.Price value) { - if (autoPricingMinPriceBuilder_ == null) { - if (((bitField2_ & 0x80000000) != 0) - && autoPricingMinPrice_ != null - && autoPricingMinPrice_ != com.google.shopping.type.Price.getDefaultInstance()) { - getAutoPricingMinPriceBuilder().mergeFrom(value); - } else { - autoPricingMinPrice_ = value; - } - } else { - autoPricingMinPriceBuilder_.mergeFrom(value); - } - if (autoPricingMinPrice_ != null) { - bitField2_ |= 0x80000000; - onChanged(); + public Builder setDocumentLinks(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + ensureDocumentLinksIsMutable(); + documentLinks_.set(index, value); + bitField4_ |= 0x00001000; + onChanged(); return this; } @@ -35836,23 +64811,25 @@ public Builder mergeAutoPricingMinPrice(com.google.shopping.type.Price value) { * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The documentLinks to add. + * @return This builder for chaining. */ - public Builder clearAutoPricingMinPrice() { - bitField2_ = (bitField2_ & ~0x80000000); - autoPricingMinPrice_ = null; - if (autoPricingMinPriceBuilder_ != null) { - autoPricingMinPriceBuilder_.dispose(); - autoPricingMinPriceBuilder_ = null; + public Builder addDocumentLinks(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + ensureDocumentLinksIsMutable(); + documentLinks_.add(value); + bitField4_ |= 0x00001000; onChanged(); return this; } @@ -35861,113 +64838,115 @@ public Builder clearAutoPricingMinPrice() { * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param values The documentLinks to add. + * @return This builder for chaining. */ - public com.google.shopping.type.Price.Builder getAutoPricingMinPriceBuilder() { - bitField2_ |= 0x80000000; + public Builder addAllDocumentLinks(java.lang.Iterable values) { + ensureDocumentLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, documentLinks_); + bitField4_ |= 0x00001000; onChanged(); - return internalGetAutoPricingMinPriceFieldBuilder().getBuilder(); + return this; } /** * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. */ - public com.google.shopping.type.PriceOrBuilder getAutoPricingMinPriceOrBuilder() { - if (autoPricingMinPriceBuilder_ != null) { - return autoPricingMinPriceBuilder_.getMessageOrBuilder(); - } else { - return autoPricingMinPrice_ == null - ? com.google.shopping.type.Price.getDefaultInstance() - : autoPricingMinPrice_; - } + public Builder clearDocumentLinks() { + documentLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); + bitField4_ = (bitField4_ & ~0x00001000); + ; + onChanged(); + return this; } /** * * *
-     * A safeguard in the [automated discounts]
-     * (https://support.google.com/merchants/answer/10295759) and
-     * "Dynamic Promotions"
-     * (https://support.google.com/merchants/answer/13949249) projects,
-     * ensuring that discounts on business offers do not fall below this value,
-     * thereby preserving the offer's value and profitability.
+     * Optional. Contains a list of PDF [document
+     * URLs](https://support.google.com/merchants/answer/17084656) for the
+     * product. Examples are training manuals, user guides, assembly instructions,
+     * package inserts, etc. Must start with "http://" or "https://"), ASCII
+     * characters only, and RFC 3986 compliant.
      * 
* - * .google.shopping.type.Price auto_pricing_min_price = 124; + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes of the documentLinks to add. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder> - internalGetAutoPricingMinPriceFieldBuilder() { - if (autoPricingMinPriceBuilder_ == null) { - autoPricingMinPriceBuilder_ = - new com.google.protobuf.SingleFieldBuilder< - com.google.shopping.type.Price, - com.google.shopping.type.Price.Builder, - com.google.shopping.type.PriceOrBuilder>( - getAutoPricingMinPrice(), getParentForChildren(), isClean()); - autoPricingMinPrice_ = null; + public Builder addDocumentLinksBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } - return autoPricingMinPriceBuilder_; + checkByteStringIsUtf8(value); + ensureDocumentLinksIsMutable(); + documentLinks_.add(value); + bitField4_ |= 0x00001000; + onChanged(); + return this; } - private java.util.List - sustainabilityIncentives_ = java.util.Collections.emptyList(); + private java.util.List + variantOptions_ = java.util.Collections.emptyList(); - private void ensureSustainabilityIncentivesIsMutable() { - if (!((bitField3_ & 0x00000001) != 0)) { - sustainabilityIncentives_ = + private void ensureVariantOptionsIsMutable() { + if (!((bitField4_ & 0x00002000) != 0)) { + variantOptions_ = new java.util.ArrayList< - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive>( - sustainabilityIncentives_); - bitField3_ |= 0x00000001; + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption>( + variantOptions_); + bitField4_ |= 0x00002000; } } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> - sustainabilityIncentivesBuilder_; + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder> + variantOptionsBuilder_; /** * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public java.util.List - getSustainabilityIncentivesList() { - if (sustainabilityIncentivesBuilder_ == null) { - return java.util.Collections.unmodifiableList(sustainabilityIncentives_); + public java.util.List + getVariantOptionsList() { + if (variantOptionsBuilder_ == null) { + return java.util.Collections.unmodifiableList(variantOptions_); } else { - return sustainabilityIncentivesBuilder_.getMessageList(); + return variantOptionsBuilder_.getMessageList(); } } @@ -35975,18 +64954,20 @@ private void ensureSustainabilityIncentivesIsMutable() { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public int getSustainabilityIncentivesCount() { - if (sustainabilityIncentivesBuilder_ == null) { - return sustainabilityIncentives_.size(); + public int getVariantOptionsCount() { + if (variantOptionsBuilder_ == null) { + return variantOptions_.size(); } else { - return sustainabilityIncentivesBuilder_.getCount(); + return variantOptionsBuilder_.getCount(); } } @@ -35994,19 +64975,21 @@ public int getSustainabilityIncentivesCount() { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive - getSustainabilityIncentives(int index) { - if (sustainabilityIncentivesBuilder_ == null) { - return sustainabilityIncentives_.get(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption + getVariantOptions(int index) { + if (variantOptionsBuilder_ == null) { + return variantOptions_.get(index); } else { - return sustainabilityIncentivesBuilder_.getMessage(index); + return variantOptionsBuilder_.getMessage(index); } } @@ -36014,24 +64997,26 @@ public int getSustainabilityIncentivesCount() { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder setSustainabilityIncentives( - int index, com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive value) { - if (sustainabilityIncentivesBuilder_ == null) { + public Builder setVariantOptions( + int index, com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption value) { + if (variantOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.set(index, value); + ensureVariantOptionsIsMutable(); + variantOptions_.set(index, value); onChanged(); } else { - sustainabilityIncentivesBuilder_.setMessage(index, value); + variantOptionsBuilder_.setMessage(index, value); } return this; } @@ -36040,23 +65025,25 @@ public Builder setSustainabilityIncentives( * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder setSustainabilityIncentives( + public Builder setVariantOptions( int index, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder builderForValue) { - if (sustainabilityIncentivesBuilder_ == null) { - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.set(index, builderForValue.build()); + if (variantOptionsBuilder_ == null) { + ensureVariantOptionsIsMutable(); + variantOptions_.set(index, builderForValue.build()); onChanged(); } else { - sustainabilityIncentivesBuilder_.setMessage(index, builderForValue.build()); + variantOptionsBuilder_.setMessage(index, builderForValue.build()); } return this; } @@ -36065,24 +65052,26 @@ public Builder setSustainabilityIncentives( * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder addSustainabilityIncentives( - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive value) { - if (sustainabilityIncentivesBuilder_ == null) { + public Builder addVariantOptions( + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption value) { + if (variantOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.add(value); + ensureVariantOptionsIsMutable(); + variantOptions_.add(value); onChanged(); } else { - sustainabilityIncentivesBuilder_.addMessage(value); + variantOptionsBuilder_.addMessage(value); } return this; } @@ -36091,24 +65080,26 @@ public Builder addSustainabilityIncentives( * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder addSustainabilityIncentives( - int index, com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive value) { - if (sustainabilityIncentivesBuilder_ == null) { + public Builder addVariantOptions( + int index, com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption value) { + if (variantOptionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.add(index, value); + ensureVariantOptionsIsMutable(); + variantOptions_.add(index, value); onChanged(); } else { - sustainabilityIncentivesBuilder_.addMessage(index, value); + variantOptionsBuilder_.addMessage(index, value); } return this; } @@ -36117,22 +65108,24 @@ public Builder addSustainabilityIncentives( * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder addSustainabilityIncentives( - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + public Builder addVariantOptions( + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder builderForValue) { - if (sustainabilityIncentivesBuilder_ == null) { - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.add(builderForValue.build()); + if (variantOptionsBuilder_ == null) { + ensureVariantOptionsIsMutable(); + variantOptions_.add(builderForValue.build()); onChanged(); } else { - sustainabilityIncentivesBuilder_.addMessage(builderForValue.build()); + variantOptionsBuilder_.addMessage(builderForValue.build()); } return this; } @@ -36141,23 +65134,25 @@ public Builder addSustainabilityIncentives( * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder addSustainabilityIncentives( + public Builder addVariantOptions( int index, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder builderForValue) { - if (sustainabilityIncentivesBuilder_ == null) { - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.add(index, builderForValue.build()); + if (variantOptionsBuilder_ == null) { + ensureVariantOptionsIsMutable(); + variantOptions_.add(index, builderForValue.build()); onChanged(); } else { - sustainabilityIncentivesBuilder_.addMessage(index, builderForValue.build()); + variantOptionsBuilder_.addMessage(index, builderForValue.build()); } return this; } @@ -36166,23 +65161,25 @@ public Builder addSustainabilityIncentives( * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder addAllSustainabilityIncentives( + public Builder addAllVariantOptions( java.lang.Iterable< - ? extends com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive> + ? extends com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption> values) { - if (sustainabilityIncentivesBuilder_ == null) { - ensureSustainabilityIncentivesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sustainabilityIncentives_); + if (variantOptionsBuilder_ == null) { + ensureVariantOptionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, variantOptions_); onChanged(); } else { - sustainabilityIncentivesBuilder_.addAllMessages(values); + variantOptionsBuilder_.addAllMessages(values); } return this; } @@ -36191,20 +65188,22 @@ public Builder addAllSustainabilityIncentives( * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder clearSustainabilityIncentives() { - if (sustainabilityIncentivesBuilder_ == null) { - sustainabilityIncentives_ = java.util.Collections.emptyList(); - bitField3_ = (bitField3_ & ~0x00000001); + public Builder clearVariantOptions() { + if (variantOptionsBuilder_ == null) { + variantOptions_ = java.util.Collections.emptyList(); + bitField4_ = (bitField4_ & ~0x00002000); onChanged(); } else { - sustainabilityIncentivesBuilder_.clear(); + variantOptionsBuilder_.clear(); } return this; } @@ -36213,20 +65212,22 @@ public Builder clearSustainabilityIncentives() { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public Builder removeSustainabilityIncentives(int index) { - if (sustainabilityIncentivesBuilder_ == null) { - ensureSustainabilityIncentivesIsMutable(); - sustainabilityIncentives_.remove(index); + public Builder removeVariantOptions(int index) { + if (variantOptionsBuilder_ == null) { + ensureVariantOptionsIsMutable(); + variantOptions_.remove(index); onChanged(); } else { - sustainabilityIncentivesBuilder_.remove(index); + variantOptionsBuilder_.remove(index); } return this; } @@ -36235,35 +65236,39 @@ public Builder removeSustainabilityIncentives(int index) { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder - getSustainabilityIncentivesBuilder(int index) { - return internalGetSustainabilityIncentivesFieldBuilder().getBuilder(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder + getVariantOptionsBuilder(int index) { + return internalGetVariantOptionsFieldBuilder().getBuilder(index); } /** * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder - getSustainabilityIncentivesOrBuilder(int index) { - if (sustainabilityIncentivesBuilder_ == null) { - return sustainabilityIncentives_.get(index); + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder + getVariantOptionsOrBuilder(int index) { + if (variantOptionsBuilder_ == null) { + return variantOptions_.get(index); } else { - return sustainabilityIncentivesBuilder_.getMessageOrBuilder(index); + return variantOptionsBuilder_.getMessageOrBuilder(index); } } @@ -36271,21 +65276,23 @@ public Builder removeSustainabilityIncentives(int index) { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ public java.util.List< ? extends - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> - getSustainabilityIncentivesOrBuilderList() { - if (sustainabilityIncentivesBuilder_ != null) { - return sustainabilityIncentivesBuilder_.getMessageOrBuilderList(); + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder> + getVariantOptionsOrBuilderList() { + if (variantOptionsBuilder_ != null) { + return variantOptionsBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(sustainabilityIncentives_); + return java.util.Collections.unmodifiableList(variantOptions_); } } @@ -36293,18 +65300,20 @@ public Builder removeSustainabilityIncentives(int index) { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder - addSustainabilityIncentivesBuilder() { - return internalGetSustainabilityIncentivesFieldBuilder() + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder + addVariantOptionsBuilder() { + return internalGetVariantOptionsFieldBuilder() .addBuilder( - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption .getDefaultInstance()); } @@ -36312,19 +65321,21 @@ public Builder removeSustainabilityIncentives(int index) { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ - public com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder - addSustainabilityIncentivesBuilder(int index) { - return internalGetSustainabilityIncentivesFieldBuilder() + public com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder + addVariantOptionsBuilder(int index) { + return internalGetVariantOptionsFieldBuilder() .addBuilder( index, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption .getDefaultInstance()); } @@ -36332,148 +65343,316 @@ public Builder removeSustainabilityIncentives(int index) { * * *
-     * The list of sustainability incentive programs.
+     * Optional. Contains the [list of all variant-identifying
+     * options](https://support.google.com/merchants/answer/17085214) of this
+     * product.
      * 
* * - * repeated .google.shopping.merchant.products.v1.ProductSustainabilityIncentive sustainability_incentives = 138; + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; * */ public java.util.List< - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder> - getSustainabilityIncentivesBuilderList() { - return internalGetSustainabilityIncentivesFieldBuilder().getBuilderList(); + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder> + getVariantOptionsBuilderList() { + return internalGetVariantOptionsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder> - internalGetSustainabilityIncentivesFieldBuilder() { - if (sustainabilityIncentivesBuilder_ == null) { - sustainabilityIncentivesBuilder_ = + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder> + internalGetVariantOptionsFieldBuilder() { + if (variantOptionsBuilder_ == null) { + variantOptionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentive.Builder, - com.google.shopping.merchant.products.v1.ProductSustainabilityIncentiveOrBuilder>( - sustainabilityIncentives_, - ((bitField3_ & 0x00000001) != 0), + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder>( + variantOptions_, + ((bitField4_ & 0x00002000) != 0), getParentForChildren(), isClean()); - sustainabilityIncentives_ = null; + variantOptions_ = null; } - return sustainabilityIncentivesBuilder_; + return variantOptionsBuilder_; } - private com.google.protobuf.LazyStringArrayList videoLinks_ = - com.google.protobuf.LazyStringArrayList.emptyList(); + private java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct> + relatedProducts_ = java.util.Collections.emptyList(); - private void ensureVideoLinksIsMutable() { - if (!videoLinks_.isModifiable()) { - videoLinks_ = new com.google.protobuf.LazyStringArrayList(videoLinks_); + private void ensureRelatedProductsIsMutable() { + if (!((bitField4_ & 0x00004000) != 0)) { + relatedProducts_ = + new java.util.ArrayList< + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct>( + relatedProducts_); + bitField4_ |= 0x00004000; } - bitField3_ |= 0x00000002; } + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder> + relatedProductsBuilder_; + /** * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List + getRelatedProductsList() { + if (relatedProductsBuilder_ == null) { + return java.util.Collections.unmodifiableList(relatedProducts_); + } else { + return relatedProductsBuilder_.getMessageList(); + } + } + + /** * - * @return A list containing the videoLinks. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.protobuf.ProtocolStringList getVideoLinksList() { - videoLinks_.makeImmutable(); - return videoLinks_; + public int getRelatedProductsCount() { + if (relatedProductsBuilder_ == null) { + return relatedProducts_.size(); + } else { + return relatedProductsBuilder_.getCount(); + } } /** * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + getRelatedProducts(int index) { + if (relatedProductsBuilder_ == null) { + return relatedProducts_.get(index); + } else { + return relatedProductsBuilder_.getMessage(index); + } + } + + /** * - * @return The count of videoLinks. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public int getVideoLinksCount() { - return videoLinks_.size(); + public Builder setRelatedProducts( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct value) { + if (relatedProductsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRelatedProductsIsMutable(); + relatedProducts_.set(index, value); + onChanged(); + } else { + relatedProductsBuilder_.setMessage(index, value); + } + return this; } /** * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setRelatedProducts( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + builderForValue) { + if (relatedProductsBuilder_ == null) { + ensureRelatedProductsIsMutable(); + relatedProducts_.set(index, builderForValue.build()); + onChanged(); + } else { + relatedProductsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** * - * @param index The index of the element to return. - * @return The videoLinks at the given index. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public java.lang.String getVideoLinks(int index) { - return videoLinks_.get(index); + public Builder addRelatedProducts( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct value) { + if (relatedProductsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRelatedProductsIsMutable(); + relatedProducts_.add(value); + onChanged(); + } else { + relatedProductsBuilder_.addMessage(value); + } + return this; } /** * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addRelatedProducts( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct value) { + if (relatedProductsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRelatedProductsIsMutable(); + relatedProducts_.add(index, value); + onChanged(); + } else { + relatedProductsBuilder_.addMessage(index, value); + } + return this; + } + + /** * - * @param index The index of the value to return. - * @return The bytes of the videoLinks at the given index. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public com.google.protobuf.ByteString getVideoLinksBytes(int index) { - return videoLinks_.getByteString(index); + public Builder addRelatedProducts( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + builderForValue) { + if (relatedProductsBuilder_ == null) { + ensureRelatedProductsIsMutable(); + relatedProducts_.add(builderForValue.build()); + onChanged(); + } else { + relatedProductsBuilder_.addMessage(builderForValue.build()); + } + return this; } /** * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder addRelatedProducts( + int index, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + builderForValue) { + if (relatedProductsBuilder_ == null) { + ensureRelatedProductsIsMutable(); + relatedProducts_.add(index, builderForValue.build()); + onChanged(); + } else { + relatedProductsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** * - * @param index The index to set the value at. - * @param value The videoLinks to set. - * @return This builder for chaining. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder setVideoLinks(int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder addAllRelatedProducts( + java.lang.Iterable< + ? extends com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct> + values) { + if (relatedProductsBuilder_ == null) { + ensureRelatedProductsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, relatedProducts_); + onChanged(); + } else { + relatedProductsBuilder_.addAllMessages(values); } - ensureVideoLinksIsMutable(); - videoLinks_.set(index, value); - bitField3_ |= 0x00000002; - onChanged(); return this; } @@ -36481,25 +65660,47 @@ public Builder setVideoLinks(int index, java.lang.String value) { * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearRelatedProducts() { + if (relatedProductsBuilder_ == null) { + relatedProducts_ = java.util.Collections.emptyList(); + bitField4_ = (bitField4_ & ~0x00004000); + onChanged(); + } else { + relatedProductsBuilder_.clear(); + } + return this; + } + + /** * - * @param value The videoLinks to add. - * @return This builder for chaining. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder addVideoLinks(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder removeRelatedProducts(int index) { + if (relatedProductsBuilder_ == null) { + ensureRelatedProductsIsMutable(); + relatedProducts_.remove(index); + onChanged(); + } else { + relatedProductsBuilder_.remove(index); } - ensureVideoLinksIsMutable(); - videoLinks_.add(value); - bitField3_ |= 0x00000002; - onChanged(); return this; } @@ -36507,72 +65708,146 @@ public Builder addVideoLinks(java.lang.String value) { * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + getRelatedProductsBuilder(int index) { + return internalGetRelatedProductsFieldBuilder().getBuilder(index); + } + + /** * - * @param values The videoLinks to add. - * @return This builder for chaining. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder addAllVideoLinks(java.lang.Iterable values) { - ensureVideoLinksIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, videoLinks_); - bitField3_ |= 0x00000002; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder + getRelatedProductsOrBuilder(int index) { + if (relatedProductsBuilder_ == null) { + return relatedProducts_.get(index); + } else { + return relatedProductsBuilder_.getMessageOrBuilder(index); + } } /** * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder> + getRelatedProductsOrBuilderList() { + if (relatedProductsBuilder_ != null) { + return relatedProductsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(relatedProducts_); + } + } + + /** * - * @return This builder for chaining. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder clearVideoLinks() { - videoLinks_ = com.google.protobuf.LazyStringArrayList.emptyList(); - bitField3_ = (bitField3_ & ~0x00000002); - ; - onChanged(); - return this; + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + addRelatedProductsBuilder() { + return internalGetRelatedProductsFieldBuilder() + .addBuilder( + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .getDefaultInstance()); } /** * * *
-     * Optional. A list of video URLs for the item. Use this attribute to provide
-     * more visuals for your product beyond your image attributes. See the [Help
-     * Center article](https://support.google.com/merchants/answer/15216925) for
-     * more information.
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
      * 
* - * repeated string video_links = 169 [(.google.api.field_behavior) = OPTIONAL]; + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder + addRelatedProductsBuilder(int index) { + return internalGetRelatedProductsFieldBuilder() + .addBuilder( + index, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct + .getDefaultInstance()); + } + + /** * - * @param value The bytes of the videoLinks to add. - * @return This builder for chaining. + * + *
+     * Optional. Specifies how other [products are
+     * related](https://support.google.com/merchants/answer/17085213) to this
+     * product.
+     * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * */ - public Builder addVideoLinksBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public java.util.List< + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder> + getRelatedProductsBuilderList() { + return internalGetRelatedProductsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder> + internalGetRelatedProductsFieldBuilder() { + if (relatedProductsBuilder_ == null) { + relatedProductsBuilder_ = + new com.google.protobuf.RepeatedFieldBuilder< + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct.Builder, + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder>( + relatedProducts_, + ((bitField4_ & 0x00004000) != 0), + getParentForChildren(), + isClean()); + relatedProducts_ = null; } - checkByteStringIsUtf8(value); - ensureVideoLinksIsMutable(); - videoLinks_.add(value); - bitField3_ |= 0x00000002; - onChanged(); - return this; + return relatedProductsBuilder_; } // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductAttributes) diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributesOrBuilder.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributesOrBuilder.java index 333e41d28466..7b1c452c273d 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributesOrBuilder.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductAttributesOrBuilder.java @@ -3496,6 +3496,55 @@ com.google.shopping.merchant.products.v1.ProductDetailOrBuilder getProductDetail */ com.google.shopping.merchant.products.v1.PickupSla getPickupSla(); + /** + * + * + *
+   * Optional. The [pickup
+   * cost](https://support.google.com/merchants/answer/16988704) for an item
+   * when a customer buys it online and picks it up at a store.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the pickupCost field is set. + */ + boolean hasPickupCost(); + + /** + * + * + *
+   * Optional. The [pickup
+   * cost](https://support.google.com/merchants/answer/16988704) for an item
+   * when a customer buys it online and picks it up at a store.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The pickupCost. + */ + com.google.shopping.merchant.products.v1.PickupCost getPickupCost(); + + /** + * + * + *
+   * Optional. The [pickup
+   * cost](https://support.google.com/merchants/answer/16988704) for an item
+   * when a customer buys it online and picks it up at a store.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.PickupCost pickup_cost = 172 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.merchant.products.v1.PickupCostOrBuilder getPickupCostOrBuilder(); + /** * * @@ -4714,4 +4763,1875 @@ com.google.shopping.merchant.products.v1.ProductCertificationOrBuilder getCertif * @return The bytes of the videoLinks at the given index. */ com.google.protobuf.ByteString getVideoLinksBytes(int index); + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + java.util.List + getMinimumOrderValuesList(); + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue getMinimumOrderValues( + int index); + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + int getMinimumOrderValuesCount(); + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + java.util.List< + ? extends com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder> + getMinimumOrderValuesOrBuilderList(); + + /** + * + * + *
+   * The [minimum value](https://support.google.com/merchants/answer/16989009)
+   * in the cart before a customer can initiate checkout. Supports multiple
+   * minimum order values. Different minimum order values can be specified per
+   * country, service and surface. Maximum entries: 100.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductMinimumOrderValue minimum_order_values = 146; + * + */ + com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder + getMinimumOrderValuesOrBuilder(int index); + + /** + * + * + *
+   * The [Vehicle Identification Number
+   * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+   * vehicle.
+   * 
+ * + * string vin = 147; + * + * @return The vin. + */ + java.lang.String getVin(); + + /** + * + * + *
+   * The [Vehicle Identification Number
+   * (VIN)](https://support.google.com/google-ads/answer/14154510) of the
+   * vehicle.
+   * 
+ * + * string vin = 147; + * + * @return The bytes for vin. + */ + com.google.protobuf.ByteString getVinBytes(); + + /** + * + * + *
+   * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+   * vehicle, such as `LX`, `EX`, and others.
+   * 
+ * + * string model = 148; + * + * @return The model. + */ + java.lang.String getModel(); + + /** + * + * + *
+   * The [Model](https://support.google.com/google-ads/answer/14154511) of the
+   * vehicle, such as `LX`, `EX`, and others.
+   * 
+ * + * string model = 148; + * + * @return The bytes for model. + */ + com.google.protobuf.ByteString getModelBytes(); + + /** + * + * + *
+   * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+   * vehicle model, such as `S`, `SV`, `SL` and others.
+   * 
+ * + * string trim = 149; + * + * @return The trim. + */ + java.lang.String getTrim(); + + /** + * + * + *
+   * The [Trim](https://support.google.com/google-ads/answer/14154176) of the
+   * vehicle model, such as `S`, `SV`, `SL` and others.
+   * 
+ * + * string trim = 149; + * + * @return The bytes for trim. + */ + com.google.protobuf.ByteString getTrimBytes(); + + /** + * + * + *
+   * The [body style](https://support.google.com/google-ads/answer/14157085) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * + * + * @return The enum numeric value on the wire for bodyStyle. + */ + int getBodyStyleValue(); + + /** + * + * + *
+   * The [body style](https://support.google.com/google-ads/answer/14157085) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle body_style = 150; + * + * + * @return The bodyStyle. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle getBodyStyle(); + + /** + * + * + *
+   * The [Year](https://support.google.com/google-ads/answer/14152816) of the
+   * vehicle model.
+   * 
+ * + * int64 year = 151; + * + * @return The year. + */ + long getYear(); + + /** + * + * + *
+   * The number of miles/kms on the vehicle. See the
+   * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+   * information.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + * + * @return Whether the mileage field is set. + */ + boolean hasMileage(); + + /** + * + * + *
+   * The number of miles/kms on the vehicle. See the
+   * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+   * information.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + * + * @return The mileage. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getMileage(); + + /** + * + * + *
+   * The number of miles/kms on the vehicle. See the
+   * [Mileage](https://support.google.com/google-ads/answer/14156166) for more
+   * information.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage mileage = 152; + */ + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder getMileageOrBuilder(); + + /** + * + * + *
+   * The [electric range](https://support.google.com/google-ads/answer/15162232)
+   * of the vehicle in miles/kms.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + * + * @return Whether the electricRange field is set. + */ + boolean hasElectricRange(); + + /** + * + * + *
+   * The [electric range](https://support.google.com/google-ads/answer/15162232)
+   * of the vehicle in miles/kms.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + * + * @return The electricRange. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Mileage getElectricRange(); + + /** + * + * + *
+   * The [electric range](https://support.google.com/google-ads/answer/15162232)
+   * of the vehicle in miles/kms.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Mileage electric_range = 153; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.MileageOrBuilder + getElectricRangeOrBuilder(); + + /** + * + * + *
+   * The [fuel
+   * consumption](https://support.google.com/google-ads/answer/14543580) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * + * + * @return Whether the fuelConsumption field is set. + */ + boolean hasFuelConsumption(); + + /** + * + * + *
+   * The [fuel
+   * consumption](https://support.google.com/google-ads/answer/14543580) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * + * + * @return The fuelConsumption. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption getFuelConsumption(); + + /** + * + * + *
+   * The [fuel
+   * consumption](https://support.google.com/google-ads/answer/14543580) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption = 154; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder + getFuelConsumptionOrBuilder(); + + /** + * + * + *
+   * The fuel consumption of the vehicle when the hybrid battery is discharged.
+   * See the [Help Center
+   * article](https://support.google.com/google-ads/answer/15162033) for more
+   * information.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; + * + * + * @return Whether the fuelConsumptionDischargedBattery field is set. + */ + boolean hasFuelConsumptionDischargedBattery(); + + /** + * + * + *
+   * The fuel consumption of the vehicle when the hybrid battery is discharged.
+   * See the [Help Center
+   * article](https://support.google.com/google-ads/answer/15162033) for more
+   * information.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; + * + * + * @return The fuelConsumptionDischargedBattery. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption + getFuelConsumptionDischargedBattery(); + + /** + * + * + *
+   * The fuel consumption of the vehicle when the hybrid battery is discharged.
+   * See the [Help Center
+   * article](https://support.google.com/google-ads/answer/15162033) for more
+   * information.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.FuelConsumption fuel_consumption_discharged_battery = 155; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.FuelConsumptionOrBuilder + getFuelConsumptionDischargedBatteryOrBuilder(); + + /** + * + * + *
+   * The [energy
+   * consumption](https://support.google.com/google-ads/answer/14546149) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; + * + * + * @return Whether the energyConsumption field is set. + */ + boolean hasEnergyConsumption(); + + /** + * + * + *
+   * The [energy
+   * consumption](https://support.google.com/google-ads/answer/14546149) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; + * + * + * @return The energyConsumption. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption + getEnergyConsumption(); + + /** + * + * + *
+   * The [energy
+   * consumption](https://support.google.com/google-ads/answer/14546149) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption energy_consumption = 156; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.EnergyConsumptionOrBuilder + getEnergyConsumptionOrBuilder(); + + /** + * + * + *
+   * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+   * of the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * + * + * @return Whether the co2Emissions field is set. + */ + boolean hasCo2Emissions(); + + /** + * + * + *
+   * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+   * of the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * + * + * @return The co2Emissions. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions getCo2Emissions(); + + /** + * + * + *
+   * The [co2 emission](https://support.google.com/google-ads/answer/14546146)
+   * of the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Co2Emissions co2_emissions = 157; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Co2EmissionsOrBuilder + getCo2EmissionsOrBuilder(); + + /** + * + * + *
+   * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+   * [Date first
+   * registered](https://support.google.com/google-ads/answer/14546138) for more
+   * information.
+   * 
+ * + * string date_first_registered = 158; + * + * @return The dateFirstRegistered. + */ + java.lang.String getDateFirstRegistered(); + + /** + * + * + *
+   * The date the vehicle was first registered. Format: `YYYY-MM`. See the
+   * [Date first
+   * registered](https://support.google.com/google-ads/answer/14546138) for more
+   * information.
+   * 
+ * + * string date_first_registered = 158; + * + * @return The bytes for dateFirstRegistered. + */ + com.google.protobuf.ByteString getDateFirstRegisteredBytes(); + + /** + * + * + *
+   * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; + * + * @return The enum numeric value on the wire for engine. + */ + int getEngineValue(); + + /** + * + * + *
+   * The [engine](https://support.google.com/google-ads/answer/14156068) type of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.EngineType engine = 159; + * + * @return The engine. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.EngineType getEngine(); + + /** + * + * + *
+   * The [emission
+   * standard](https://support.google.com/google-ads/answer/14869021) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * + * + * @return The enum numeric value on the wire for emissionsStandard. + */ + int getEmissionsStandardValue(); + + /** + * + * + *
+   * The [emission
+   * standard](https://support.google.com/google-ads/answer/14869021) of the
+   * vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard emissions_standard = 160; + * + * + * @return The emissionsStandard. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.EmissionsStandard + getEmissionsStandard(); + + /** + * + * + *
+   * Whether the vehicle is OEM [certified
+   * pre-owned](https://support.google.com/google-ads/answer/14156475).
+   * 
+ * + * bool certified_pre_owned = 161; + * + * @return The certifiedPreOwned. + */ + boolean getCertifiedPreOwned(); + + /** + * + * + *
+   * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+   * current configuration. See the [Vehicle
+   * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_msrp = 162; + * + * @return Whether the vehicleMsrp field is set. + */ + boolean hasVehicleMsrp(); + + /** + * + * + *
+   * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+   * current configuration. See the [Vehicle
+   * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_msrp = 162; + * + * @return The vehicleMsrp. + */ + com.google.shopping.type.Price getVehicleMsrp(); + + /** + * + * + *
+   * The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its
+   * current configuration. See the [Vehicle
+   * MSRP](https://support.google.com/google-ads/answer/14154171) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_msrp = 162; + */ + com.google.shopping.type.PriceOrBuilder getVehicleMsrpOrBuilder(); + + /** + * + * + *
+   * The all-in advertised price for a vehicle, which includes costs for the
+   * following – any accessories attached to the vehicle, environmental levies,
+   * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+   * for handling licensing, provincial regulatory fees, miscellaneous dealer
+   * charges for security etching and nitrogen tire fill, and
+   * factory-to-customer or dealer-to-customer discounts or incentives. See the
+   * [Vehicle all-in
+   * price](https://support.google.com/google-ads/answer/14156981) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_all_in_price = 163; + * + * @return Whether the vehicleAllInPrice field is set. + */ + boolean hasVehicleAllInPrice(); + + /** + * + * + *
+   * The all-in advertised price for a vehicle, which includes costs for the
+   * following – any accessories attached to the vehicle, environmental levies,
+   * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+   * for handling licensing, provincial regulatory fees, miscellaneous dealer
+   * charges for security etching and nitrogen tire fill, and
+   * factory-to-customer or dealer-to-customer discounts or incentives. See the
+   * [Vehicle all-in
+   * price](https://support.google.com/google-ads/answer/14156981) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_all_in_price = 163; + * + * @return The vehicleAllInPrice. + */ + com.google.shopping.type.Price getVehicleAllInPrice(); + + /** + * + * + *
+   * The all-in advertised price for a vehicle, which includes costs for the
+   * following – any accessories attached to the vehicle, environmental levies,
+   * extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees
+   * for handling licensing, provincial regulatory fees, miscellaneous dealer
+   * charges for security etching and nitrogen tire fill, and
+   * factory-to-customer or dealer-to-customer discounts or incentives. See the
+   * [Vehicle all-in
+   * price](https://support.google.com/google-ads/answer/14156981) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_all_in_price = 163; + */ + com.google.shopping.type.PriceOrBuilder getVehicleAllInPriceOrBuilder(); + + /** + * + * + *
+   * The [price type](https://support.google.com/google-ads/answer/14592783) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * + * + * @return The enum numeric value on the wire for vehiclePriceType. + */ + int getVehiclePriceTypeValue(); + + /** + * + * + *
+   * The [price type](https://support.google.com/google-ads/answer/14592783) of
+   * the vehicle.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType vehicle_price_type = 164; + * + * + * @return The vehiclePriceType. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.VehiclePriceType getVehiclePriceType(); + + /** + * + * + *
+   * Whether the vehicle is sold with mandatory inspection and maintenance
+   * performed before delivery. See the [Vehicle mandatory inspection
+   * included](https://support.google.com/google-ads/answer/15956630) for more
+   * information.`
+   * 
+ * + * bool vehicle_mandatory_inspection_included = 166; + * + * @return The vehicleMandatoryInspectionIncluded. + */ + boolean getVehicleMandatoryInspectionIncluded(); + + /** + * + * + *
+   * The miscellaneous expenses like insurance and registration fees of the
+   * vehicle. See the [Vehicle
+   * expenses](https://support.google.com/google-ads/answer/15957154) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_expenses = 167; + * + * @return Whether the vehicleExpenses field is set. + */ + boolean hasVehicleExpenses(); + + /** + * + * + *
+   * The miscellaneous expenses like insurance and registration fees of the
+   * vehicle. See the [Vehicle
+   * expenses](https://support.google.com/google-ads/answer/15957154) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_expenses = 167; + * + * @return The vehicleExpenses. + */ + com.google.shopping.type.Price getVehicleExpenses(); + + /** + * + * + *
+   * The miscellaneous expenses like insurance and registration fees of the
+   * vehicle. See the [Vehicle
+   * expenses](https://support.google.com/google-ads/answer/15957154) for more
+   * information.
+   * 
+ * + * .google.shopping.type.Price vehicle_expenses = 167; + */ + com.google.shopping.type.PriceOrBuilder getVehicleExpensesOrBuilder(); + + /** + * + * + *
+   * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; + * + * @return Whether the warranty field is set. + */ + boolean hasWarranty(); + + /** + * + * + *
+   * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; + * + * @return The warranty. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.Warranty getWarranty(); + + /** + * + * + *
+   * The [warranty](https://support.google.com/google-ads/answer/15957626) of
+   * the vehicle.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.Warranty warranty = 168; + */ + com.google.shopping.merchant.products.v1.ProductAttributes.WarrantyOrBuilder + getWarrantyOrBuilder(); + + /** + * + * + *
+   * The display address of the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * + * + * @return Whether the displayAddress field is set. + */ + boolean hasDisplayAddress(); + + /** + * + * + *
+   * The display address of the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * + * + * @return The displayAddress. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress getDisplayAddress(); + + /** + * + * + *
+   * The display address of the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.DisplayAddress display_address = 179; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.DisplayAddressOrBuilder + getDisplayAddressOrBuilder(); + + /** + * + * + *
+   * The latitude of the property. The value must be between -90 (inclusive) and
+   * 90 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double latitude = 180; + * + * @return Whether the latitude field is set. + */ + boolean hasLatitude(); + + /** + * + * + *
+   * The latitude of the property. The value must be between -90 (inclusive) and
+   * 90 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double latitude = 180; + * + * @return The latitude. + */ + double getLatitude(); + + /** + * + * + *
+   * The longitude of the property. The value must be between -180 (inclusive)
+   * and 180 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double longitude = 181; + * + * @return Whether the longitude field is set. + */ + boolean hasLongitude(); + + /** + * + * + *
+   * The longitude of the property. The value must be between -180 (inclusive)
+   * and 180 (inclusive), up to 6 decimal places.
+   * 
+ * + * optional double longitude = 181; + * + * @return The longitude. + */ + double getLongitude(); + + /** + * + * + *
+   * The neighborhood (locality) of the property, such as `Wallingford`,
+   * `Greenwood`, etc.
+   * 
+ * + * string neighborhood = 182; + * + * @return The neighborhood. + */ + java.lang.String getNeighborhood(); + + /** + * + * + *
+   * The neighborhood (locality) of the property, such as `Wallingford`,
+   * `Greenwood`, etc.
+   * 
+ * + * string neighborhood = 182; + * + * @return The bytes for neighborhood. + */ + com.google.protobuf.ByteString getNeighborhoodBytes(); + + /** + * + * + *
+   * The unit area of the property, such as `1000 sqft`.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * + * @return Whether the unitArea field is set. + */ + boolean hasUnitArea(); + + /** + * + * + *
+   * The unit area of the property, such as `1000 sqft`.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + * + * @return The unitArea. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.UnitArea getUnitArea(); + + /** + * + * + *
+   * The unit area of the property, such as `1000 sqft`.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.UnitArea unit_area = 183; + */ + com.google.shopping.merchant.products.v1.ProductAttributes.UnitAreaOrBuilder + getUnitAreaOrBuilder(); + + /** + * + * + *
+   * The number of units available for a specific floor plan of the property.
+   * The value must be greater than 0.
+   * 
+ * + * optional int64 number_of_units = 184; + * + * @return Whether the numberOfUnits field is set. + */ + boolean hasNumberOfUnits(); + + /** + * + * + *
+   * The number of units available for a specific floor plan of the property.
+   * The value must be greater than 0.
+   * 
+ * + * optional int64 number_of_units = 184; + * + * @return The numberOfUnits. + */ + long getNumberOfUnits(); + + /** + * + * + *
+   * The name of the property.
+   * 
+ * + * string property_name = 185; + * + * @return The propertyName. + */ + java.lang.String getPropertyName(); + + /** + * + * + *
+   * The name of the property.
+   * 
+ * + * string property_name = 185; + * + * @return The bytes for propertyName. + */ + com.google.protobuf.ByteString getPropertyNameBytes(); + + /** + * + * + *
+   * The number of bedrooms in the property. The value must be greater than or
+   * equal to 0 and a multiple of 1.0.
+   * 
+ * + * optional double number_of_bedrooms = 186; + * + * @return Whether the numberOfBedrooms field is set. + */ + boolean hasNumberOfBedrooms(); + + /** + * + * + *
+   * The number of bedrooms in the property. The value must be greater than or
+   * equal to 0 and a multiple of 1.0.
+   * 
+ * + * optional double number_of_bedrooms = 186; + * + * @return The numberOfBedrooms. + */ + double getNumberOfBedrooms(); + + /** + * + * + *
+   * The number of bathrooms in the property. The value must be greater than 0
+   * and a multiple of 0.5.
+   * 
+ * + * optional double number_of_bathrooms = 187; + * + * @return Whether the numberOfBathrooms field is set. + */ + boolean hasNumberOfBathrooms(); + + /** + * + * + *
+   * The number of bathrooms in the property. The value must be greater than 0
+   * and a multiple of 0.5.
+   * 
+ * + * optional double number_of_bathrooms = 187; + * + * @return The numberOfBathrooms. + */ + double getNumberOfBathrooms(); + + /** + * + * + *
+   * The type of property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; + * + * + * @return The enum numeric value on the wire for propertyType. + */ + int getPropertyTypeValue(); + + /** + * + * + *
+   * The type of property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PropertyType property_type = 188; + * + * + * @return The propertyType. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.PropertyType getPropertyType(); + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @return A list containing the amenityFeature. + */ + java.util.List + getAmenityFeatureList(); + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @return The count of amenityFeature. + */ + int getAmenityFeatureCount(); + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @param index The index of the element to return. + * @return The amenityFeature at the given index. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature getAmenityFeature( + int index); + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @return A list containing the enum numeric values on the wire for amenityFeature. + */ + java.util.List getAmenityFeatureValueList(); + + /** + * + * + *
+   * The amenity features for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature amenity_feature = 189; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of amenityFeature at the given index. + */ + int getAmenityFeatureValue(int index); + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @return A list containing the utilitiesIncluded. + */ + java.util.List + getUtilitiesIncludedList(); + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @return The count of utilitiesIncluded. + */ + int getUtilitiesIncludedCount(); + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @param index The index of the element to return. + * @return The utilitiesIncluded at the given index. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded getUtilitiesIncluded( + int index); + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @return A list containing the enum numeric values on the wire for utilitiesIncluded. + */ + java.util.List getUtilitiesIncludedValueList(); + + /** + * + * + *
+   * The utilities included for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded utilities_included = 190; + * + * + * @param index The index of the value to return. + * @return The enum numeric value on the wire of utilitiesIncluded at the given index. + */ + int getUtilitiesIncludedValue(int index); + + /** + * + * + *
+   * The pet policy for the property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * + * + * @return Whether the petPolicy field is set. + */ + boolean hasPetPolicy(); + + /** + * + * + *
+   * The pet policy for the property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * + * + * @return The petPolicy. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicy getPetPolicy(); + + /** + * + * + *
+   * The pet policy for the property.
+   * 
+ * + * .google.shopping.merchant.products.v1.ProductAttributes.PetPolicy pet_policy = 191; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.PetPolicyOrBuilder + getPetPolicyOrBuilder(); + + /** + * + * + *
+   * The specialty housing type for the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * + * + * @return The enum numeric value on the wire for specialtyHousingType. + */ + int getSpecialtyHousingTypeValue(); + + /** + * + * + *
+   * The specialty housing type for the property.
+   * 
+ * + * + * .google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType specialty_housing_type = 192; + * + * + * @return The specialtyHousingType. + */ + com.google.shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType + getSpecialtyHousingType(); + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + java.util.List + getProductFeeList(); + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFee getProductFee(int index); + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + int getProductFeeCount(); + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + java.util.List< + ? extends com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder> + getProductFeeOrBuilderList(); + + /** + * + * + *
+   * The product fee for the property.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.ProductFee product_fee = 193; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.ProductFeeOrBuilder + getProductFeeOrBuilder(int index); + + /** + * + * + *
+   * The short title of the item.
+   * 
+ * + * optional string short_title = 194; + * + * @return Whether the shortTitle field is set. + */ + boolean hasShortTitle(); + + /** + * + * + *
+   * The short title of the item.
+   * 
+ * + * optional string short_title = 194; + * + * @return The shortTitle. + */ + java.lang.String getShortTitle(); + + /** + * + * + *
+   * The short title of the item.
+   * 
+ * + * optional string short_title = 194; + * + * @return The bytes for shortTitle. + */ + com.google.protobuf.ByteString getShortTitleBytes(); + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List + getQuestionsAndAnswersList(); + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer + getQuestionsAndAnswers(int index); + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + int getQuestionsAndAnswersCount(); + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder> + getQuestionsAndAnswersOrBuilderList(); + + /** + * + * + *
+   * Optional. Contains user-, merchant-, and manufacturer-authored [questions
+   * and answers](https://support.google.com/merchants/answer/17085211) about
+   * the product. Max 30 question and answer pairs. Max 10000 characters total.
+   * Each question can have max 1000 characters. Each answer can have max 1000
+   * characters.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswer questions_and_answers = 173 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.QuestionAndAnswerOrBuilder + getQuestionsAndAnswersOrBuilder(int index); + + /** + * + * + *
+   * Optional. Indicates the
+   * [popularity](https://support.google.com/merchants/answer/17085297) of the
+   * product in a merchant's inventory. Using a scale of 0.0 (lowest) to 100.0
+   * (highest).
+   * 
+ * + * float popularity_rank = 174 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The popularityRank. + */ + float getPopularityRank(); + + /** + * + * + *
+   * Optional. Represents the [title of the product
+   * group](https://support.google.com/merchants/answer/17085146) to which
+   * this variant product belongs. This can be used along with the [item group
+   * id](https://support.google.com/merchants/answer/6324507) attribute.
+   * It lets you perform better grouping of variant products, and helps
+   * identifying common product characteristics more efficiently.
+   * 
+ * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The itemGroupTitle. + */ + java.lang.String getItemGroupTitle(); + + /** + * + * + *
+   * Optional. Represents the [title of the product
+   * group](https://support.google.com/merchants/answer/17085146) to which
+   * this variant product belongs. This can be used along with the [item group
+   * id](https://support.google.com/merchants/answer/6324507) attribute.
+   * It lets you perform better grouping of variant products, and helps
+   * identifying common product characteristics more efficiently.
+   * 
+ * + * string item_group_title = 175 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for itemGroupTitle. + */ + com.google.protobuf.ByteString getItemGroupTitleBytes(); + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return A list containing the documentLinks. + */ + java.util.List getDocumentLinksList(); + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The count of documentLinks. + */ + int getDocumentLinksCount(); + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the element to return. + * @return The documentLinks at the given index. + */ + java.lang.String getDocumentLinks(int index); + + /** + * + * + *
+   * Optional. Contains a list of PDF [document
+   * URLs](https://support.google.com/merchants/answer/17084656) for the
+   * product. Examples are training manuals, user guides, assembly instructions,
+   * package inserts, etc. Must start with "http://" or "https://"), ASCII
+   * characters only, and RFC 3986 compliant.
+   * 
+ * + * repeated string document_links = 176 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param index The index of the value to return. + * @return The bytes of the documentLinks at the given index. + */ + com.google.protobuf.ByteString getDocumentLinksBytes(int index); + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List + getVariantOptionsList(); + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOption getVariantOptions( + int index); + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + int getVariantOptionsCount(); + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder> + getVariantOptionsOrBuilderList(); + + /** + * + * + *
+   * Optional. Contains the [list of all variant-identifying
+   * options](https://support.google.com/merchants/answer/17085214) of this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.VariantOption variant_options = 177 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.VariantOptionOrBuilder + getVariantOptionsOrBuilder(int index); + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List + getRelatedProductsList(); + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct getRelatedProducts( + int index); + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + int getRelatedProductsCount(); + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + java.util.List< + ? extends + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder> + getRelatedProductsOrBuilderList(); + + /** + * + * + *
+   * Optional. Specifies how other [products are
+   * related](https://support.google.com/merchants/answer/17085213) to this
+   * product.
+   * 
+ * + * + * repeated .google.shopping.merchant.products.v1.ProductAttributes.RelatedProduct related_products = 178 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductOrBuilder + getRelatedProductsOrBuilder(int index); } diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallment.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallment.java index dd378ba70586..c5c14770781a 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallment.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallment.java @@ -284,6 +284,65 @@ public double getAnnualPercentageRate() { return annualPercentageRate_; } + public static final int TOTAL_AMOUNT_FIELD_NUMBER = 6; + private com.google.shopping.type.Price totalAmount_; + + /** + * + * + *
+   * Optional. Total amount the buyer has to pay, including interest.
+   * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the totalAmount field is set. + */ + @java.lang.Override + public boolean hasTotalAmount() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * + * + *
+   * Optional. Total amount the buyer has to pay, including interest.
+   * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The totalAmount. + */ + @java.lang.Override + public com.google.shopping.type.Price getTotalAmount() { + return totalAmount_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : totalAmount_; + } + + /** + * + * + *
+   * Optional. Total amount the buyer has to pay, including interest.
+   * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getTotalAmountOrBuilder() { + return totalAmount_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : totalAmount_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -313,6 +372,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (((bitField0_ & 0x00000008) != 0)) { output.writeDouble(5, annualPercentageRate_); } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(6, getTotalAmount()); + } getUnknownFields().writeTo(output); } @@ -337,6 +399,9 @@ public int getSerializedSize() { if (((bitField0_ & 0x00000008) != 0)) { size += com.google.protobuf.CodedOutputStream.computeDoubleSize(5, annualPercentageRate_); } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getTotalAmount()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -371,6 +436,10 @@ public boolean equals(final java.lang.Object obj) { if (java.lang.Double.doubleToLongBits(getAnnualPercentageRate()) != java.lang.Double.doubleToLongBits(other.getAnnualPercentageRate())) return false; } + if (hasTotalAmount() != other.hasTotalAmount()) return false; + if (hasTotalAmount()) { + if (!getTotalAmount().equals(other.getTotalAmount())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -403,6 +472,10 @@ public int hashCode() { + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getAnnualPercentageRate())); } + if (hasTotalAmount()) { + hash = (37 * hash) + TOTAL_AMOUNT_FIELD_NUMBER; + hash = (53 * hash) + getTotalAmount().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -547,6 +620,7 @@ private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { internalGetAmountFieldBuilder(); internalGetDownpaymentFieldBuilder(); + internalGetTotalAmountFieldBuilder(); } } @@ -567,6 +641,11 @@ public Builder clear() { } creditType_ = 0; annualPercentageRate_ = 0D; + totalAmount_ = null; + if (totalAmountBuilder_ != null) { + totalAmountBuilder_.dispose(); + totalAmountBuilder_ = null; + } return this; } @@ -624,6 +703,11 @@ private void buildPartial0(com.google.shopping.merchant.products.v1.ProductInsta result.annualPercentageRate_ = annualPercentageRate_; to_bitField0_ |= 0x00000008; } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.totalAmount_ = + totalAmountBuilder_ == null ? totalAmount_ : totalAmountBuilder_.build(); + to_bitField0_ |= 0x00000010; + } result.bitField0_ |= to_bitField0_; } @@ -655,6 +739,9 @@ public Builder mergeFrom(com.google.shopping.merchant.products.v1.ProductInstall if (other.hasAnnualPercentageRate()) { setAnnualPercentageRate(other.getAnnualPercentageRate()); } + if (other.hasTotalAmount()) { + mergeTotalAmount(other.getTotalAmount()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -712,6 +799,13 @@ public Builder mergeFrom( bitField0_ |= 0x00000010; break; } // case 41 + case 50: + { + input.readMessage( + internalGetTotalAmountFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1360,6 +1454,218 @@ public Builder clearAnnualPercentageRate() { return this; } + private com.google.shopping.type.Price totalAmount_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + totalAmountBuilder_; + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the totalAmount field is set. + */ + public boolean hasTotalAmount() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The totalAmount. + */ + public com.google.shopping.type.Price getTotalAmount() { + if (totalAmountBuilder_ == null) { + return totalAmount_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : totalAmount_; + } else { + return totalAmountBuilder_.getMessage(); + } + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTotalAmount(com.google.shopping.type.Price value) { + if (totalAmountBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + totalAmount_ = value; + } else { + totalAmountBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder setTotalAmount(com.google.shopping.type.Price.Builder builderForValue) { + if (totalAmountBuilder_ == null) { + totalAmount_ = builderForValue.build(); + } else { + totalAmountBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder mergeTotalAmount(com.google.shopping.type.Price value) { + if (totalAmountBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) + && totalAmount_ != null + && totalAmount_ != com.google.shopping.type.Price.getDefaultInstance()) { + getTotalAmountBuilder().mergeFrom(value); + } else { + totalAmount_ = value; + } + } else { + totalAmountBuilder_.mergeFrom(value); + } + if (totalAmount_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public Builder clearTotalAmount() { + bitField0_ = (bitField0_ & ~0x00000020); + totalAmount_ = null; + if (totalAmountBuilder_ != null) { + totalAmountBuilder_.dispose(); + totalAmountBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.shopping.type.Price.Builder getTotalAmountBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return internalGetTotalAmountFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + public com.google.shopping.type.PriceOrBuilder getTotalAmountOrBuilder() { + if (totalAmountBuilder_ != null) { + return totalAmountBuilder_.getMessageOrBuilder(); + } else { + return totalAmount_ == null + ? com.google.shopping.type.Price.getDefaultInstance() + : totalAmount_; + } + } + + /** + * + * + *
+     * Optional. Total amount the buyer has to pay, including interest.
+     * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetTotalAmountFieldBuilder() { + if (totalAmountBuilder_ == null) { + totalAmountBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getTotalAmount(), getParentForChildren(), isClean()); + totalAmount_ = null; + } + return totalAmountBuilder_; + } + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductInstallment) } diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallmentOrBuilder.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallmentOrBuilder.java index 278a8de96f1d..f2f459072bd2 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallmentOrBuilder.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductInstallmentOrBuilder.java @@ -179,4 +179,47 @@ public interface ProductInstallmentOrBuilder * @return The annualPercentageRate. */ double getAnnualPercentageRate(); + + /** + * + * + *
+   * Optional. Total amount the buyer has to pay, including interest.
+   * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return Whether the totalAmount field is set. + */ + boolean hasTotalAmount(); + + /** + * + * + *
+   * Optional. Total amount the buyer has to pay, including interest.
+   * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + * + * @return The totalAmount. + */ + com.google.shopping.type.Price getTotalAmount(); + + /** + * + * + *
+   * Optional. Total amount the buyer has to pay, including interest.
+   * 
+ * + * + * optional .google.shopping.type.Price total_amount = 6 [(.google.api.field_behavior) = OPTIONAL]; + * + */ + com.google.shopping.type.PriceOrBuilder getTotalAmountOrBuilder(); } diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductMinimumOrderValue.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductMinimumOrderValue.java new file mode 100644 index 000000000000..9cb37292450b --- /dev/null +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductMinimumOrderValue.java @@ -0,0 +1,1642 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/shopping/merchant/products/v1/products_common.proto +// Protobuf Java Version: 4.33.2 + +package com.google.shopping.merchant.products.v1; + +/** + * + * + *
+ * The minimum order value in the cart before the checkout is permitted.
+ * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductMinimumOrderValue} + */ +@com.google.protobuf.Generated +public final class ProductMinimumOrderValue extends com.google.protobuf.GeneratedMessage + implements + // @@protoc_insertion_point(message_implements:google.shopping.merchant.products.v1.ProductMinimumOrderValue) + ProductMinimumOrderValueOrBuilder { + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "ProductMinimumOrderValue"); + } + + // Use ProductMinimumOrderValue.newBuilder() to construct. + private ProductMinimumOrderValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private ProductMinimumOrderValue() { + country_ = ""; + service_ = ""; + surface_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.class, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder.class); + } + + /** + * + * + *
+   * The surface values to which the minimum order value applies.
+   * 
+ * + * Protobuf enum {@code google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface} + */ + public enum Surface implements com.google.protobuf.ProtocolMessageEnum { + /** + * + * + *
+     * Surface is unspecified.
+     * 
+ * + * SURFACE_UNSPECIFIED = 0; + */ + SURFACE_UNSPECIFIED(0), + /** + * + * + *
+     * Surface value to indicate online purchases.
+     * 
+ * + * ONLINE = 1; + */ + ONLINE(1), + /** + * + * + *
+     * Surface value to indicate local purchases.
+     * 
+ * + * LOCAL = 2; + */ + LOCAL(2), + /** + * + * + *
+     * Surface value to indicate online and local purchases.
+     * 
+ * + * ONLINE_LOCAL = 3; + */ + ONLINE_LOCAL(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 33, + /* patch= */ 2, + /* suffix= */ "", + "Surface"); + } + + /** + * + * + *
+     * Surface is unspecified.
+     * 
+ * + * SURFACE_UNSPECIFIED = 0; + */ + public static final int SURFACE_UNSPECIFIED_VALUE = 0; + + /** + * + * + *
+     * Surface value to indicate online purchases.
+     * 
+ * + * ONLINE = 1; + */ + public static final int ONLINE_VALUE = 1; + + /** + * + * + *
+     * Surface value to indicate local purchases.
+     * 
+ * + * LOCAL = 2; + */ + public static final int LOCAL_VALUE = 2; + + /** + * + * + *
+     * Surface value to indicate online and local purchases.
+     * 
+ * + * ONLINE_LOCAL = 3; + */ + public static final int ONLINE_LOCAL_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 Surface 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 Surface forNumber(int value) { + switch (value) { + case 0: + return SURFACE_UNSPECIFIED; + case 1: + return ONLINE; + case 2: + return LOCAL; + case 3: + return ONLINE_LOCAL; + 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 Surface findValueByNumber(int number) { + return Surface.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 com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.getDescriptor() + .getEnumTypes() + .get(0); + } + + private static final Surface[] VALUES = values(); + + public static Surface 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 Surface(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface) + } + + private int bitField0_; + public static final int COUNTRY_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object country_ = ""; + + /** + * + * + *
+   * Required. The [CLDR territory
+   * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+   * of the country to which an item will ship.
+   * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return Whether the country field is set. + */ + @java.lang.Override + public boolean hasCountry() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+   * Required. The [CLDR territory
+   * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+   * of the country to which an item will ship.
+   * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The country. + */ + @java.lang.Override + public java.lang.String getCountry() { + java.lang.Object ref = country_; + 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(); + country_ = s; + return s; + } + } + + /** + * + * + *
+   * Required. The [CLDR territory
+   * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+   * of the country to which an item will ship.
+   * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for country. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCountryBytes() { + java.lang.Object ref = country_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + country_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SERVICE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object service_ = ""; + + /** + * + * + *
+   * A free-form description of the service class or delivery speed.
+   * This should match the service value set for the Shipping attribute.
+   * See [service][google.shopping.merchant.products.v1.Shipping.service].
+   * 
+ * + * optional string service = 2; + * + * @return Whether the service field is set. + */ + @java.lang.Override + public boolean hasService() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+   * A free-form description of the service class or delivery speed.
+   * This should match the service value set for the Shipping attribute.
+   * See [service][google.shopping.merchant.products.v1.Shipping.service].
+   * 
+ * + * optional string service = 2; + * + * @return The service. + */ + @java.lang.Override + public java.lang.String getService() { + java.lang.Object ref = service_; + 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(); + service_ = s; + return s; + } + } + + /** + * + * + *
+   * A free-form description of the service class or delivery speed.
+   * This should match the service value set for the Shipping attribute.
+   * See [service][google.shopping.merchant.products.v1.Shipping.service].
+   * 
+ * + * optional string service = 2; + * + * @return The bytes for service. + */ + @java.lang.Override + public com.google.protobuf.ByteString getServiceBytes() { + java.lang.Object ref = service_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + service_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SURFACE_FIELD_NUMBER = 3; + private int surface_ = 0; + + /** + * + * + *
+   * The surface to which the minimum order value applies.
+   * Defaults to `ONLINE_LOCAL` if not configured.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return Whether the surface field is set. + */ + @java.lang.Override + public boolean hasSurface() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+   * The surface to which the minimum order value applies.
+   * Defaults to `ONLINE_LOCAL` if not configured.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return The enum numeric value on the wire for surface. + */ + @java.lang.Override + public int getSurfaceValue() { + return surface_; + } + + /** + * + * + *
+   * The surface to which the minimum order value applies.
+   * Defaults to `ONLINE_LOCAL` if not configured.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return The surface. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface getSurface() { + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface result = + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface.forNumber( + surface_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface.UNRECOGNIZED + : result; + } + + public static final int PRICE_FIELD_NUMBER = 4; + private com.google.shopping.type.Price price_; + + /** + * + * + *
+   * Required. The minimum cart or basket value before the checkout is
+   * permitted.
+   * 
+ * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the price field is set. + */ + @java.lang.Override + public boolean hasPrice() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+   * Required. The minimum cart or basket value before the checkout is
+   * permitted.
+   * 
+ * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The price. + */ + @java.lang.Override + public com.google.shopping.type.Price getPrice() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + /** + * + * + *
+   * Required. The minimum cart or basket value before the checkout is
+   * permitted.
+   * 
+ * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + @java.lang.Override + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + + 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.GeneratedMessage.writeString(output, 1, country_); + } + if (((bitField0_ & 0x00000002) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, service_); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeEnum(3, surface_); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(4, getPrice()); + } + 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.GeneratedMessage.computeStringSize(1, country_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, service_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, surface_); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPrice()); + } + 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.products.v1.ProductMinimumOrderValue)) { + return super.equals(obj); + } + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue other = + (com.google.shopping.merchant.products.v1.ProductMinimumOrderValue) obj; + + if (hasCountry() != other.hasCountry()) return false; + if (hasCountry()) { + if (!getCountry().equals(other.getCountry())) return false; + } + if (hasService() != other.hasService()) return false; + if (hasService()) { + if (!getService().equals(other.getService())) return false; + } + if (hasSurface() != other.hasSurface()) return false; + if (hasSurface()) { + if (surface_ != other.surface_) return false; + } + if (hasPrice() != other.hasPrice()) return false; + if (hasPrice()) { + if (!getPrice().equals(other.getPrice())) 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 (hasCountry()) { + hash = (37 * hash) + COUNTRY_FIELD_NUMBER; + hash = (53 * hash) + getCountry().hashCode(); + } + if (hasService()) { + hash = (37 * hash) + SERVICE_FIELD_NUMBER; + hash = (53 * hash) + getService().hashCode(); + } + if (hasSurface()) { + hash = (37 * hash) + SURFACE_FIELD_NUMBER; + hash = (53 * hash) + surface_; + } + if (hasPrice()) { + hash = (37 * hash) + PRICE_FIELD_NUMBER; + hash = (53 * hash) + getPrice().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue 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.products.v1.ProductMinimumOrderValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue 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.products.v1.ProductMinimumOrderValue parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue + parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue + parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.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.products.v1.ProductMinimumOrderValue 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.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * + * + *
+   * The minimum order value in the cart before the checkout is permitted.
+   * 
+ * + * Protobuf type {@code google.shopping.merchant.products.v1.ProductMinimumOrderValue} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder + implements + // @@protoc_insertion_point(builder_implements:google.shopping.merchant.products.v1.ProductMinimumOrderValue) + com.google.shopping.merchant.products.v1.ProductMinimumOrderValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.class, + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Builder.class); + } + + // Construct using + // com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + internalGetPriceFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + country_ = ""; + service_ = ""; + surface_ = 0; + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.shopping.merchant.products.v1.ProductsCommonProto + .internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_descriptor; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue + getDefaultInstanceForType() { + return com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.getDefaultInstance(); + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue build() { + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue buildPartial() { + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue result = + new com.google.shopping.merchant.products.v1.ProductMinimumOrderValue(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.country_ = country_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.service_ = service_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.surface_ = surface_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.price_ = priceBuilder_ == null ? price_ : priceBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.shopping.merchant.products.v1.ProductMinimumOrderValue) { + return mergeFrom((com.google.shopping.merchant.products.v1.ProductMinimumOrderValue) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue other) { + if (other + == com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.getDefaultInstance()) + return this; + if (other.hasCountry()) { + country_ = other.country_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasService()) { + service_ = other.service_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasSurface()) { + setSurfaceValue(other.getSurfaceValue()); + } + if (other.hasPrice()) { + mergePrice(other.getPrice()); + } + 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: + { + country_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: + { + service_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: + { + surface_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: + { + input.readMessage(internalGetPriceFieldBuilder().getBuilder(), extensionRegistry); + 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 country_ = ""; + + /** + * + * + *
+     * Required. The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return Whether the country field is set. + */ + public boolean hasCountry() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * + * + *
+     * Required. The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The country. + */ + public java.lang.String getCountry() { + java.lang.Object ref = country_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + country_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Required. The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for country. + */ + public com.google.protobuf.ByteString getCountryBytes() { + java.lang.Object ref = country_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + country_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Required. The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The country to set. + * @return This builder for chaining. + */ + public Builder setCountry(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + country_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return This builder for chaining. + */ + public Builder clearCountry() { + country_ = getDefaultInstance().getCountry(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The [CLDR territory
+     * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+     * of the country to which an item will ship.
+     * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @param value The bytes for country to set. + * @return This builder for chaining. + */ + public Builder setCountryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + country_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object service_ = ""; + + /** + * + * + *
+     * A free-form description of the service class or delivery speed.
+     * This should match the service value set for the Shipping attribute.
+     * See [service][google.shopping.merchant.products.v1.Shipping.service].
+     * 
+ * + * optional string service = 2; + * + * @return Whether the service field is set. + */ + public boolean hasService() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * + * + *
+     * A free-form description of the service class or delivery speed.
+     * This should match the service value set for the Shipping attribute.
+     * See [service][google.shopping.merchant.products.v1.Shipping.service].
+     * 
+ * + * optional string service = 2; + * + * @return The service. + */ + public java.lang.String getService() { + java.lang.Object ref = service_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + service_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * A free-form description of the service class or delivery speed.
+     * This should match the service value set for the Shipping attribute.
+     * See [service][google.shopping.merchant.products.v1.Shipping.service].
+     * 
+ * + * optional string service = 2; + * + * @return The bytes for service. + */ + public com.google.protobuf.ByteString getServiceBytes() { + java.lang.Object ref = service_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + service_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * A free-form description of the service class or delivery speed.
+     * This should match the service value set for the Shipping attribute.
+     * See [service][google.shopping.merchant.products.v1.Shipping.service].
+     * 
+ * + * optional string service = 2; + * + * @param value The service to set. + * @return This builder for chaining. + */ + public Builder setService(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + service_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * + * + *
+     * A free-form description of the service class or delivery speed.
+     * This should match the service value set for the Shipping attribute.
+     * See [service][google.shopping.merchant.products.v1.Shipping.service].
+     * 
+ * + * optional string service = 2; + * + * @return This builder for chaining. + */ + public Builder clearService() { + service_ = getDefaultInstance().getService(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * + * + *
+     * A free-form description of the service class or delivery speed.
+     * This should match the service value set for the Shipping attribute.
+     * See [service][google.shopping.merchant.products.v1.Shipping.service].
+     * 
+ * + * optional string service = 2; + * + * @param value The bytes for service to set. + * @return This builder for chaining. + */ + public Builder setServiceBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + service_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int surface_ = 0; + + /** + * + * + *
+     * The surface to which the minimum order value applies.
+     * Defaults to `ONLINE_LOCAL` if not configured.
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return Whether the surface field is set. + */ + @java.lang.Override + public boolean hasSurface() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * + * + *
+     * The surface to which the minimum order value applies.
+     * Defaults to `ONLINE_LOCAL` if not configured.
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return The enum numeric value on the wire for surface. + */ + @java.lang.Override + public int getSurfaceValue() { + return surface_; + } + + /** + * + * + *
+     * The surface to which the minimum order value applies.
+     * Defaults to `ONLINE_LOCAL` if not configured.
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @param value The enum numeric value on the wire for surface to set. + * @return This builder for chaining. + */ + public Builder setSurfaceValue(int value) { + surface_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * + * + *
+     * The surface to which the minimum order value applies.
+     * Defaults to `ONLINE_LOCAL` if not configured.
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return The surface. + */ + @java.lang.Override + public com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface getSurface() { + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface result = + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface.forNumber( + surface_); + return result == null + ? com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface.UNRECOGNIZED + : result; + } + + /** + * + * + *
+     * The surface to which the minimum order value applies.
+     * Defaults to `ONLINE_LOCAL` if not configured.
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @param value The surface to set. + * @return This builder for chaining. + */ + public Builder setSurface( + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + surface_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * + * + *
+     * The surface to which the minimum order value applies.
+     * Defaults to `ONLINE_LOCAL` if not configured.
+     * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return This builder for chaining. + */ + public Builder clearSurface() { + bitField0_ = (bitField0_ & ~0x00000004); + surface_ = 0; + onChanged(); + return this; + } + + private com.google.shopping.type.Price price_; + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + priceBuilder_; + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the price field is set. + */ + public boolean hasPrice() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @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(); + } + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + 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_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder setPrice(com.google.shopping.type.Price.Builder builderForValue) { + if (priceBuilder_ == null) { + price_ = builderForValue.build(); + } else { + priceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder mergePrice(com.google.shopping.type.Price value) { + if (priceBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) + && price_ != null + && price_ != com.google.shopping.type.Price.getDefaultInstance()) { + getPriceBuilder().mergeFrom(value); + } else { + price_ = value; + } + } else { + priceBuilder_.mergeFrom(value); + } + if (price_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public Builder clearPrice() { + bitField0_ = (bitField0_ & ~0x00000008); + price_ = null; + if (priceBuilder_ != null) { + priceBuilder_.dispose(); + priceBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.shopping.type.Price.Builder getPriceBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return internalGetPriceFieldBuilder().getBuilder(); + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + public com.google.shopping.type.PriceOrBuilder getPriceOrBuilder() { + if (priceBuilder_ != null) { + return priceBuilder_.getMessageOrBuilder(); + } else { + return price_ == null ? com.google.shopping.type.Price.getDefaultInstance() : price_; + } + } + + /** + * + * + *
+     * Required. The minimum cart or basket value before the checkout is
+     * permitted.
+     * 
+ * + * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder> + internalGetPriceFieldBuilder() { + if (priceBuilder_ == null) { + priceBuilder_ = + new com.google.protobuf.SingleFieldBuilder< + com.google.shopping.type.Price, + com.google.shopping.type.Price.Builder, + com.google.shopping.type.PriceOrBuilder>( + getPrice(), getParentForChildren(), isClean()); + price_ = null; + } + return priceBuilder_; + } + + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.ProductMinimumOrderValue) + } + + // @@protoc_insertion_point(class_scope:google.shopping.merchant.products.v1.ProductMinimumOrderValue) + private static final com.google.shopping.merchant.products.v1.ProductMinimumOrderValue + DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.shopping.merchant.products.v1.ProductMinimumOrderValue(); + } + + public static com.google.shopping.merchant.products.v1.ProductMinimumOrderValue + getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProductMinimumOrderValue 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.products.v1.ProductMinimumOrderValue + getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductMinimumOrderValueOrBuilder.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductMinimumOrderValueOrBuilder.java new file mode 100644 index 000000000000..2a784793bf8f --- /dev/null +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductMinimumOrderValueOrBuilder.java @@ -0,0 +1,209 @@ +/* + * Copyright 2026 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! +// NO CHECKED-IN PROTOBUF GENCODE +// source: google/shopping/merchant/products/v1/products_common.proto +// Protobuf Java Version: 4.33.2 + +package com.google.shopping.merchant.products.v1; + +@com.google.protobuf.Generated +public interface ProductMinimumOrderValueOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.shopping.merchant.products.v1.ProductMinimumOrderValue) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Required. The [CLDR territory
+   * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+   * of the country to which an item will ship.
+   * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return Whether the country field is set. + */ + boolean hasCountry(); + + /** + * + * + *
+   * Required. The [CLDR territory
+   * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+   * of the country to which an item will ship.
+   * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The country. + */ + java.lang.String getCountry(); + + /** + * + * + *
+   * Required. The [CLDR territory
+   * code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)
+   * of the country to which an item will ship.
+   * 
+ * + * optional string country = 1 [(.google.api.field_behavior) = REQUIRED]; + * + * @return The bytes for country. + */ + com.google.protobuf.ByteString getCountryBytes(); + + /** + * + * + *
+   * A free-form description of the service class or delivery speed.
+   * This should match the service value set for the Shipping attribute.
+   * See [service][google.shopping.merchant.products.v1.Shipping.service].
+   * 
+ * + * optional string service = 2; + * + * @return Whether the service field is set. + */ + boolean hasService(); + + /** + * + * + *
+   * A free-form description of the service class or delivery speed.
+   * This should match the service value set for the Shipping attribute.
+   * See [service][google.shopping.merchant.products.v1.Shipping.service].
+   * 
+ * + * optional string service = 2; + * + * @return The service. + */ + java.lang.String getService(); + + /** + * + * + *
+   * A free-form description of the service class or delivery speed.
+   * This should match the service value set for the Shipping attribute.
+   * See [service][google.shopping.merchant.products.v1.Shipping.service].
+   * 
+ * + * optional string service = 2; + * + * @return The bytes for service. + */ + com.google.protobuf.ByteString getServiceBytes(); + + /** + * + * + *
+   * The surface to which the minimum order value applies.
+   * Defaults to `ONLINE_LOCAL` if not configured.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return Whether the surface field is set. + */ + boolean hasSurface(); + + /** + * + * + *
+   * The surface to which the minimum order value applies.
+   * Defaults to `ONLINE_LOCAL` if not configured.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return The enum numeric value on the wire for surface. + */ + int getSurfaceValue(); + + /** + * + * + *
+   * The surface to which the minimum order value applies.
+   * Defaults to `ONLINE_LOCAL` if not configured.
+   * 
+ * + * + * optional .google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface surface = 3; + * + * + * @return The surface. + */ + com.google.shopping.merchant.products.v1.ProductMinimumOrderValue.Surface getSurface(); + + /** + * + * + *
+   * Required. The minimum cart or basket value before the checkout is
+   * permitted.
+   * 
+ * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return Whether the price field is set. + */ + boolean hasPrice(); + + /** + * + * + *
+   * Required. The minimum cart or basket value before the checkout is
+   * permitted.
+   * 
+ * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + * + * @return The price. + */ + com.google.shopping.type.Price getPrice(); + + /** + * + * + *
+   * Required. The minimum cart or basket value before the checkout is
+   * permitted.
+   * 
+ * + * optional .google.shopping.type.Price price = 4 [(.google.api.field_behavior) = REQUIRED]; + * + */ + com.google.shopping.type.PriceOrBuilder getPriceOrBuilder(); +} diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductOrBuilder.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductOrBuilder.java index 244688e51a00..4fe73b27c383 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductOrBuilder.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductOrBuilder.java @@ -530,4 +530,22 @@ public interface ProductOrBuilder */ com.google.shopping.merchant.products.v1.AutomatedDiscountsOrBuilder getAutomatedDiscountsOrBuilder(); + + /** + * + * + *
+   * Output only. Determines whether the product is
+   * [archived](https://support.google.com/merchants/answer/11909930).
+   *
+   * To archive or restore your product, visit Merchant Center products page.
+   * Learn also more about [offer
+   * visibility](https://support.google.com/merchants/answer/12488713).
+   * 
+ * + * bool archived = 14 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * @return The archived. + */ + boolean getArchived(); } diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsCommonProto.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsCommonProto.java index d74f51e6f861..9f5ce85bde0b 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsCommonProto.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsCommonProto.java @@ -52,6 +52,54 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_google_shopping_merchant_products_v1_ProductAttributes_CarrierShipping_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_shopping_merchant_products_v1_ShippingWeight_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable @@ -140,10 +188,18 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_shopping_merchant_products_v1_AutomatedDiscounts_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_google_shopping_merchant_products_v1_AutomatedDiscounts_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_PickupCost_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_PickupCost_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_shopping_merchant_products_v1_HandlingCutoffTime_descriptor; static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_google_shopping_merchant_products_v1_HandlingCutoffTime_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_descriptor; + static final com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; @@ -157,7 +213,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + ":google/shopping/merchant/products/v1/products_common.proto\022$google.shopping.me" + "rchant.products.v1\032\037google/api/field_beh" + "avior.proto\032\037google/protobuf/timestamp.proto\032" - + " google/shopping/type/types.proto\032\032google/type/interval.proto\"\214E\n" + + " google/shopping/type/types.proto\032\032google/type/interval.proto\"\223\200\001\n" + "\021ProductAttributes\022\036\n" + "\021identifier_exists\030\004 \001(\010H\000\210\001\001\022\026\n" + "\tis_bundle\030\005 \001(\010H\001\210\001\001\022\022\n" @@ -192,29 +248,29 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\007pattern\030\036 \001(\tH\023\210\001\001\022*\n" + "\005price\030\037 \001(\0132\033.google.shopping.type.Price\022:\n" + "\024maximum_retail_price\030\213\001 \001(\0132\033.google.shopping.type.Price\022M\n" - + "\013installment\030 \001(\01328.google.shoppin" - + "g.merchant.products.v1.ProductInstallment\022Q\n" - + "\021subscription_cost\030! \001(\01326.google.sh" - + "opping.merchant.products.v1.SubscriptionCost\022K\n" - + "\016loyalty_points\030\" \001(\01323.google.sh" - + "opping.merchant.products.v1.LoyaltyPoints\022O\n" - + "\020loyalty_programs\030\210\001 \003(\01324.google.sh" - + "opping.merchant.products.v1.LoyaltyProgram\022\025\n\r" + + "\013installment\030 \001(\01328.google.shoppi" + + "ng.merchant.products.v1.ProductInstallment\022Q\n" + + "\021subscription_cost\030! \001(\01326.google.s" + + "hopping.merchant.products.v1.SubscriptionCost\022K\n" + + "\016loyalty_points\030\" \001(\01323.google.s" + + "hopping.merchant.products.v1.LoyaltyPoints\022O\n" + + "\020loyalty_programs\030\210\001 \003(\01324.google.s" + + "hopping.merchant.products.v1.LoyaltyProgram\022\025\n\r" + "product_types\030# \003(\t\022/\n\n" + "sale_price\030$ \001(\0132\033.google.shopping.type.Price\0228\n" + "\031sale_price_effective_date\030% \001(\0132\025.google.type.Interval\022$\n" + "\027sell_on_google_quantity\030& \001(\003H\024\210\001\001\022N\n" - + "\016product_height\030w \001(\01326.goo" - + "gle.shopping.merchant.products.v1.ProductDimension\022N\n" - + "\016product_length\030x \001(\01326.goo" - + "gle.shopping.merchant.products.v1.ProductDimension\022M\n\r" - + "product_width\030y \001(\01326.goog" - + "le.shopping.merchant.products.v1.ProductDimension\022K\n" - + "\016product_weight\030z \001(\01323.goog" - + "le.shopping.merchant.products.v1.ProductWeight\022@\n" + + "\016product_height\030w \001(\01326.go" + + "ogle.shopping.merchant.products.v1.ProductDimension\022N\n" + + "\016product_length\030x \001(\01326.go" + + "ogle.shopping.merchant.products.v1.ProductDimension\022M\n\r" + + "product_width\030y \001(\01326.goo" + + "gle.shopping.merchant.products.v1.ProductDimension\022K\n" + + "\016product_weight\030z \001(\01323.goo" + + "gle.shopping.merchant.products.v1.ProductWeight\022@\n" + "\010shipping\030\' \003(\0132..google.shopping.merchant.products.v1.Shipping\022b\n" - + "\020carrier_shipping\030\216\001 \003(\0132G.google.shopping.me" - + "rchant.products.v1.ProductAttributes.CarrierShipping\022]\n" + + "\020carrier_shipping\030\216\001 \003(\0132G.google.shopping.m" + + "erchant.products.v1.ProductAttributes.CarrierShipping\022]\n" + "\027free_shipping_threshold\030\207\001" + " \003(\0132;.google.shopping.merchant.products.v1.FreeShippingThreshold\022M\n" + "\017shipping_weight\030(" @@ -227,10 +283,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + " \001(\01327.google.shopping.merchant.products.v1.ShippingDimension\022\036\n" + "\021max_handling_time\030, \001(\003H\025\210\001\001\022\036\n" + "\021min_handling_time\030- \001(\003H\026\210\001\001\022|\n" - + "\037shipping_handling_business_days\030\217\001 \003(\0132R.google.shopping.merc" - + "hant.products.v1.ProductAttributes.ShippingBusinessDaysConfig\022{\n" - + "\036shipping_transit_business_days\030\220\001 \003(\0132R.google.shopping" - + ".merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig\022X\n" + + "\037shipping_handling_business_days\030\217\001 \003(\0132R.google.shopping.mer" + + "chant.products.v1.ProductAttributes.ShippingBusinessDaysConfig\022{\n" + + "\036shipping_transit_business_days\030\220\001 \003(\0132R.google.shoppin" + + "g.merchant.products.v1.ProductAttributes.ShippingBusinessDaysConfig\022X\n" + "\025handling_cutoff_times\030\215\001" + " \003(\01328.google.shopping.merchant.products.v1.HandlingCutoffTime\022\033\n" + "\016shipping_label\030. \001(\tH\027\210\001\001\022!\n" @@ -242,17 +298,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "size_types\0302 \003(\0162..google.shopping.merchant.products.v1.SizeType\022a\n" + "\027energy_efficiency_class\0305" + " \001(\0162;.google.shopping.merchant.products.v1.EnergyEfficiencyClassH\034\210\001\001\022e\n" - + "\033min_energy_efficiency_class\0306 \001(\0162;.googl" - + "e.shopping.merchant.products.v1.EnergyEfficiencyClassH\035\210\001\001\022e\n" - + "\033max_energy_efficiency_class\0307 \001(\0162;.google.shopping.mercha" - + "nt.products.v1.EnergyEfficiencyClassH\036\210\001\001\022V\n" - + "\024unit_pricing_measure\0308 \001(\01328.google" - + ".shopping.merchant.products.v1.UnitPricingMeasure\022_\n" + + "\033min_energy_efficiency_class\0306 \001(\0162;.goog" + + "le.shopping.merchant.products.v1.EnergyEfficiencyClassH\035\210\001\001\022e\n" + + "\033max_energy_efficiency_class\0307 \001(\0162;.google.shopping.merch" + + "ant.products.v1.EnergyEfficiencyClassH\036\210\001\001\022V\n" + + "\024unit_pricing_measure\0308 \001(\01328.googl" + + "e.shopping.merchant.products.v1.UnitPricingMeasure\022_\n" + "\031unit_pricing_base_measure\0309" + " \001(\0132<.google.shopping.merchant.products.v1.UnitPricingBaseMeasure\022\026\n" + "\tmultipack\030: \001(\003H\037\210\001\001\022\031\n" - + "\014ads_grouping\030; \001(\tH \210\001\001\022\022\n" - + "\n" + + "\014ads_grouping\030; \001(\tH \210\001\001\022\022\n\n" + "ads_labels\030< \003(\t\022\031\n" + "\014ads_redirect\030= \001(\tH!\210\001\001\0227\n" + "\022cost_of_goods_sold\030> \001(\0132\033.google.shopping.type.Price\022L\n" @@ -268,37 +323,105 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "pickup_method\030P" + " \001(\01622.google.shopping.merchant.products.v1.PickupMethodH&\210\001\001\022H\n\n" + "pickup_sla\030Q" - + " \001(\0162/.google.shopping.merchant.products.v1.PickupSlaH\'\210\001\001\022\032\n\r" - + "link_template\030R \001(\tH(\210\001\001\022!\n" - + "\024mobile_link_template\030S \001(\tH)\210\001\001\022\033\n" - + "\016custom_label_0\030G \001(\tH*\210\001\001\022\033\n" - + "\016custom_label_1\030H \001(\tH+\210\001\001\022\033\n" - + "\016custom_label_2\030I \001(\tH,\210\001\001\022\033\n" - + "\016custom_label_3\030J \001(\tH-\210\001\001\022\033\n" - + "\016custom_label_4\030K \001(\tH.\210\001\001\022P\n" + + " \001(\0162/.google.shopping.merchant.products.v1.PickupSlaH\'\210\001\001\022P\n" + + "\013pickup_cost\030\254\001" + + " \001(\01320.google.shopping.merchant.products.v1.PickupCostB\003\340A\001H(\210\001\001\022\032\n\r" + + "link_template\030R \001(\tH)\210\001\001\022!\n" + + "\024mobile_link_template\030S \001(\tH*\210\001\001\022\033\n" + + "\016custom_label_0\030G \001(\tH+\210\001\001\022\033\n" + + "\016custom_label_1\030H \001(\tH,\210\001\001\022\033\n" + + "\016custom_label_2\030I \001(\tH-\210\001\001\022\033\n" + + "\016custom_label_3\030J \001(\tH.\210\001\001\022\033\n" + + "\016custom_label_4\030K \001(\tH/\210\001\001\022P\n" + "\025included_destinations\030L" + " \003(\01621.google.shopping.type.Destination.DestinationEnum\022P\n" + "\025excluded_destinations\030M" + " \003(\01621.google.shopping.type.Destination.DestinationEnum\022\'\n" + "\037shopping_ads_excluded_countries\030N \003(\t\022\037\n" - + "\022external_seller_id\030\001 \001(\tH/\210\001\001\022?\n" + + "\022external_seller_id\030\001 \001(\tH0\210\001\001\022?\n" + "\005pause\030\r" - + " \001(\0162+.google.shopping.merchant.products.v1.PauseH0\210\001\001\022\035\n" + + " \001(\0162+.google.shopping.merchant.products.v1.PauseH1\210\001\001\022\035\n" + "\025lifestyle_image_links\030\016 \003(\t\022q\n" - + "\"cloud_export_additional_properties\030T" - + " \003(\0132E.google.shopping.merchant.products.v1.CloudExportAdditionalProperties\022" - + " \n" - + "\022virtual_model_link\030\202\001 \001(\tH1\210\001\001\022R\n" - + "\016certifications\030{" - + " \003(\0132:.google.shopping.merchant.products.v1.ProductCertification\022U\n" - + "\020structured_title\030\204\001 \001(\01325.google.shoppin" - + "g.merchant.products.v1.StructuredTitleH2\210\001\001\022a\n" - + "\026structured_description\030\205\001 \001(\0132;.g" - + "oogle.shopping.merchant.products.v1.StructuredDescriptionH3\210\001\001\022;\n" + + "\"cloud_export_additional_properties\030T \003(\0132E.google.shopping.merchant.pr" + + "oducts.v1.CloudExportAdditionalProperties\022 \n" + + "\022virtual_model_link\030\202\001 \001(\tH2\210\001\001\022R\n" + + "\016certifications\030{ \003(\0132:.google.shopping.me" + + "rchant.products.v1.ProductCertification\022U\n" + + "\020structured_title\030\204\001 \001(\01325.google.shop" + + "ping.merchant.products.v1.StructuredTitleH3\210\001\001\022a\n" + + "\026structured_description\030\205\001 \001(\0132" + + ";.google.shopping.merchant.products.v1.StructuredDescriptionH4\210\001\001\022;\n" + "\026auto_pricing_min_price\030| \001(\0132\033.google.shopping.type.Price\022h\n" - + "\031sustainability_incentives\030\212\001 \003(\0132" - + "D.google.shopping.merchant.products.v1.ProductSustainabilityIncentive\022\031\n" - + "\013video_links\030\251\001 \003(\tB\003\340A\001\032l\n" + + "\031sustainability_incentives\030\212\001 \003" + + "(\0132D.google.shopping.merchant.products.v1.ProductSustainabilityIncentive\022\031\n" + + "\013video_links\030\251\001 \003(\tB\003\340A\001\022]\n" + + "\024minimum_order_values\030\222\001" + + " \003(\0132>.google.shopping.merchant.products.v1.ProductMinimumOrderValue\022\014\n" + + "\003vin\030\223\001 \001(\t\022\016\n" + + "\005model\030\224\001 \001(\t\022\r\n" + + "\004trim\030\225\001 \001(\t\022]\n\n" + + "body_style\030\226\001 \001(\0162H.google.shopping.m" + + "erchant.products.v1.ProductAttributes.VehicleBodyStyle\022\r\n" + + "\004year\030\227\001 \001(\003\022Q\n" + + "\007mileage\030\230\001" + + " \001(\0132?.google.shopping.merchant.products.v1.ProductAttributes.Mileage\022X\n" + + "\016electric_range\030\231\001 \001(\0132?.google.shopping.merc" + + "hant.products.v1.ProductAttributes.Mileage\022b\n" + + "\020fuel_consumption\030\232\001 \001(\0132G.google.s" + + "hopping.merchant.products.v1.ProductAttributes.FuelConsumption\022u\n" + + "#fuel_consumption_discharged_battery\030\233\001 \001(\0132G.google.sh" + + "opping.merchant.products.v1.ProductAttributes.FuelConsumption\022f\n" + + "\022energy_consumption\030\234\001 \001(\0132I.google.shopping.merchant.pr" + + "oducts.v1.ProductAttributes.EnergyConsumption\022\\\n\r" + + "co2_emissions\030\235\001 \001(\0132D.google.s" + + "hopping.merchant.products.v1.ProductAttributes.Co2Emissions\022\036\n" + + "\025date_first_registered\030\236\001 \001(\t\022S\n" + + "\006engine\030\237\001 \001(\0162B.google.sh" + + "opping.merchant.products.v1.ProductAttributes.EngineType\022f\n" + + "\022emissions_standard\030\240\001 \001(\0162I.google.shopping.merchant.product" + + "s.v1.ProductAttributes.EmissionsStandard\022\034\n" + + "\023certified_pre_owned\030\241\001 \001(\010\0222\n" + + "\014vehicle_msrp\030\242\001 \001(\0132\033.google.shopping.type.Price\022:\n" + + "\024vehicle_all_in_price\030\243\001 \001(\0132\033.google.shopping.type.Price\022e\n" + + "\022vehicle_price_type\030\244\001 \001(\0162H.google.shopping.merchant.p" + + "roducts.v1.ProductAttributes.VehiclePriceType\022.\n" + + "%vehicle_mandatory_inspection_included\030\246\001 \001(\010\0226\n" + + "\020vehicle_expenses\030\247\001 \001(\0132\033.google.shopping.type.Price\022S\n" + + "\010warranty\030\250\001" + + " \001(\0132@.google.shopping.merchant.products.v1.ProductAttributes.Warranty\022`\n" + + "\017display_address\030\263\001 \001(\0132F.google.shopping.m" + + "erchant.products.v1.ProductAttributes.DisplayAddress\022\026\n" + + "\010latitude\030\264\001 \001(\001H5\210\001\001\022\027\n" + + "\tlongitude\030\265\001 \001(\001H6\210\001\001\022\025\n" + + "\014neighborhood\030\266\001 \001(\t\022T\n" + + "\tunit_area\030\267\001 \001(\0132@.google.shoppi" + + "ng.merchant.products.v1.ProductAttributes.UnitArea\022\035\n" + + "\017number_of_units\030\270\001 \001(\003H7\210\001\001\022\026\n\r" + + "property_name\030\271\001 \001(\t\022 \n" + + "\022number_of_bedrooms\030\272\001 \001(\001H8\210\001\001\022!\n" + + "\023number_of_bathrooms\030\273\001 \001(\001H9\210\001\001\022\\\n\r" + + "property_type\030\274\001 \001(\0162D" + + ".google.shopping.merchant.products.v1.ProductAttributes.PropertyType\022`\n" + + "\017amenity_feature\030\275\001 \003(\0162F.google.shopping.merchan" + + "t.products.v1.ProductAttributes.AmenityFeature\022f\n" + + "\022utilities_included\030\276\001 \003(\0162I.go" + + "ogle.shopping.merchant.products.v1.ProductAttributes.UtilitiesIncluded\022V\n\n" + + "pet_policy\030\277\001 \001(\0132A.google.shopping.merchant.p" + + "roducts.v1.ProductAttributes.PetPolicy\022m\n" + + "\026specialty_housing_type\030\300\001 \001(\0162L.google" + + ".shopping.merchant.products.v1.ProductAttributes.SpecialtyHousingType\022X\n" + + "\013product_fee\030\301\001 \003(\0132B.google.shopping.merchant.p" + + "roducts.v1.ProductAttributes.ProductFee\022\031\n" + + "\013short_title\030\302\001 \001(\tH:\210\001\001\022n\n" + + "\025questions_and_answers\030\255\001 \003(\0132I.google.shopping.mer" + + "chant.products.v1.ProductAttributes.QuestionAndAnswerB\003\340A\001\022\035\n" + + "\017popularity_rank\030\256\001 \001(\002B\003\340A\001\022\036\n" + + "\020item_group_title\030\257\001 \001(\tB\003\340A\001\022\034\n" + + "\016document_links\030\260\001 \003(\tB\003\340A\001\022d\n" + + "\017variant_options\030\261\001 \003(\0132E.google.shopping.merc" + + "hant.products.v1.ProductAttributes.VariantOptionB\003\340A\001\022f\n" + + "\020related_products\030\262\001 \003(\013" + + "2F.google.shopping.merchant.products.v1.ProductAttributes.RelatedProductB\003\340A\001\032l\n" + "\032ShippingBusinessDaysConfig\022\024\n" + "\007country\030\001 \001(\tH\000\210\001\001\022\032\n\r" + "business_days\030\002 \001(\tH\001\210\001\001B\n\n" @@ -310,8 +433,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\013postal_code\030\003 \001(\tH\002\210\001\001\022\037\n" + "\022origin_postal_code\030\004 \001(\tH\003\210\001\001\0224\n\n" + "flat_price\030\005 \001(\0132\033.google.shopping.type.PriceH\004\210\001\001\022f\n\r" - + "carrier_price\030\006 \001(\0162J.google.shopping.merchant.product" - + "s.v1.ProductAttributes.CarrierPriceOptionH\005\210\001\001\022G\n" + + "carrier_price\030\006 \001(\0162J.google.shop" + + "ping.merchant.products.v1.ProductAttributes.CarrierPriceOptionH\005\210\001\001\022G\n" + "\035carrier_price_flat_adjustment\030\007" + " \001(\0132\033.google.shopping.type.PriceH\006\210\001\001\0220\n" + "#carrier_price_percentage_adjustment\030\010 \001(\001H\007\210\001\001\022\036\n" @@ -322,8 +445,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\210\001\001\022#\n" + "\026fixed_max_transit_time\030\014 \001(\003H\013\210\001\001\022a\n" + "\024carrier_transit_time\030\r" - + " \001(\0162>.google.shopping.merc" - + "hant.products.v1.CarrierTransitTimeOptionH\014\210\001\001B\n\n" + + " \001(\0162>" + + ".google.shopping.merchant.products.v1.CarrierTransitTimeOptionH\014\210\001\001B\n\n" + "\010_countryB\t\n" + "\007_regionB\016\n" + "\014_postal_codeB\025\n" @@ -336,7 +459,102 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\022_max_handling_timeB\031\n" + "\027_fixed_min_transit_timeB\031\n" + "\027_fixed_max_transit_timeB\027\n" - + "\025_carrier_transit_time\"\210\014\n" + + "\025_carrier_transit_time\032\254\001\n" + + "\007Mileage\022\022\n" + + "\005value\030\001 \001(\003H\000\210\001\001\022R\n" + + "\004unit\030\002" + + " \001(\0162D.google.shopping.merchant.products.v1.ProductAttributes.Mileage.Unit\"/\n" + + "\004Unit\022\024\n" + + "\020UNIT_UNSPECIFIED\020\000\022\t\n" + + "\005MILES\020\001\022\006\n" + + "\002KM\020\002B\010\n" + + "\006_value\032\310\001\n" + + "\017FuelConsumption\022\022\n" + + "\005value\030\001 \001(\001H\000\210\001\001\022Z\n" + + "\004unit\030\002 \001(\0162L.google.sh" + + "opping.merchant.products.v1.ProductAttributes.FuelConsumption.Unit\";\n" + + "\004Unit\022\024\n" + + "\020UNIT_UNSPECIFIED\020\000\022\r\n" + + "\tLPER100KM\020\001\022\016\n\n" + + "KGPER100KM\020\002B\010\n" + + "\006_value\032\276\001\n" + + "\021EnergyConsumption\022\022\n" + + "\005value\030\001 \001(\001H\000\210\001\001\022\\\n" + + "\004unit\030\002 \001(\0162N.goog" + + "le.shopping.merchant.products.v1.ProductAttributes.EnergyConsumption.Unit\"-\n" + + "\004Unit\022\024\n" + + "\020UNIT_UNSPECIFIED\020\000\022\017\n" + + "\013KWHPER100KM\020\001B\010\n" + + "\006_value\032\257\001\n" + + "\014Co2Emissions\022\022\n" + + "\005value\030\001 \001(\003H\000\210\001\001\022W\n" + + "\004unit\030\002 \001(\0162I.google.shopping." + + "merchant.products.v1.ProductAttributes.Co2Emissions.Unit\"(\n" + + "\004Unit\022\024\n" + + "\020UNIT_UNSPECIFIED\020\000\022\n\n" + + "\006GPERKM\020\001B\010\n" + + "\006_value\032n\n" + + "\010Warranty\022\020\n" + + "\010duration\030\001 \001(\003\022P\n" + + "\007mileage\030\002 \001(\0132?.go" + + "ogle.shopping.merchant.products.v1.ProductAttributes.Mileage\032\362\001\n\n" + + "ProductFee\022X\n" + + "\004type\030\001 \001(\0162J.google.shopping.merchant.pro" + + "ducts.v1.ProductAttributes.ProductFee.FeeType\022+\n" + + "\006amount\030\002 \001(\0132\033.google.shopping.type.Price\"]\n" + + "\007FeeType\022\030\n" + + "\024FEE_TYPE_UNSPECIFIED\020\000\022\r\n" + + "\tADMIN_FEE\020\001\022\023\n" + + "\017APPLICATION_FEE\020\002\022\024\n" + + "\020SECURITY_DEPOSIT\020\003\032o\n" + + "\016DisplayAddress\022\025\n\r" + + "street_number\030\001 \001(\t\022\023\n" + + "\013street_name\030\002 \001(\t\022\014\n" + + "\004city\030\003 \001(\t\022\016\n" + + "\006region\030\004 \001(\t\022\023\n" + + "\013postal_code\030\005 \001(\t\032\256\001\n" + + "\010UnitArea\022\022\n" + + "\005value\030\001 \001(\001H\000\210\001\001\022S\n" + + "\004unit\030\002 \001(\0162E.google.shopp" + + "ing.merchant.products.v1.ProductAttributes.UnitArea.Unit\"/\n" + + "\004Unit\022\024\n" + + "\020UNIT_UNSPECIFIED\020\000\022\007\n" + + "\003SQM\020\001\022\010\n" + + "\004SQFT\020\002B\010\n" + + "\006_value\032\316\001\n" + + "\tPetPolicy\022\024\n" + + "\014pets_allowed\030\001 \001(\010\022\\\n" + + "\tpet_types\030\002 \003(\0162I.google.shopping.merchant.pr" + + "oducts.v1.ProductAttributes.PetPolicy.PetType\"M\n" + + "\007PetType\022\030\n" + + "\024PET_TYPE_UNSPECIFIED\020\000\022\010\n" + + "\004CATS\020\001\022\016\n\n" + + "LARGE_DOGS\020\002\022\016\n\n" + + "SMALL_DOGS\020\003\032?\n" + + "\021QuestionAndAnswer\022\025\n" + + "\010question\030\001 \001(\tB\003\340A\002\022\023\n" + + "\006answer\030\002 \001(\tB\003\340A\002\0326\n\r" + + "VariantOption\022\021\n" + + "\004name\030\001 \001(\tB\003\340A\002\022\022\n" + + "\005value\030\002 \001(\tB\003\340A\002\032\333\003\n" + + "\016RelatedProduct\022w\n" + + "\021relationship_type\030\001 \001(\0162W.google.shopping.merchant.p" + + "roducts.v1.ProductAttributes.RelatedProduct.RelationshipTypeB\003\340A\002\022c\n" + + "\007id_type\030\002 \001(\0162M.google.shopping.merchant.products.v" + + "1.ProductAttributes.RelatedProduct.IdTypeB\003\340A\002\022\017\n" + + "\002id\030\003 \001(\tB\003\340A\002\"\244\001\n" + + "\020RelationshipType\022!\n" + + "\035RELATIONSHIP_TYPE_UNSPECIFIED\020\000\022\017\n" + + "\013PART_OF_SET\020\001\022\021\n\r" + + "REQUIRED_PART\020\002\022\025\n" + + "\021OFTEN_BOUGHT_WITH\020\003\022\016\n\n" + + "SUBSTITUTE\020\004\022\023\n" + + "\017DIFFERENT_BRAND\020\005\022\r\n" + + "\tACCESSORY\020\006\"3\n" + + "\006IdType\022\027\n" + + "\023ID_TYPE_UNSPECIFIED\020\000\022\010\n" + + "\004GTIN\020\001\022\006\n" + + "\002ID\020\002\"\210\014\n" + "\022CarrierPriceOption\022$\n" + " CARRIER_PRICE_OPTION_UNSPECIFIED\020\000\022\032\n" + "\026AUSTRALIA_POST_REGULAR\020\001\022\032\n" @@ -401,7 +619,140 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\017USPS_MEDIA_MAIL\020:\022 \n" + "\034USPS_GROUND_ADVANTAGE_RETAIL\020;\022\026\n" + "\022USPS_PRIORITY_MAIL\020<\022$\n" - + " USPS_GROUND_ADVANTAGE_COMMERCIAL\020=B\024\n" + + " USPS_GROUND_ADVANTAGE_COMMERCIAL\020=\"\266\004\n" + + "\020VehicleBodyStyle\022\"\n" + + "\036VEHICLE_BODY_STYLE_UNSPECIFIED\020\000\022\r\n" + + "\tATV_SPORT\020\001\022\017\n" + + "\013ATV_TOURING\020\002\022\017\n" + + "\013ATV_UTILITY\020\003\022\r\n" + + "\tATV_YOUTH\020\004\022\014\n" + + "\010CITY_CAR\020\005\022\025\n" + + "\021CLASS_A_MOTORHOME\020\006\022\025\n" + + "\021CLASS_B_MOTORHOME\020\007\022\025\n" + + "\021CLASS_C_MOTORHOME\020\010\022\017\n" + + "\013COMPACT_SUV\020\t\022\017\n" + + "\013CONVERTIBLE\020\n" + + "\022\t\n" + + "\005COUPE\020\013\022\r\n" + + "\tCROSSOVER\020\014\022\017\n" + + "\013FIFTH_WHEEL\020\r" + + "\022\021\n\r" + + "FULL_SIZE_VAN\020\016\022\r\n" + + "\tHATCHBACK\020\017\022\r\n" + + "\tLIMOUSINE\020\020\022\013\n" + + "\007MINIVAN\020\021\022\r\n" + + "\tNOTCHBACK\020\022\022\021\n\r" + + "POP_UP_CAMPER\020\023\022\t\n" + + "\005SEDAN\020\024\022\020\n" + + "\014SIDE_BY_SIDE\020\025\022\021\n\r" + + "STATION_WAGON\020\026\022\007\n" + + "\003SUV\020\027\022\022\n" + + "\016TRAVEL_TRAILER\020\030\022\t\n" + + "\005TRUCK\020\031\022\020\n" + + "\014TRUCK_CAMPER\020\032\022\007\n" + + "\003UTE\020\033\022\034\n" + + "\030UTV_RECREATIONAL_UTILITY\020\034\022\r\n" + + "\tUTV_SPORT\020\035\022\017\n" + + "\013UTV_UTILITY\020\036\022\r\n" + + "\tUTV_YOUTH\020\037\"\243\001\n\n" + + "EngineType\022\033\n" + + "\027ENGINE_TYPE_UNSPECIFIED\020\000\022\014\n" + + "\010GASOLINE\020\001\022\n\n" + + "\006DIESEL\020\002\022\014\n" + + "\010ELECTRIC\020\003\022\n\n" + + "\006HYBRID\020\004\022\022\n" + + "\016PLUG_IN_HYBRID\020\005\022\017\n" + + "\013NATURAL_GAS\020\006\022\007\n" + + "\003LPG\020\007\022\013\n" + + "\007METHANE\020\010\022\t\n" + + "\005OTHER\020\t\"\316\001\n" + + "\021EmissionsStandard\022\"\n" + + "\036EMISSIONS_STANDARD_UNSPECIFIED\020\000\022\022\n" + + "\016ZERO_EMISSIONS\020\001\022\t\n" + + "\005EURO1\020\002\022\t\n" + + "\005EURO2\020\003\022\t\n" + + "\005EURO3\020\004\022\t\n" + + "\005EURO4\020\005\022\t\n" + + "\005EURO5\020\006\022\n\n" + + "\006EURO5B\020\007\022\t\n" + + "\005EURO6\020\010\022\n\n" + + "\006EURO6C\020\t\022\n\n" + + "\006EURO6D\020\n" + + "\022\017\n" + + "\013EURO6D_TEMP\020\013\022\n\n" + + "\006EURO6E\020\014\"\276\001\n" + + "\020VehiclePriceType\022\"\n" + + "\036VEHICLE_PRICE_TYPE_UNSPECIFIED\020\000\022\020\n" + + "\014ALL_IN_PRICE\020\001\022\024\n" + + "\020DRIVE_AWAY_PRICE\020\002\022\036\n" + + "\032ESTIMATED_DRIVE_AWAY_PRICE\020\003\022&\n" + + "\"EXCLUDING_GOVERNMENT_CHARGES_PRICE\020\004\022\026\n" + + "\022VEHICLE_BASE_PRICE\020\005\"\264\001\n" + + "\014PropertyType\022\035\n" + + "\031PROPERTY_TYPE_UNSPECIFIED\020\000\022\r\n" + + "\tAPARTMENT\020\001\022\t\n" + + "\005CONDO\020\002\022\010\n" + + "\004LOFT\020\003\022\025\n" + + "\021MULTI_FAMILY_HOME\020\004\022\r\n" + + "\tPENTHOUSE\020\005\022\010\n" + + "\004ROOM\020\006\022\026\n" + + "\022SINGLE_FAMILY_HOME\020\007\022\n\n" + + "\006STUDIO\020\010\022\r\n" + + "\tTOWNHOUSE\020\t\"\220\005\n" + + "\016AmenityFeature\022\037\n" + + "\033AMENITY_FEATURE_UNSPECIFIED\020\000\022\013\n" + + "\007BALCONY\020\001\022\014\n" + + "\010BASEMENT\020\002\022\024\n" + + "\020BASKETBALL_COURT\020\003\022\020\n" + + "\014BIKE_STORAGE\020\004\022\016\n\n" + + "CENTRAL_AC\020\005\022\016\n\n" + + "DISHWASHER\020\006\022\014\n" + + "\010DOG_PARK\020\007\022\014\n" + + "\010ELEVATOR\020\010\022\017\n" + + "\013EV_CHARGING\020\t\022\016\n\n" + + "FENCED_LOT\020\n" + + "\022\r\n" + + "\tFIREPLACE\020\013\022\022\n" + + "\016FITNESS_CENTER\020\014\022\026\n" + + "\022FORCED_AIR_HEATING\020\r" + + "\022\023\n" + + "\017FULLY_FURNISHED\020\016\022\n\n" + + "\006GARAGE\020\017\022\023\n" + + "\017GATED_COMMUNITY\020\020\022\023\n" + + "\017HARDWOOD_FLOORS\020\021\022\027\n" + + "\023HIGH_SPEED_INTERNET\020\022\022\014\n" + + "\010INTERCOM\020\023\022\030\n" + + "\024IN_UNIT_WASHER_DRYER\020\024\022\013\n" + + "\007KITCHEN\020\025\022\021\n\r" + + "LARGE_CLOSETS\020\026\022\024\n" + + "\020MULTISPORT_COURT\020\027\022\022\n" + + "\016ONSITE_LAUNDRY\020\030\022\022\n" + + "\016OUTDOOR_LOUNGE\020\031\022\013\n" + + "\007PARKING\020\032\022\t\n" + + "\005PATIO\020\033\022\024\n" + + "\020PICKLEBALL_COURT\020\034\022\010\n" + + "\004POOL\020\035\022\020\n" + + "\014REFRIGERATOR\020\036\022\020\n" + + "\014SOCCER_FIELD\020\037\022\020\n" + + "\014TENNIS_COURT\020 \022\023\n" + + "\017WALK_IN_CLOSETS\020!\022\025\n" + + "\021WHEELCHAIR_ACCESS\020\"\"u\n" + + "\021UtilitiesIncluded\022\"\n" + + "\036UTILITIES_INCLUDED_UNSPECIFIED\020\000\022\017\n" + + "\013ELECTRICITY\020\001\022\007\n" + + "\003GAS\020\002\022\014\n" + + "\010INTERNET\020\003\022\t\n" + + "\005TRASH\020\004\022\t\n" + + "\005WATER\020\005\"\224\001\n" + + "\024SpecialtyHousingType\022&\n" + + "\"SPECIALTY_HOUSING_TYPE_UNSPECIFIED\020\000\022\r\n" + + "\tCORPORATE\020\001\022\016\n\n" + + "LOW_INCOME\020\002\022\014\n" + + "\010MILITARY\020\003\022\n" + + "\n" + + "\006SENIOR\020\004\022\016\n\n" + + "SHORT_TERM\020\005\022\013\n" + + "\007STUDENT\020\006B\024\n" + "\022_identifier_existsB\014\n\n" + "_is_bundleB\010\n" + "\006_titleB\016\n" @@ -429,7 +780,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\024_return_policy_labelB\025\n" + "\023_transit_time_labelB\007\n" + "\005_sizeB\016\n" - + "\014_size_systemB\032\n" + + "\014_siz", + "e_systemB\032\n" + "\030_energy_efficiency_classB\036\n" + "\034_min_energy_efficiency_classB\036\n" + "\034_max_energy_efficiency_classB\014\n\n" @@ -441,7 +793,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\021_display_ads_linkB\024\n" + "\022_display_ads_valueB\020\n" + "\016_pickup_methodB\r\n" - + "\013_pickup_slaB\020\n" + + "\013_pickup_slaB\016\n" + + "\014_pickup_costB\020\n" + "\016_link_templateB\027\n" + "\025_mobile_link_templateB\021\n" + "\017_custom_label_0B\021\n" @@ -453,7 +806,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\006_pauseB\025\n" + "\023_virtual_model_linkB\023\n" + "\021_structured_titleB\031\n" - + "\027_structured_description\"-\n" + + "\027_structured_descriptionB\013\n" + + "\t_latitudeB\014\n\n" + + "_longitudeB\022\n" + + "\020_number_of_unitsB\025\n" + + "\023_number_of_bedroomsB\026\n" + + "\024_number_of_bathroomsB\016\n" + + "\014_short_title\"-\n" + "\016ShippingWeight\022\r\n" + "\005value\030\001 \001(\001\022\014\n" + "\004unit\030\002 \001(\t\"0\n" @@ -470,7 +829,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\006period\030\001 \001(\01628.goog" + "le.shopping.merchant.products.v1.SubscriptionPeriod\022\025\n\r" + "period_length\030\002 \001(\003\022+\n" - + "\006amount\030\003 \001(\0132\033.google.shopping.type.Price\"\271\002\n" + + "\006amount\030\003 \001(\0132\033.google.shopping.type.Price\"\207\003\n" + "\022ProductInstallment\022\016\n" + "\006months\030\001 \001(\003\022+\n" + "\006amount\030\002 \001(\0132\033.google.shopping.type.Price\0225\n" @@ -478,10 +837,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + " \001(\0132\033.google.shopping.type.PriceH\000\210\001\001\022J\n" + "\013credit_type\030\004 \001(\0162" + "0.google.shopping.merchant.products.v1.CreditTypeH\001\210\001\001\022(\n" - + "\026annual_percentage_rate\030\005 \001(\001B\003\340A\001H\002\210\001\001B\016\n" + + "\026annual_percentage_rate\030\005 \001(\001B\003\340A\001H\002\210\001\001\022;\n" + + "\014total_amount\030\006" + + " \001(\0132\033.google.shopping.type.PriceB\003\340A\001H\003\210\001\001B\016\n" + "\014_downpaymentB\016\n" + "\014_credit_typeB\031\n" - + "\027_annual_percentage_rate\"B\n\r" + + "\027_annual_percentage_rateB\017\n\r" + + "_total_amount\"B\n\r" + "LoyaltyPoints\022\014\n" + "\004name\030\001 \001(\t\022\024\n" + "\014points_value\030\002 \001(\003\022\r\n" @@ -502,7 +864,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\030_cashback_for_future_useB\021\n" + "\017_loyalty_pointsB\036\n" + "\034_member_price_effective_dateB\021\n" - + "\017_shipping_label\"\203\004\n" + + "\017_shipping_label\"\310\004\n" + "\010Shipping\022*\n" + "\005price\030\001 \001(\0132\033.google.shopping.type.Price\022\017\n" + "\007country\030\002 \001(\t\022\016\n" @@ -518,7 +880,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\020max_transit_time\030\013 \001(\003H\003\210\001\001\022!\n" + "\024handling_cutoff_time\030\014 \001(\tH\004\210\001\001\022%\n" + "\030handling_cutoff_timezone\030\r" - + " \001(\tH\005\210\001\001B\024\n" + + " \001(\tH\005\210\001\001\022\"\n" + + "\025loyalty_program_label\030\016 \001(\tB\003\340A\001\022\037\n" + + "\022loyalty_tier_label\030\017 \001(\tB\003\340A\001B\024\n" + "\022_min_handling_timeB\024\n" + "\022_max_handling_timeB\023\n" + "\021_min_transit_timeB\023\n" @@ -536,10 +900,10 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\016attribute_name\030\002 \001(\t\022\027\n" + "\017attribute_value\030\003 \001(\t\"\371\002\n" + "\024ProductCertification\022b\n" - + "\027certification_authority\030\001 \001(\0162<" - + ".google.shopping.merchant.products.v1.CertificationAuthorityH\000\210\001\001\022X\n" - + "\022certification_name\030\002" - + " \001(\01627.google.shopping.merchant.products.v1.CertificationNameH\001\210\001\001\022\037\n" + + "\027certification_authority\030\001 \001(\0162<.google.shopp" + + "ing.merchant.products.v1.CertificationAuthorityH\000\210\001\001\022X\n" + + "\022certification_name\030\002 \001(\016" + + "27.google.shopping.merchant.products.v1.CertificationNameH\001\210\001\001\022\037\n" + "\022certification_code\030\003 \001(\tH\002\210\001\001\022 \n" + "\023certification_value\030\004 \001(\tH\003\210\001\001B\032\n" + "\030_certification_authorityB\025\n" @@ -547,14 +911,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\023_certification_codeB\026\n" + "\024_certification_value\"\246\001\n" + "\017StructuredTitle\022Y\n" - + "\023digital_source_type\030\001" - + " \001(\01627.google.shopping.merchant.products.v1.DigitalSourceTypeH\000\210\001\001\022\024\n" + + "\023digital_source_type\030\001 \001(\01627.g" + + "oogle.shopping.merchant.products.v1.DigitalSourceTypeH\000\210\001\001\022\024\n" + "\007content\030\002 \001(\tH\001\210\001\001B\026\n" + "\024_digital_source_typeB\n\n" + "\010_content\"\254\001\n" + "\025StructuredDescription\022Y\n" - + "\023digital_source_type\030\001 \001(\01627.google.shoppi" - + "ng.merchant.products.v1.DigitalSourceTypeH\000\210\001\001\022\024\n" + + "\023digital_source_type\030\001" + + " \001(\01627.google.shopping.merchant.products.v1.DigitalSourceTypeH\000\210\001\001\022\024\n" + "\007content\030\002 \001(\tH\001\210\001\001B\026\n" + "\024_digital_source_typeB\n\n" + "\010_content\"9\n" @@ -565,28 +929,28 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\005value\030\001 \001(\001B\003\340A\002\022\021\n" + "\004unit\030\002 \001(\tB\003\340A\002\"\353\007\n\r" + "ProductStatus\022c\n" - + "\024destination_statuses\030\003 \003(\0132E.google.sho" - + "pping.merchant.products.v1.ProductStatus.DestinationStatus\022]\n" - + "\021item_level_issues\030\004" - + " \003(\0132B.google.shopping.merchant.products.v1.ProductStatus.ItemLevelIssue\0221\n\r" + + "\024destination_statuses\030\003 \003(\0132E.google.shopping.merchan" + + "t.products.v1.ProductStatus.DestinationStatus\022]\n" + + "\021item_level_issues\030\004 \003(\0132B.googl" + + "e.shopping.merchant.products.v1.ProductStatus.ItemLevelIssue\0221\n\r" + "creation_date\030\005 \001(\0132\032.google.protobuf.Timestamp\0224\n" + "\020last_update_date\030\006 \001(\0132\032.google.protobuf.Timestamp\022:\n" + "\026google_expiration_date\030\007" + " \001(\0132\032.google.protobuf.Timestamp\032\301\001\n" + "\021DestinationStatus\022V\n" - + "\021reporting_context\030\001" - + " \001(\0162;.google.shopping.type.ReportingContext.ReportingContextEnum\022\032\n" + + "\021reporting_context\030\001 \001(\0162;.goo" + + "gle.shopping.type.ReportingContext.ReportingContextEnum\022\032\n" + "\022approved_countries\030\002 \003(\t\022\031\n" + "\021pending_countries\030\003 \003(\t\022\035\n" + "\025disapproved_countries\030\004 \003(\t\032\254\003\n" + "\016ItemLevelIssue\022\014\n" + "\004code\030\001 \001(\t\022]\n" - + "\010severity\030\002 \001(\0162K.google.shopping.merchant.product" - + "s.v1.ProductStatus.ItemLevelIssue.Severity\022\022\n\n" + + "\010severity\030\002 \001(\0162K.googl" + + "e.shopping.merchant.products.v1.ProductStatus.ItemLevelIssue.Severity\022\022\n\n" + "resolution\030\003 \001(\t\022\021\n" + "\tattribute\030\004 \001(\t\022V\n" - + "\021reporting_context\030\005 \001(\0162;.google.sh" - + "opping.type.ReportingContext.ReportingContextEnum\022\023\n" + + "\021reporting_context\030\005" + + " \001(\0162;.google.shopping.type.ReportingContext.ReportingContextEnum\022\023\n" + "\013description\030\006 \001(\t\022\016\n" + "\006detail\030\007 \001(\t\022\025\n\r" + "documentation\030\010 \001(\t\022\034\n" @@ -613,8 +977,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\036ProductSustainabilityIncentive\022-\n" + "\006amount\030\002 \001(\0132\033.google.shopping.type.PriceH\000\022\024\n\n" + "percentage\030\003 \001(\001H\000\022\\\n" - + "\004type\030\001 \001(\0162I.google.shopping.merchant.products.v1.P" - + "roductSustainabilityIncentive.TypeH\001\210\001\001\"F\n" + + "\004type\030\001 \001(\0162I.google.shop" + + "ping.merchant.products.v1.ProductSustainabilityIncentive.TypeH\001\210\001\001\"F\n" + "\004Type\022\024\n" + "\020TYPE_UNSPECIFIED\020\000\022\021\n\r" + "EV_TAX_CREDIT\020\001\022\025\n" @@ -624,7 +988,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\022AutomatedDiscounts\0220\n" + "\013prior_price\030\001 \001(\0132\033.google.shopping.type.Price\022<\n" + "\027prior_price_progressive\030\002 \001(\0132\033.google.shopping.type.Price\022.\n" - + "\tgad_price\030\003 \001(\0132\033.google.shopping.type.Price\"\340\001\n" + + "\tgad_price\030\003 \001(\0132\033.google.shopping.type.Price\"\246\001\n\n" + + "PickupCost\0228\n" + + "\tflat_rate\030\001" + + " \001(\0132\033.google.shopping.type.PriceB\003\340A\002H\000\210\001\001\022=\n" + + "\016free_threshold\030\002" + + " \001(\0132\033.google.shopping.type.PriceB\003\340A\001H\001\210\001\001B\014\n\n" + + "_flat_rateB\021\n" + + "\017_free_threshold\"\340\001\n" + "\022HandlingCutoffTime\022\024\n" + "\007country\030\001 \001(\tH\000\210\001\001\022\030\n" + "\013cutoff_time\030\002 \001(\tH\001\210\001\001\022\034\n" @@ -633,7 +1004,24 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\010_countryB\016\n" + "\014_cutoff_timeB\022\n" + "\020_cutoff_timezoneB \n" - + "\036_disable_delivery_after_cutoff*X\n" + + "\036_disable_delivery_after_cutoff\"\332\002\n" + + "\030ProductMinimumOrderValue\022\031\n" + + "\007country\030\001 \001(\tB\003\340A\002H\000\210\001\001\022\024\n" + + "\007service\030\002 \001(\tH\001\210\001\001\022\\\n" + + "\007surface\030\003 \001(\0162F.google." + + "shopping.merchant.products.v1.ProductMinimumOrderValue.SurfaceH\002\210\001\001\0224\n" + + "\005price\030\004 \001" + + "(\0132\033.google.shopping.type.PriceB\003\340A\002H\003\210\001\001\"K\n" + + "\007Surface\022\027\n" + + "\023SURFACE_UNSPECIFIED\020\000\022\n\n" + + "\006ONLINE\020\001\022\t\n" + + "\005LOCAL\020\002\022\020\n" + + "\014ONLINE_LOCAL\020\003B\n" + + "\n" + + "\010_countryB\n\n" + + "\010_serviceB\n\n" + + "\010_surfaceB\010\n" + + "\006_price*X\n" + "\022SubscriptionPeriod\022#\n" + "\037SUBSCRIPTION_PERIOD_UNSPECIFIED\020\000\022\t\n" + "\005MONTH\020\001\022\010\n" @@ -764,26 +1152,30 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\021TNT_ESSENTIEL_24H\020\022\022\035\n" + "\031TNT_ESSENTIEL_FLEXIBILITE\020\023\022\020\n" + "\014FEDEX_GROUND\020\024\022\027\n" - + "\023FED", - "EX_HOME_DELIVERY\020\025\022\027\n\023FEDEX_EXPRESS_SAVE" - + "R\020\026\022\031\n\025FEDEX_FIRST_OVERNIGHT\020\027\022\034\n\030FEDEX_" - + "PRIORITY_OVERNIGHT\020\030\022\034\n\030FEDEX_STANDARD_O" - + "VERNIGHT\020\031\022\016\n\nFEDEX_2DAY\020\032\022\023\n\017UPS_2ND_DA" - + "Y_AIR\020\033\022\022\n\016UPS_2ND_DAY_AM\020\034\022\024\n\020UPS_3_DAY" - + "_SELECT\020\035\022\016\n\nUPS_GROUND\020\036\022\024\n\020UPS_NEXT_DA" - + "Y_AIR\020\037\022\035\n\031UPS_NEXT_DAY_AIR_EARLY_AM\020 \022\032" - + "\n\026UPS_NEXT_DAY_AIR_SAVER\020!\022\036\n\032USPS_PRIOR" - + "ITY_MAIL_EXPRESS\020\"\022\023\n\017USPS_MEDIA_MAIL\020#\022" - + " \n\034USPS_GROUND_ADVANTAGE_RETAIL\020$\022\026\n\022USP" - + "S_PRIORITY_MAIL\020%\022$\n USPS_GROUND_ADVANTA" - + "GE_COMMERCIAL\020&\022\031\n\025USPS_FIRST_CLASS_MAIL" - + "\020\'B\206\002\n(com.google.shopping.merchant.prod" - + "ucts.v1B\023ProductsCommonProtoP\001ZJcloud.go" - + "ogle.com/go/shopping/merchant/products/a" - + "piv1/productspb;productspb\252\002$Google.Shop" - + "ping.Merchant.Products.V1\312\002$Google\\Shopp" - + "ing\\Merchant\\Products\\V1\352\002(Google::Shopp" - + "ing::Merchant::Products::V1b\006proto3" + + "\023FEDEX_HOME_DELIVERY\020\025\022\027\n" + + "\023FEDEX_EXPRESS_SAVER\020\026\022\031\n" + + "\025FEDEX_FIRST_OVERNIGHT\020\027\022\034\n" + + "\030FEDEX_PRIORITY_OVERNIGHT\020\030\022\034\n" + + "\030FEDEX_STANDARD_OVERNIGHT\020\031\022\016\n\n" + + "FEDEX_2DAY\020\032\022\023\n" + + "\017UPS_2ND_DAY_AIR\020\033\022\022\n" + + "\016UPS_2ND_DAY_AM\020\034\022\024\n" + + "\020UPS_3_DAY_SELECT\020\035\022\016\n\n" + + "UPS_GROUND\020\036\022\024\n" + + "\020UPS_NEXT_DAY_AIR\020\037\022\035\n" + + "\031UPS_NEXT_DAY_AIR_EARLY_AM\020 \022\032\n" + + "\026UPS_NEXT_DAY_AIR_SAVER\020!\022\036\n" + + "\032USPS_PRIORITY_MAIL_EXPRESS\020\"\022\023\n" + + "\017USPS_MEDIA_MAIL\020#\022 \n" + + "\034USPS_GROUND_ADVANTAGE_RETAIL\020$\022\026\n" + + "\022USPS_PRIORITY_MAIL\020%\022$\n" + + " USPS_GROUND_ADVANTAGE_COMMERCIAL\020&\022\031\n" + + "\025USPS_FIRST_CLASS_MAIL\020\'B\206\002\n" + + "(com.google.shopping.merchant.products.v1B\023Produc" + + "tsCommonProtoP\001ZJcloud.google.com/go/shopping/merchant/products/apiv1/productspb" + + ";productspb\252\002$Google.Shopping.Merchant.P" + + "roducts.V1\312\002$Google\\Shopping\\Merchant\\Pr" + + "oducts\\V1\352\002(Google::Shopping::Merchant::Products::V1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -877,6 +1269,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "PromotionIds", "PickupMethod", "PickupSla", + "PickupCost", "LinkTemplate", "MobileLinkTemplate", "CustomLabel0", @@ -898,6 +1291,50 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "AutoPricingMinPrice", "SustainabilityIncentives", "VideoLinks", + "MinimumOrderValues", + "Vin", + "Model", + "Trim", + "BodyStyle", + "Year", + "Mileage", + "ElectricRange", + "FuelConsumption", + "FuelConsumptionDischargedBattery", + "EnergyConsumption", + "Co2Emissions", + "DateFirstRegistered", + "Engine", + "EmissionsStandard", + "CertifiedPreOwned", + "VehicleMsrp", + "VehicleAllInPrice", + "VehiclePriceType", + "VehicleMandatoryInspectionIncluded", + "VehicleExpenses", + "Warranty", + "DisplayAddress", + "Latitude", + "Longitude", + "Neighborhood", + "UnitArea", + "NumberOfUnits", + "PropertyName", + "NumberOfBedrooms", + "NumberOfBathrooms", + "PropertyType", + "AmenityFeature", + "UtilitiesIncluded", + "PetPolicy", + "SpecialtyHousingType", + "ProductFee", + "ShortTitle", + "QuestionsAndAnswers", + "PopularityRank", + "ItemGroupTitle", + "DocumentLinks", + "VariantOptions", + "RelatedProducts", }); internal_static_google_shopping_merchant_products_v1_ProductAttributes_ShippingBusinessDaysConfig_descriptor = internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor @@ -929,6 +1366,114 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "FixedMaxTransitTime", "CarrierTransitTime", }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(2); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Mileage_descriptor, + new java.lang.String[] { + "Value", "Unit", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(3); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_FuelConsumption_descriptor, + new java.lang.String[] { + "Value", "Unit", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(4); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_EnergyConsumption_descriptor, + new java.lang.String[] { + "Value", "Unit", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(5); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Co2Emissions_descriptor, + new java.lang.String[] { + "Value", "Unit", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(6); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_Warranty_descriptor, + new java.lang.String[] { + "Duration", "Mileage", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(7); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_ProductFee_descriptor, + new java.lang.String[] { + "Type", "Amount", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(8); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_DisplayAddress_descriptor, + new java.lang.String[] { + "StreetNumber", "StreetName", "City", "Region", "PostalCode", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(9); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_UnitArea_descriptor, + new java.lang.String[] { + "Value", "Unit", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(10); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_PetPolicy_descriptor, + new java.lang.String[] { + "PetsAllowed", "PetTypes", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(11); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_QuestionAndAnswer_descriptor, + new java.lang.String[] { + "Question", "Answer", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(12); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_VariantOption_descriptor, + new java.lang.String[] { + "Name", "Value", + }); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_descriptor = + internal_static_google_shopping_merchant_products_v1_ProductAttributes_descriptor + .getNestedType(13); + internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductAttributes_RelatedProduct_descriptor, + new java.lang.String[] { + "RelationshipType", "IdType", "Id", + }); internal_static_google_shopping_merchant_products_v1_ShippingWeight_descriptor = getDescriptor().getMessageType(1); internal_static_google_shopping_merchant_products_v1_ShippingWeight_fieldAccessorTable = @@ -975,7 +1520,12 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_shopping_merchant_products_v1_ProductInstallment_descriptor, new java.lang.String[] { - "Months", "Amount", "Downpayment", "CreditType", "AnnualPercentageRate", + "Months", + "Amount", + "Downpayment", + "CreditType", + "AnnualPercentageRate", + "TotalAmount", }); internal_static_google_shopping_merchant_products_v1_LoyaltyPoints_descriptor = getDescriptor().getMessageType(7); @@ -1018,6 +1568,8 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "MaxTransitTime", "HandlingCutoffTime", "HandlingCutoffTimezone", + "LoyaltyProgramLabel", + "LoyaltyTierLabel", }); internal_static_google_shopping_merchant_products_v1_FreeShippingThreshold_descriptor = getDescriptor().getMessageType(10); @@ -1147,14 +1699,30 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new java.lang.String[] { "PriorPrice", "PriorPriceProgressive", "GadPrice", }); - internal_static_google_shopping_merchant_products_v1_HandlingCutoffTime_descriptor = + internal_static_google_shopping_merchant_products_v1_PickupCost_descriptor = getDescriptor().getMessageType(21); + internal_static_google_shopping_merchant_products_v1_PickupCost_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_PickupCost_descriptor, + new java.lang.String[] { + "FlatRate", "FreeThreshold", + }); + internal_static_google_shopping_merchant_products_v1_HandlingCutoffTime_descriptor = + getDescriptor().getMessageType(22); internal_static_google_shopping_merchant_products_v1_HandlingCutoffTime_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_google_shopping_merchant_products_v1_HandlingCutoffTime_descriptor, new java.lang.String[] { "Country", "CutoffTime", "CutoffTimezone", "DisableDeliveryAfterCutoff", }); + internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_descriptor = + getDescriptor().getMessageType(23); + internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_fieldAccessorTable = + new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_google_shopping_merchant_products_v1_ProductMinimumOrderValue_descriptor, + new java.lang.String[] { + "Country", "Service", "Surface", "Price", + }); descriptor.resolveAllFeaturesImmutable(); com.google.api.FieldBehaviorProto.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsProto.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsProto.java index 65c917ab9553..bad98b7b6236 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsProto.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ProductsProto.java @@ -72,7 +72,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "ield_behavior.proto\032\031google/api/resource" + ".proto\032:google/shopping/merchant/product" + "s/v1/products_common.proto\032 google/shopp" - + "ing/type/types.proto\"\221\005\n\007Product\022\014\n\004name" + + "ing/type/types.proto\"\250\005\n\007Product\022\014\n\004name" + "\030\001 \001(\t\022 \n\023base64_encoded_name\030\017 \001(\tB\003\340A\003" + "\022\031\n\014legacy_local\030\013 \001(\010B\003\340A\003\022\025\n\010offer_id\030" + "\003 \001(\tB\003\340A\003\022\035\n\020content_language\030\004 \001(\tB\003\340A" @@ -86,37 +86,38 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + ".shopping.merchant.products.v1.ProductSt" + "atusB\003\340A\003\022Z\n\023automated_discounts\030\014 \001(\01328" + ".google.shopping.merchant.products.v1.Au" - + "tomatedDiscountsB\003\340A\003:N\352AK\n\"merchantapi." - + "googleapis.com/Product\022%accounts/{accoun" - + "t}/products/{product}B\021\n\017_version_number" - + "\"M\n\021GetProductRequest\0228\n\004name\030\001 \001(\tB*\340A\002" - + "\372A$\n\"merchantapi.googleapis.com/Product\"" - + "x\n\023ListProductsRequest\022:\n\006parent\030\001 \001(\tB*" - + "\340A\002\372A$\022\"merchantapi.googleapis.com/Produ" - + "ct\022\021\n\tpage_size\030\002 \001(\005\022\022\n\npage_token\030\003 \001(" - + "\t\"p\n\024ListProductsResponse\022?\n\010products\030\001 " - + "\003(\0132-.google.shopping.merchant.products." - + "v1.Product\022\027\n\017next_page_token\030\002 \001(\t2\317\003\n\017" - + "ProductsService\022\256\001\n\nGetProduct\0227.google." - + "shopping.merchant.products.v1.GetProduct" - + "Request\032-.google.shopping.merchant.produ" - + "cts.v1.Product\"8\332A\004name\202\323\344\223\002+\022)/products" - + "/v1/{name=accounts/*/products/*}\022\301\001\n\014Lis" - + "tProducts\0229.google.shopping.merchant.pro" - + "ducts.v1.ListProductsRequest\032:.google.sh" - + "opping.merchant.products.v1.ListProducts" - + "Response\":\332A\006parent\202\323\344\223\002+\022)/products/v1/" - + "{parent=accounts/*}/products\032G\312A\032merchan" - + "tapi.googleapis.com\322A\'https://www.google" - + "apis.com/auth/contentB\273\002\n(com.google.sho" - + "pping.merchant.products.v1B\rProductsProt" - + "oP\001ZJcloud.google.com/go/shopping/mercha" - + "nt/products/apiv1/productspb;productspb\252" - + "\002$Google.Shopping.Merchant.Products.V1\312\002" - + "$Google\\Shopping\\Merchant\\Products\\V1\352\002(" - + "Google::Shopping::Merchant::Products::V1" - + "\352A8\n\"merchantapi.googleapis.com/Account\022" - + "\022accounts/{account}b\006proto3" + + "tomatedDiscountsB\003\340A\003\022\025\n\010archived\030\016 \001(\010B" + + "\003\340A\003:N\352AK\n\"merchantapi.googleapis.com/Pr" + + "oduct\022%accounts/{account}/products/{prod" + + "uct}B\021\n\017_version_number\"M\n\021GetProductReq" + + "uest\0228\n\004name\030\001 \001(\tB*\340A\002\372A$\n\"merchantapi." + + "googleapis.com/Product\"x\n\023ListProductsRe" + + "quest\022:\n\006parent\030\001 \001(\tB*\340A\002\372A$\022\"merchanta" + + "pi.googleapis.com/Product\022\021\n\tpage_size\030\002" + + " \001(\005\022\022\n\npage_token\030\003 \001(\t\"p\n\024ListProducts" + + "Response\022?\n\010products\030\001 \003(\0132-.google.shop" + + "ping.merchant.products.v1.Product\022\027\n\017nex" + + "t_page_token\030\002 \001(\t2\317\003\n\017ProductsService\022\256" + + "\001\n\nGetProduct\0227.google.shopping.merchant" + + ".products.v1.GetProductRequest\032-.google." + + "shopping.merchant.products.v1.Product\"8\332" + + "A\004name\202\323\344\223\002+\022)/products/v1/{name=account" + + "s/*/products/*}\022\301\001\n\014ListProducts\0229.googl" + + "e.shopping.merchant.products.v1.ListProd" + + "uctsRequest\032:.google.shopping.merchant.p" + + "roducts.v1.ListProductsResponse\":\332A\006pare" + + "nt\202\323\344\223\002+\022)/products/v1/{parent=accounts/" + + "*}/products\032G\312A\032merchantapi.googleapis.c" + + "om\322A\'https://www.googleapis.com/auth/con" + + "tentB\273\002\n(com.google.shopping.merchant.pr" + + "oducts.v1B\rProductsProtoP\001ZJcloud.google" + + ".com/go/shopping/merchant/products/apiv1" + + "/productspb;productspb\252\002$Google.Shopping" + + ".Merchant.Products.V1\312\002$Google\\Shopping\\" + + "Merchant\\Products\\V1\352\002(Google::Shopping:" + + ":Merchant::Products::V1\352A8\n\"merchantapi." + + "googleapis.com/Account\022\022accounts/{accoun" + + "t}b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -147,6 +148,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "CustomAttributes", "ProductStatus", "AutomatedDiscounts", + "Archived", }); internal_static_google_shopping_merchant_products_v1_GetProductRequest_descriptor = getDescriptor().getMessageType(1); diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Shipping.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Shipping.java index bbd05de9a316..fb7da93de36a 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Shipping.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/Shipping.java @@ -59,6 +59,8 @@ private Shipping() { postalCode_ = ""; handlingCutoffTime_ = ""; handlingCutoffTimezone_ = ""; + loyaltyProgramLabel_ = ""; + loyaltyTierLabel_ = ""; } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { @@ -800,6 +802,140 @@ public com.google.protobuf.ByteString getHandlingCutoffTimezoneBytes() { } } + public static final int LOYALTY_PROGRAM_LABEL_FIELD_NUMBER = 14; + + @SuppressWarnings("serial") + private volatile java.lang.Object loyaltyProgramLabel_ = ""; + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * program](https://support.google.com/merchants/answer/6324484).
+   * Must match one of the program labels set in
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The loyaltyProgramLabel. + */ + @java.lang.Override + public java.lang.String getLoyaltyProgramLabel() { + java.lang.Object ref = loyaltyProgramLabel_; + 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(); + loyaltyProgramLabel_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * program](https://support.google.com/merchants/answer/6324484).
+   * Must match one of the program labels set in
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for loyaltyProgramLabel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getLoyaltyProgramLabelBytes() { + java.lang.Object ref = loyaltyProgramLabel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + loyaltyProgramLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LOYALTY_TIER_LABEL_FIELD_NUMBER = 15; + + @SuppressWarnings("serial") + private volatile java.lang.Object loyaltyTierLabel_ = ""; + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * tier](https://support.google.com/merchants/answer/6324484) within the
+   * loyalty program. Must match one of the tiers set in the
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The loyaltyTierLabel. + */ + @java.lang.Override + public java.lang.String getLoyaltyTierLabel() { + java.lang.Object ref = loyaltyTierLabel_; + 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(); + loyaltyTierLabel_ = s; + return s; + } + } + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * tier](https://support.google.com/merchants/answer/6324484) within the
+   * loyalty program. Must match one of the tiers set in the
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for loyaltyTierLabel. + */ + @java.lang.Override + public com.google.protobuf.ByteString getLoyaltyTierLabelBytes() { + java.lang.Object ref = loyaltyTierLabel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + loyaltyTierLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -853,6 +989,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io if (((bitField0_ & 0x00000040) != 0)) { com.google.protobuf.GeneratedMessage.writeString(output, 13, handlingCutoffTimezone_); } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(loyaltyProgramLabel_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 14, loyaltyProgramLabel_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(loyaltyTierLabel_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 15, loyaltyTierLabel_); + } getUnknownFields().writeTo(output); } @@ -901,6 +1043,12 @@ public int getSerializedSize() { if (((bitField0_ & 0x00000040) != 0)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(13, handlingCutoffTimezone_); } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(loyaltyProgramLabel_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(14, loyaltyProgramLabel_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(loyaltyTierLabel_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(15, loyaltyTierLabel_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -951,6 +1099,8 @@ public boolean equals(final java.lang.Object obj) { if (hasHandlingCutoffTimezone()) { if (!getHandlingCutoffTimezone().equals(other.getHandlingCutoffTimezone())) return false; } + if (!getLoyaltyProgramLabel().equals(other.getLoyaltyProgramLabel())) return false; + if (!getLoyaltyTierLabel().equals(other.getLoyaltyTierLabel())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -1002,6 +1152,10 @@ public int hashCode() { hash = (37 * hash) + HANDLING_CUTOFF_TIMEZONE_FIELD_NUMBER; hash = (53 * hash) + getHandlingCutoffTimezone().hashCode(); } + hash = (37 * hash) + LOYALTY_PROGRAM_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getLoyaltyProgramLabel().hashCode(); + hash = (37 * hash) + LOYALTY_TIER_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getLoyaltyTierLabel().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -1168,6 +1322,8 @@ public Builder clear() { maxTransitTime_ = 0L; handlingCutoffTime_ = ""; handlingCutoffTimezone_ = ""; + loyaltyProgramLabel_ = ""; + loyaltyTierLabel_ = ""; return this; } @@ -1251,6 +1407,12 @@ private void buildPartial0(com.google.shopping.merchant.products.v1.Shipping res result.handlingCutoffTimezone_ = handlingCutoffTimezone_; to_bitField0_ |= 0x00000040; } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.loyaltyProgramLabel_ = loyaltyProgramLabel_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.loyaltyTierLabel_ = loyaltyTierLabel_; + } result.bitField0_ |= to_bitField0_; } @@ -1320,6 +1482,16 @@ public Builder mergeFrom(com.google.shopping.merchant.products.v1.Shipping other bitField0_ |= 0x00001000; onChanged(); } + if (!other.getLoyaltyProgramLabel().isEmpty()) { + loyaltyProgramLabel_ = other.loyaltyProgramLabel_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (!other.getLoyaltyTierLabel().isEmpty()) { + loyaltyTierLabel_ = other.loyaltyTierLabel_; + bitField0_ |= 0x00004000; + onChanged(); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1424,6 +1596,18 @@ public Builder mergeFrom( bitField0_ |= 0x00001000; break; } // case 106 + case 114: + { + loyaltyProgramLabel_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 122: + { + loyaltyTierLabel_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 122 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -3017,6 +3201,298 @@ public Builder setHandlingCutoffTimezoneBytes(com.google.protobuf.ByteString val return this; } + private java.lang.Object loyaltyProgramLabel_ = ""; + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * program](https://support.google.com/merchants/answer/6324484).
+     * Must match one of the program labels set in
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The loyaltyProgramLabel. + */ + public java.lang.String getLoyaltyProgramLabel() { + java.lang.Object ref = loyaltyProgramLabel_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + loyaltyProgramLabel_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * program](https://support.google.com/merchants/answer/6324484).
+     * Must match one of the program labels set in
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for loyaltyProgramLabel. + */ + public com.google.protobuf.ByteString getLoyaltyProgramLabelBytes() { + java.lang.Object ref = loyaltyProgramLabel_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + loyaltyProgramLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * program](https://support.google.com/merchants/answer/6324484).
+     * Must match one of the program labels set in
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The loyaltyProgramLabel to set. + * @return This builder for chaining. + */ + public Builder setLoyaltyProgramLabel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + loyaltyProgramLabel_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * program](https://support.google.com/merchants/answer/6324484).
+     * Must match one of the program labels set in
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearLoyaltyProgramLabel() { + loyaltyProgramLabel_ = getDefaultInstance().getLoyaltyProgramLabel(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * program](https://support.google.com/merchants/answer/6324484).
+     * Must match one of the program labels set in
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for loyaltyProgramLabel to set. + * @return This builder for chaining. + */ + public Builder setLoyaltyProgramLabelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + loyaltyProgramLabel_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private java.lang.Object loyaltyTierLabel_ = ""; + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * tier](https://support.google.com/merchants/answer/6324484) within the
+     * loyalty program. Must match one of the tiers set in the
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The loyaltyTierLabel. + */ + public java.lang.String getLoyaltyTierLabel() { + java.lang.Object ref = loyaltyTierLabel_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + loyaltyTierLabel_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * tier](https://support.google.com/merchants/answer/6324484) within the
+     * loyalty program. Must match one of the tiers set in the
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for loyaltyTierLabel. + */ + public com.google.protobuf.ByteString getLoyaltyTierLabelBytes() { + java.lang.Object ref = loyaltyTierLabel_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + loyaltyTierLabel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * tier](https://support.google.com/merchants/answer/6324484) within the
+     * loyalty program. Must match one of the tiers set in the
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The loyaltyTierLabel to set. + * @return This builder for chaining. + */ + public Builder setLoyaltyTierLabel(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + loyaltyTierLabel_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * tier](https://support.google.com/merchants/answer/6324484) within the
+     * loyalty program. Must match one of the tiers set in the
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return This builder for chaining. + */ + public Builder clearLoyaltyTierLabel() { + loyaltyTierLabel_ = getDefaultInstance().getLoyaltyTierLabel(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + + /** + * + * + *
+     * Optional. The label of the [loyalty
+     * tier](https://support.google.com/merchants/answer/6324484) within the
+     * loyalty program. Must match one of the tiers set in the
+     * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+     * When set (in combination with
+     * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+     * this shipping option is only applicable to loyalty program members of the
+     * specified tier.
+     * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @param value The bytes for loyaltyTierLabel to set. + * @return This builder for chaining. + */ + public Builder setLoyaltyTierLabelBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + loyaltyTierLabel_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:google.shopping.merchant.products.v1.Shipping) } diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ShippingOrBuilder.java b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ShippingOrBuilder.java index bb5e5eec0252..065c82984489 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ShippingOrBuilder.java +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/java/com/google/shopping/merchant/products/v1/ShippingOrBuilder.java @@ -499,4 +499,84 @@ public interface ShippingOrBuilder * @return The bytes for handlingCutoffTimezone. */ com.google.protobuf.ByteString getHandlingCutoffTimezoneBytes(); + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * program](https://support.google.com/merchants/answer/6324484).
+   * Must match one of the program labels set in
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The loyaltyProgramLabel. + */ + java.lang.String getLoyaltyProgramLabel(); + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * program](https://support.google.com/merchants/answer/6324484).
+   * Must match one of the program labels set in
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_program_label = 14 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for loyaltyProgramLabel. + */ + com.google.protobuf.ByteString getLoyaltyProgramLabelBytes(); + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * tier](https://support.google.com/merchants/answer/6324484) within the
+   * loyalty program. Must match one of the tiers set in the
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The loyaltyTierLabel. + */ + java.lang.String getLoyaltyTierLabel(); + + /** + * + * + *
+   * Optional. The label of the [loyalty
+   * tier](https://support.google.com/merchants/answer/6324484) within the
+   * loyalty program. Must match one of the tiers set in the
+   * [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram].
+   * When set (in combination with
+   * [loyalty_program_label](https://support.google.com/merchants/answer/6324484)),
+   * this shipping option is only applicable to loyalty program members of the
+   * specified tier.
+   * 
+ * + * string loyalty_tier_label = 15 [(.google.api.field_behavior) = OPTIONAL]; + * + * @return The bytes for loyaltyTierLabel. + */ + com.google.protobuf.ByteString getLoyaltyTierLabelBytes(); } diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products.proto b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products.proto index e67abc69823c..e318aa6ded66 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products.proto +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products.proto @@ -172,6 +172,14 @@ message Product { // Output only. The automated discounts information for the product. AutomatedDiscounts automated_discounts = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Determines whether the product is + // [archived](https://support.google.com/merchants/answer/11909930). + // + // To archive or restore your product, visit Merchant Center products page. + // Learn also more about [offer + // visibility](https://support.google.com/merchants/answer/12488713). + bool archived = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for the GetProduct method. diff --git a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products_common.proto b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products_common.proto index ee4278deb0ba..ba9c0332b571 100644 --- a/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products_common.proto +++ b/java-shopping-merchant-products/proto-google-shopping-merchant-products-v1/src/main/proto/google/shopping/merchant/products/v1/products_common.proto @@ -628,6 +628,258 @@ message ProductAttributes { optional CarrierTransitTimeOption carrier_transit_time = 13; } + // The mileage of the vehicle. + message Mileage { + // The unit of the mileage. + enum Unit { + // Unspecified unit. + UNIT_UNSPECIFIED = 0; + + // Miles. + MILES = 1; + + // Kilometers. + KM = 2; + } + + // The distance value. + optional int64 value = 1; + + // The unit of the mileage. + Unit unit = 2; + } + + // The fuel consumption of the vehicle. + message FuelConsumption { + // The unit of the fuel consumption. + enum Unit { + // Unspecified unit. + UNIT_UNSPECIFIED = 0; + + // Liter per 100 kilometers. + LPER100KM = 1; + + // Kilograms per 100 kilometers. + KGPER100KM = 2; + } + + // The fuel consumption value. + optional double value = 1; + + // The unit of the fuel consumption. + Unit unit = 2; + } + + // The energy consumption of the vehicle. + message EnergyConsumption { + // The unit of the energy consumption. + enum Unit { + // Unspecified unit. + UNIT_UNSPECIFIED = 0; + + // Kilowatt hours per 100 kilometers. + KWHPER100KM = 1; + } + + // The energy consumption value. + optional double value = 1; + + // The unit of the energy consumption. + Unit unit = 2; + } + + // The co2 emission of the vehicle. + message Co2Emissions { + // The unit of the co2 emission. + enum Unit { + // Unspecified unit. + UNIT_UNSPECIFIED = 0; + + // Grams per kilometer. + GPERKM = 1; + } + + // The co2 emission value. + optional int64 value = 1; + + // The unit of the co2 emission. + Unit unit = 2; + } + + // The warranty of the vehicle. + message Warranty { + // The warranty duration in months. + int64 duration = 1; + + // The warranty mileage. + Mileage mileage = 2; + } + + // The product fee attribute containing type and amount. + message ProductFee { + // The type of product fee. + enum FeeType { + // Unspecified fee type. + FEE_TYPE_UNSPECIFIED = 0; + + // Admin fee. + ADMIN_FEE = 1; + + // Application fee. + APPLICATION_FEE = 2; + + // Security deposit. + SECURITY_DEPOSIT = 3; + } + + // The type of product fee. + FeeType type = 1; + + // The amount of product fee. + google.shopping.type.Price amount = 2; + } + + // The display address of the property. + message DisplayAddress { + // The street number. + string street_number = 1; + + // The street name. + string street_name = 2; + + // The city such as Seattle, New York, etc. + string city = 3; + + // The region(state), such as WA, OH, etc. + string region = 4; + + // The postal code, such as 94043. + string postal_code = 5; + } + + // The unit area of the property. + message UnitArea { + // The unit of area. + enum Unit { + // Unspecified unit. + UNIT_UNSPECIFIED = 0; + + // Square meters. + SQM = 1; + + // Square feet. + SQFT = 2; + } + + // The area value. + optional double value = 1; + + // The unit of area. + Unit unit = 2; + } + + // The pet policy of the property. + message PetPolicy { + // The pet types. + enum PetType { + // Unspecified pet type. + PET_TYPE_UNSPECIFIED = 0; + + // Cats. + CATS = 1; + + // Large dogs. + LARGE_DOGS = 2; + + // Small dogs. + SMALL_DOGS = 3; + } + + // Whether pets are allowed. + bool pets_allowed = 1; + + // The pet types allowed. + repeated PetType pet_types = 2; + } + + // The question and answer for the product. + message QuestionAndAnswer { + // Required. The question text. + string question = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The answer text. + string answer = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Additional product variants for the product. + message VariantOption { + // Required. The name of the variant. For example, "Color", "Memory", + // "Size", "Length" + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The value of the variant. For example, "Red", "128GB", "XL", + // "100cm" + string value = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Specifies how other products are related to this product. + message RelatedProduct { + // The various types of the relationships between this product and the + // related product. + enum RelationshipType { + // The relationship type is unspecified. + RELATIONSHIP_TYPE_UNSPECIFIED = 0; + + // Part of a set of products that are often purchased together. + PART_OF_SET = 1; + + // Part that is necessary for the product to function, for example a + // battery for a battery-operated lamp. + REQUIRED_PART = 2; + + // A product that this product is often purchased together with, for + // example a phone case with a phone. + OFTEN_BOUGHT_WITH = 3; + + // Product that this product can be substituted for. For example a printer + // comparable in function to another printer. + SUBSTITUTE = 4; + + // An identical product sold under a different brand, for example a + // cheaper house brand. + DIFFERENT_BRAND = 5; + + // An accessory to this product, for example a side table that matches the + // style of a couch. + ACCESSORY = 6; + } + + // The type of the identifier of the related product. + enum IdType { + // The identifier type is unspecified. + ID_TYPE_UNSPECIFIED = 0; + + // The identifier is a GTIN. + GTIN = 1; + + // The identifier is a product ID in the feed. + ID = 2; + } + + // Required. The type of the relationship between this product and the + // related product. + RelationshipType relationship_type = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the identifier of the related product. + // For example, [GTIN](https://support.google.com/merchants/answer/6219078) + // or [product ID](https://support.google.com/merchants/answer/6324405). + IdType id_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The identifier of the related product. + string id = 3 [(google.api.field_behavior) = REQUIRED]; + } + // Possible carrier where price is coming from. enum CarrierPriceOption { // Carrier price option is unspecified. @@ -817,6 +1069,389 @@ message ProductAttributes { USPS_GROUND_ADVANTAGE_COMMERCIAL = 61; } + // The vehicle body style. See the [Body + // style](https://support.google.com/google-ads/answer/14157085) for more + // information. + enum VehicleBodyStyle { + // Unspecified vehicle body style. + VEHICLE_BODY_STYLE_UNSPECIFIED = 0; + + // ATV Sport. + ATV_SPORT = 1; + + // ATV Touring. + ATV_TOURING = 2; + + // ATV Utility. + ATV_UTILITY = 3; + + // ATV Youth. + ATV_YOUTH = 4; + + // City car. + CITY_CAR = 5; + + // Class A motorhome. + CLASS_A_MOTORHOME = 6; + + // Class B motorhome. + CLASS_B_MOTORHOME = 7; + + // Class C motorhome. + CLASS_C_MOTORHOME = 8; + + // Compact SUV. + COMPACT_SUV = 9; + + // Convertible. + CONVERTIBLE = 10; + + // Coupe. + COUPE = 11; + + // Crossover. + CROSSOVER = 12; + + // Fifth wheel. + FIFTH_WHEEL = 13; + + // Full size van. + FULL_SIZE_VAN = 14; + + // Hatchback. + HATCHBACK = 15; + + // Limousine. + LIMOUSINE = 16; + + // Minivan. + MINIVAN = 17; + + // Notchback. + NOTCHBACK = 18; + + // Pop up camper. + POP_UP_CAMPER = 19; + + // Sedan. + SEDAN = 20; + + // Side by side. + SIDE_BY_SIDE = 21; + + // Station wagon. + STATION_WAGON = 22; + + // SUV. + SUV = 23; + + // Travel trailer. + TRAVEL_TRAILER = 24; + + // Truck. + TRUCK = 25; + + // Truck camper. + TRUCK_CAMPER = 26; + + // Ute. + UTE = 27; + + // UTV Recreational utility. + UTV_RECREATIONAL_UTILITY = 28; + + // UTV Sport. + UTV_SPORT = 29; + + // UTV Utility. + UTV_UTILITY = 30; + + // UTV Youth. + UTV_YOUTH = 31; + } + + // The engine type of the vehicle. + enum EngineType { + // Unspecified engine type. + ENGINE_TYPE_UNSPECIFIED = 0; + + // Gasoline. + GASOLINE = 1; + + // Diesel. + DIESEL = 2; + + // Electric. + ELECTRIC = 3; + + // Hybrid. + HYBRID = 4; + + // Plug-in hybrid. + PLUG_IN_HYBRID = 5; + + // Natural gas. + NATURAL_GAS = 6; + + // LPG. + LPG = 7; + + // Methane. + METHANE = 8; + + // Other. + OTHER = 9; + } + + // The emission standard of the vehicle. + enum EmissionsStandard { + // Unspecified emission standard. + EMISSIONS_STANDARD_UNSPECIFIED = 0; + + // Zero emissions. + ZERO_EMISSIONS = 1; + + // Euro 1. + EURO1 = 2; + + // Euro 2. + EURO2 = 3; + + // Euro 3. + EURO3 = 4; + + // Euro 4. + EURO4 = 5; + + // Euro 5. + EURO5 = 6; + + // Euro 5b. + EURO5B = 7; + + // Euro 6. + EURO6 = 8; + + // Euro 6c. + EURO6C = 9; + + // Euro 6d. + EURO6D = 10; + + // Euro 6d-TEMP. + EURO6D_TEMP = 11; + + // Euro 6e. + EURO6E = 12; + } + + // The vehicle price type. + enum VehiclePriceType { + // Unspecified vehicle price type. + VEHICLE_PRICE_TYPE_UNSPECIFIED = 0; + + // All in price. + ALL_IN_PRICE = 1; + + // Drive away price. + DRIVE_AWAY_PRICE = 2; + + // Estimated drive away price. + ESTIMATED_DRIVE_AWAY_PRICE = 3; + + // Excluding government charges price. + EXCLUDING_GOVERNMENT_CHARGES_PRICE = 4; + + // Vehicle base price. + VEHICLE_BASE_PRICE = 5; + } + + // The property type. + enum PropertyType { + // Unspecified property type. + PROPERTY_TYPE_UNSPECIFIED = 0; + + // Apartment. + APARTMENT = 1; + + // Condo. + CONDO = 2; + + // Loft. + LOFT = 3; + + // Multi-family home. + MULTI_FAMILY_HOME = 4; + + // Penthouse. + PENTHOUSE = 5; + + // Room. + ROOM = 6; + + // Single-family home. + SINGLE_FAMILY_HOME = 7; + + // Studio. + STUDIO = 8; + + // Townhouse. + TOWNHOUSE = 9; + } + + // The amenity features for the property. + enum AmenityFeature { + // Unspecified amenity feature. + AMENITY_FEATURE_UNSPECIFIED = 0; + + // Balcony. + BALCONY = 1; + + // Basement. + BASEMENT = 2; + + // Basketball court. + BASKETBALL_COURT = 3; + + // Bike storage. + BIKE_STORAGE = 4; + + // Central air conditioning. + CENTRAL_AC = 5; + + // Dishwasher. + DISHWASHER = 6; + + // Dog park. + DOG_PARK = 7; + + // Elevator. + ELEVATOR = 8; + + // EV charging. + EV_CHARGING = 9; + + // Fenced lot. + FENCED_LOT = 10; + + // Fireplace. + FIREPLACE = 11; + + // Fitness center. + FITNESS_CENTER = 12; + + // Forced air heating. + FORCED_AIR_HEATING = 13; + + // Fully furnished. + FULLY_FURNISHED = 14; + + // Garage. + GARAGE = 15; + + // Gated community. + GATED_COMMUNITY = 16; + + // Hardwood floors. + HARDWOOD_FLOORS = 17; + + // High speed internet. + HIGH_SPEED_INTERNET = 18; + + // Intercom. + INTERCOM = 19; + + // In-unit washer and dryer. + IN_UNIT_WASHER_DRYER = 20; + + // Kitchen. + KITCHEN = 21; + + // Large closets. + LARGE_CLOSETS = 22; + + // Multisport court. + MULTISPORT_COURT = 23; + + // Onsite laundry. + ONSITE_LAUNDRY = 24; + + // Outdoor lounge. + OUTDOOR_LOUNGE = 25; + + // Parking. + PARKING = 26; + + // Patio. + PATIO = 27; + + // Pickleball court. + PICKLEBALL_COURT = 28; + + // Pool. + POOL = 29; + + // Refrigerator. + REFRIGERATOR = 30; + + // Soccer field. + SOCCER_FIELD = 31; + + // Tennis court. + TENNIS_COURT = 32; + + // Walk-in closets. + WALK_IN_CLOSETS = 33; + + // Wheelchair accessibility. + WHEELCHAIR_ACCESS = 34; + } + + // The utilities included for the property. + enum UtilitiesIncluded { + // Unspecified utilities included. + UTILITIES_INCLUDED_UNSPECIFIED = 0; + + // Electricity. + ELECTRICITY = 1; + + // Gas. + GAS = 2; + + // Internet. + INTERNET = 3; + + // Trash. + TRASH = 4; + + // Water. + WATER = 5; + } + + // The specialty housing type for the property. + enum SpecialtyHousingType { + // Unspecified specialty housing type. + SPECIALTY_HOUSING_TYPE_UNSPECIFIED = 0; + + // Corporate housing. + CORPORATE = 1; + + // Low income housing. + LOW_INCOME = 2; + + // Military housing. + MILITARY = 3; + + // Senior housing. + SENIOR = 4; + + // Short term housing. + SHORT_TERM = 5; + + // Student housing. + STUDENT = 6; + } + // Set this value to false when the item does not have unique product // identifiers appropriate to its category, such as GTIN, MPN, and brand. // Defaults to true, if not provided. @@ -1122,6 +1757,12 @@ message ProductAttributes { // [Pickup SLA](https://support.google.com/merchants/answer/14635400). optional PickupSla pickup_sla = 81; + // Optional. The [pickup + // cost](https://support.google.com/merchants/answer/16988704) for an item + // when a customer buys it online and picks it up at a store. + optional PickupCost pickup_cost = 172 + [(google.api.field_behavior) = OPTIONAL]; + // [Link template](https://support.google.com/merchants/answer/13871172) for // business hosted local storefront. optional string link_template = 82; @@ -1235,6 +1876,213 @@ message ProductAttributes { // Center article](https://support.google.com/merchants/answer/15216925) for // more information. repeated string video_links = 169 [(google.api.field_behavior) = OPTIONAL]; + + // The [minimum value](https://support.google.com/merchants/answer/16989009) + // in the cart before a customer can initiate checkout. Supports multiple + // minimum order values. Different minimum order values can be specified per + // country, service and surface. Maximum entries: 100. + repeated ProductMinimumOrderValue minimum_order_values = 146; + + // The [Vehicle Identification Number + // (VIN)](https://support.google.com/google-ads/answer/14154510) of the + // vehicle. + string vin = 147; + + // The [Model](https://support.google.com/google-ads/answer/14154511) of the + // vehicle, such as `LX`, `EX`, and others. + string model = 148; + + // The [Trim](https://support.google.com/google-ads/answer/14154176) of the + // vehicle model, such as `S`, `SV`, `SL` and others. + string trim = 149; + + // The [body style](https://support.google.com/google-ads/answer/14157085) of + // the vehicle. + VehicleBodyStyle body_style = 150; + + // The [Year](https://support.google.com/google-ads/answer/14152816) of the + // vehicle model. + int64 year = 151; + + // The number of miles/kms on the vehicle. See the + // [Mileage](https://support.google.com/google-ads/answer/14156166) for more + // information. + Mileage mileage = 152; + + // The [electric range](https://support.google.com/google-ads/answer/15162232) + // of the vehicle in miles/kms. + Mileage electric_range = 153; + + // The [fuel + // consumption](https://support.google.com/google-ads/answer/14543580) of the + // vehicle. + FuelConsumption fuel_consumption = 154; + + // The fuel consumption of the vehicle when the hybrid battery is discharged. + // See the [Help Center + // article](https://support.google.com/google-ads/answer/15162033) for more + // information. + FuelConsumption fuel_consumption_discharged_battery = 155; + + // The [energy + // consumption](https://support.google.com/google-ads/answer/14546149) of the + // vehicle. + EnergyConsumption energy_consumption = 156; + + // The [co2 emission](https://support.google.com/google-ads/answer/14546146) + // of the vehicle. + Co2Emissions co2_emissions = 157; + + // The date the vehicle was first registered. Format: `YYYY-MM`. See the + // [Date first + // registered](https://support.google.com/google-ads/answer/14546138) for more + // information. + string date_first_registered = 158; + + // The [engine](https://support.google.com/google-ads/answer/14156068) type of + // the vehicle. + EngineType engine = 159; + + // The [emission + // standard](https://support.google.com/google-ads/answer/14869021) of the + // vehicle. + EmissionsStandard emissions_standard = 160; + + // Whether the vehicle is OEM [certified + // pre-owned](https://support.google.com/google-ads/answer/14156475). + bool certified_pre_owned = 161; + + // The MSRP (Manufacturer Suggested Retail Price) for the vehicle in its + // current configuration. See the [Vehicle + // MSRP](https://support.google.com/google-ads/answer/14154171) for more + // information. + google.shopping.type.Price vehicle_msrp = 162; + + // The all-in advertised price for a vehicle, which includes costs for the + // following – any accessories attached to the vehicle, environmental levies, + // extra warranty, fuel, freight, pre-delivery inspection (PDI), dealer fees + // for handling licensing, provincial regulatory fees, miscellaneous dealer + // charges for security etching and nitrogen tire fill, and + // factory-to-customer or dealer-to-customer discounts or incentives. See the + // [Vehicle all-in + // price](https://support.google.com/google-ads/answer/14156981) for more + // information. + google.shopping.type.Price vehicle_all_in_price = 163; + + // The [price type](https://support.google.com/google-ads/answer/14592783) of + // the vehicle. + VehiclePriceType vehicle_price_type = 164; + + // Whether the vehicle is sold with mandatory inspection and maintenance + // performed before delivery. See the [Vehicle mandatory inspection + // included](https://support.google.com/google-ads/answer/15956630) for more + // information.` + bool vehicle_mandatory_inspection_included = 166; + + // The miscellaneous expenses like insurance and registration fees of the + // vehicle. See the [Vehicle + // expenses](https://support.google.com/google-ads/answer/15957154) for more + // information. + google.shopping.type.Price vehicle_expenses = 167; + + // The [warranty](https://support.google.com/google-ads/answer/15957626) of + // the vehicle. + Warranty warranty = 168; + + // The display address of the property. + DisplayAddress display_address = 179; + + // The latitude of the property. The value must be between -90 (inclusive) and + // 90 (inclusive), up to 6 decimal places. + optional double latitude = 180; + + // The longitude of the property. The value must be between -180 (inclusive) + // and 180 (inclusive), up to 6 decimal places. + optional double longitude = 181; + + // The neighborhood (locality) of the property, such as `Wallingford`, + // `Greenwood`, etc. + string neighborhood = 182; + + // The unit area of the property, such as `1000 sqft`. + UnitArea unit_area = 183; + + // The number of units available for a specific floor plan of the property. + // The value must be greater than 0. + optional int64 number_of_units = 184; + + // The name of the property. + string property_name = 185; + + // The number of bedrooms in the property. The value must be greater than or + // equal to 0 and a multiple of 1.0. + optional double number_of_bedrooms = 186; + + // The number of bathrooms in the property. The value must be greater than 0 + // and a multiple of 0.5. + optional double number_of_bathrooms = 187; + + // The type of property. + PropertyType property_type = 188; + + // The amenity features for the property. + repeated AmenityFeature amenity_feature = 189; + + // The utilities included for the property. + repeated UtilitiesIncluded utilities_included = 190; + + // The pet policy for the property. + PetPolicy pet_policy = 191; + + // The specialty housing type for the property. + SpecialtyHousingType specialty_housing_type = 192; + + // The product fee for the property. + repeated ProductFee product_fee = 193; + + // The short title of the item. + optional string short_title = 194; + + // Optional. Contains user-, merchant-, and manufacturer-authored [questions + // and answers](https://support.google.com/merchants/answer/17085211) about + // the product. Max 30 question and answer pairs. Max 10000 characters total. + // Each question can have max 1000 characters. Each answer can have max 1000 + // characters. + repeated QuestionAndAnswer questions_and_answers = 173 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates the + // [popularity](https://support.google.com/merchants/answer/17085297) of the + // product in a merchant's inventory. Using a scale of 0.0 (lowest) to 100.0 + // (highest). + float popularity_rank = 174 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Represents the [title of the product + // group](https://support.google.com/merchants/answer/17085146) to which + // this variant product belongs. This can be used along with the [item group + // id](https://support.google.com/merchants/answer/6324507) attribute. + // It lets you perform better grouping of variant products, and helps + // identifying common product characteristics more efficiently. + string item_group_title = 175 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Contains a list of PDF [document + // URLs](https://support.google.com/merchants/answer/17084656) for the + // product. Examples are training manuals, user guides, assembly instructions, + // package inserts, etc. Must start with "http://" or "https://"), ASCII + // characters only, and RFC 3986 compliant. + repeated string document_links = 176 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Contains the [list of all variant-identifying + // options](https://support.google.com/merchants/answer/17085214) of this + // product. + repeated VariantOption variant_options = 177 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies how other [products are + // related](https://support.google.com/merchants/answer/17085213) to this + // product. + repeated RelatedProduct related_products = 178 + [(google.api.field_behavior) = OPTIONAL]; } // The ShippingWeight of the product. @@ -1308,6 +2156,10 @@ message ProductInstallment { // Optional. Annual percentage rate for `credit_type` finance optional double annual_percentage_rate = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Total amount the buyer has to pay, including interest. + optional google.shopping.type.Price total_amount = 6 + [(google.api.field_behavior) = OPTIONAL]; } // A message that represents loyalty points. @@ -1453,6 +2305,26 @@ message Shipping { // field is not set, the shipping destination timezone will be used. If both // fields are not set, the handling cutoff time will default to 8AM PST. optional string handling_cutoff_timezone = 13; + + // Optional. The label of the [loyalty + // program](https://support.google.com/merchants/answer/6324484). + // Must match one of the program labels set in + // [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram]. + // When set (in combination with + // [loyalty_tier_label](https://support.google.com/merchants/answer/6324484)), + // this shipping option is only applicable to loyalty program members of the + // specified tier. + string loyalty_program_label = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The label of the [loyalty + // tier](https://support.google.com/merchants/answer/6324484) within the + // loyalty program. Must match one of the tiers set in the + // [loyalty_programs][google.shopping.merchant.products.v1.LoyaltyProgram]. + // When set (in combination with + // [loyalty_program_label](https://support.google.com/merchants/answer/6324484)), + // this shipping option is only applicable to loyalty program members of the + // specified tier. + string loyalty_tier_label = 15 [(google.api.field_behavior) = OPTIONAL]; } // Conditions to be met for a product to have free shipping. @@ -1735,6 +2607,17 @@ message AutomatedDiscounts { google.shopping.type.Price gad_price = 3; } +// The pickup cost of the item. +message PickupCost { + // Required. The flat rate pickup cost of the item. + optional google.shopping.type.Price flat_rate = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The price threshold above which pickup is free of charge. + optional google.shopping.type.Price free_threshold = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + // Configuration for offer or offer-country level shipping handling cutoff time. message HandlingCutoffTime { // The [CLDR territory @@ -1760,3 +2643,40 @@ message HandlingCutoffTime { // explicitly disable it. optional bool disable_delivery_after_cutoff = 4; } + +// The minimum order value in the cart before the checkout is permitted. +message ProductMinimumOrderValue { + // The surface values to which the minimum order value applies. + enum Surface { + // Surface is unspecified. + SURFACE_UNSPECIFIED = 0; + + // Surface value to indicate online purchases. + ONLINE = 1; + + // Surface value to indicate local purchases. + LOCAL = 2; + + // Surface value to indicate online and local purchases. + ONLINE_LOCAL = 3; + } + + // Required. The [CLDR territory + // code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) + // of the country to which an item will ship. + optional string country = 1 [(google.api.field_behavior) = REQUIRED]; + + // A free-form description of the service class or delivery speed. + // This should match the service value set for the Shipping attribute. + // See [service][google.shopping.merchant.products.v1.Shipping.service]. + optional string service = 2; + + // The surface to which the minimum order value applies. + // Defaults to `ONLINE_LOCAL` if not configured. + optional Surface surface = 3; + + // Required. The minimum cart or basket value before the checkout is + // permitted. + optional google.shopping.type.Price price = 4 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/librarian.yaml b/librarian.yaml index efa0a8790e49..fa378df746ce 100644 --- a/librarian.yaml +++ b/librarian.yaml @@ -16,8 +16,8 @@ version: v0.26.0 repo: googleapis/google-cloud-java sources: googleapis: - commit: bb9551666256aa929ffe1bbe7ad17db1342f0214 - sha256: 35f265bda422b6b86be36f0b18949722c5af13be7a313f025749863b1c5b853b + commit: 3614450147d75067801a8da2ae59abb55b82cc30 + sha256: 196b8dcae0206d7e3ad334120ca347117435595fc02174c8922f8f69f16890e4 showcase: commit: f97fd357084b9e85ef5dd02ba084551c3f85191c sha256: b5d293831e6895ca139d9a0a92eec75a82e73398978b140af8f7c5e91c7c969a