• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2020 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 // Generated by the protocol buffer compiler.  DO NOT EDIT!
17 // source: google/cloud/retail/v2/product_service.proto
18 
19 package com.google.cloud.retail.v2;
20 
21 /**
22  *
23  *
24  * <pre>
25  * Request message for
26  * [ProductService.SetInventory][google.cloud.retail.v2.ProductService.SetInventory]
27  * method.
28  * </pre>
29  *
30  * Protobuf type {@code google.cloud.retail.v2.SetInventoryRequest}
31  */
32 public final class SetInventoryRequest extends com.google.protobuf.GeneratedMessageV3
33     implements
34     // @@protoc_insertion_point(message_implements:google.cloud.retail.v2.SetInventoryRequest)
35     SetInventoryRequestOrBuilder {
36   private static final long serialVersionUID = 0L;
37   // Use SetInventoryRequest.newBuilder() to construct.
SetInventoryRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)38   private SetInventoryRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
39     super(builder);
40   }
41 
SetInventoryRequest()42   private SetInventoryRequest() {}
43 
44   @java.lang.Override
45   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)46   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
47     return new SetInventoryRequest();
48   }
49 
50   @java.lang.Override
getUnknownFields()51   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
52     return this.unknownFields;
53   }
54 
getDescriptor()55   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
56     return com.google.cloud.retail.v2.ProductServiceProto
57         .internal_static_google_cloud_retail_v2_SetInventoryRequest_descriptor;
58   }
59 
60   @java.lang.Override
61   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()62       internalGetFieldAccessorTable() {
63     return com.google.cloud.retail.v2.ProductServiceProto
64         .internal_static_google_cloud_retail_v2_SetInventoryRequest_fieldAccessorTable
65         .ensureFieldAccessorsInitialized(
66             com.google.cloud.retail.v2.SetInventoryRequest.class,
67             com.google.cloud.retail.v2.SetInventoryRequest.Builder.class);
68   }
69 
70   public static final int INVENTORY_FIELD_NUMBER = 1;
71   private com.google.cloud.retail.v2.Product inventory_;
72   /**
73    *
74    *
75    * <pre>
76    * Required. The inventory information to update. The allowable fields to
77    * update are:
78    * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
79    * * [Product.availability][google.cloud.retail.v2.Product.availability]
80    * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
81    * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
82    * The updated inventory fields must be specified in
83    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
84    * If
85    * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
86    * is empty or invalid, an INVALID_ARGUMENT error is returned.
87    * If the caller does not have permission to update the
88    * [Product][google.cloud.retail.v2.Product] named in
89    * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
90    * or not it exists, a PERMISSION_DENIED error is returned.
91    * If the [Product][google.cloud.retail.v2.Product] to update does not have
92    * existing inventory information, the provided inventory information will be
93    * inserted.
94    * If the [Product][google.cloud.retail.v2.Product] to update has existing
95    * inventory information, the provided inventory information will be merged
96    * while respecting the last update time for each inventory field, using the
97    * provided or default value for
98    * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
99    * The caller can replace place IDs for a subset of fulfillment types in the
100    * following ways:
101    * * Adds "fulfillment_info" in
102    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
103    * * Specifies only the desired fulfillment types and corresponding place IDs
104    * to update in
105    * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
106    * The caller can clear all place IDs from a subset of fulfillment types in
107    * the following ways:
108    * * Adds "fulfillment_info" in
109    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
110    * * Specifies only the desired fulfillment types to clear in
111    * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
112    * * Checks that only the desired fulfillment info types have empty
113    * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
114    * The last update time is recorded for the following inventory fields:
115    * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
116    * * [Product.availability][google.cloud.retail.v2.Product.availability]
117    * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
118    * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
119    * If a full overwrite of inventory information while ignoring timestamps is
120    * needed,
121    * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
122    * should be invoked instead.
123    * </pre>
124    *
125    * <code>.google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
126    * </code>
127    *
128    * @return Whether the inventory field is set.
129    */
130   @java.lang.Override
hasInventory()131   public boolean hasInventory() {
132     return inventory_ != null;
133   }
134   /**
135    *
136    *
137    * <pre>
138    * Required. The inventory information to update. The allowable fields to
139    * update are:
140    * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
141    * * [Product.availability][google.cloud.retail.v2.Product.availability]
142    * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
143    * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
144    * The updated inventory fields must be specified in
145    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
146    * If
147    * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
148    * is empty or invalid, an INVALID_ARGUMENT error is returned.
149    * If the caller does not have permission to update the
150    * [Product][google.cloud.retail.v2.Product] named in
151    * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
152    * or not it exists, a PERMISSION_DENIED error is returned.
153    * If the [Product][google.cloud.retail.v2.Product] to update does not have
154    * existing inventory information, the provided inventory information will be
155    * inserted.
156    * If the [Product][google.cloud.retail.v2.Product] to update has existing
157    * inventory information, the provided inventory information will be merged
158    * while respecting the last update time for each inventory field, using the
159    * provided or default value for
160    * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
161    * The caller can replace place IDs for a subset of fulfillment types in the
162    * following ways:
163    * * Adds "fulfillment_info" in
164    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
165    * * Specifies only the desired fulfillment types and corresponding place IDs
166    * to update in
167    * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
168    * The caller can clear all place IDs from a subset of fulfillment types in
169    * the following ways:
170    * * Adds "fulfillment_info" in
171    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
172    * * Specifies only the desired fulfillment types to clear in
173    * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
174    * * Checks that only the desired fulfillment info types have empty
175    * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
176    * The last update time is recorded for the following inventory fields:
177    * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
178    * * [Product.availability][google.cloud.retail.v2.Product.availability]
179    * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
180    * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
181    * If a full overwrite of inventory information while ignoring timestamps is
182    * needed,
183    * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
184    * should be invoked instead.
185    * </pre>
186    *
187    * <code>.google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
188    * </code>
189    *
190    * @return The inventory.
191    */
192   @java.lang.Override
getInventory()193   public com.google.cloud.retail.v2.Product getInventory() {
194     return inventory_ == null
195         ? com.google.cloud.retail.v2.Product.getDefaultInstance()
196         : inventory_;
197   }
198   /**
199    *
200    *
201    * <pre>
202    * Required. The inventory information to update. The allowable fields to
203    * update are:
204    * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
205    * * [Product.availability][google.cloud.retail.v2.Product.availability]
206    * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
207    * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
208    * The updated inventory fields must be specified in
209    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
210    * If
211    * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
212    * is empty or invalid, an INVALID_ARGUMENT error is returned.
213    * If the caller does not have permission to update the
214    * [Product][google.cloud.retail.v2.Product] named in
215    * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
216    * or not it exists, a PERMISSION_DENIED error is returned.
217    * If the [Product][google.cloud.retail.v2.Product] to update does not have
218    * existing inventory information, the provided inventory information will be
219    * inserted.
220    * If the [Product][google.cloud.retail.v2.Product] to update has existing
221    * inventory information, the provided inventory information will be merged
222    * while respecting the last update time for each inventory field, using the
223    * provided or default value for
224    * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
225    * The caller can replace place IDs for a subset of fulfillment types in the
226    * following ways:
227    * * Adds "fulfillment_info" in
228    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
229    * * Specifies only the desired fulfillment types and corresponding place IDs
230    * to update in
231    * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
232    * The caller can clear all place IDs from a subset of fulfillment types in
233    * the following ways:
234    * * Adds "fulfillment_info" in
235    * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
236    * * Specifies only the desired fulfillment types to clear in
237    * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
238    * * Checks that only the desired fulfillment info types have empty
239    * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
240    * The last update time is recorded for the following inventory fields:
241    * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
242    * * [Product.availability][google.cloud.retail.v2.Product.availability]
243    * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
244    * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
245    * If a full overwrite of inventory information while ignoring timestamps is
246    * needed,
247    * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
248    * should be invoked instead.
249    * </pre>
250    *
251    * <code>.google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
252    * </code>
253    */
254   @java.lang.Override
getInventoryOrBuilder()255   public com.google.cloud.retail.v2.ProductOrBuilder getInventoryOrBuilder() {
256     return inventory_ == null
257         ? com.google.cloud.retail.v2.Product.getDefaultInstance()
258         : inventory_;
259   }
260 
261   public static final int SET_MASK_FIELD_NUMBER = 2;
262   private com.google.protobuf.FieldMask setMask_;
263   /**
264    *
265    *
266    * <pre>
267    * Indicates which inventory fields in the provided
268    * [Product][google.cloud.retail.v2.Product] to update.
269    * At least one field must be provided.
270    * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
271    * is returned and the entire update will be ignored.
272    * </pre>
273    *
274    * <code>.google.protobuf.FieldMask set_mask = 2;</code>
275    *
276    * @return Whether the setMask field is set.
277    */
278   @java.lang.Override
hasSetMask()279   public boolean hasSetMask() {
280     return setMask_ != null;
281   }
282   /**
283    *
284    *
285    * <pre>
286    * Indicates which inventory fields in the provided
287    * [Product][google.cloud.retail.v2.Product] to update.
288    * At least one field must be provided.
289    * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
290    * is returned and the entire update will be ignored.
291    * </pre>
292    *
293    * <code>.google.protobuf.FieldMask set_mask = 2;</code>
294    *
295    * @return The setMask.
296    */
297   @java.lang.Override
getSetMask()298   public com.google.protobuf.FieldMask getSetMask() {
299     return setMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : setMask_;
300   }
301   /**
302    *
303    *
304    * <pre>
305    * Indicates which inventory fields in the provided
306    * [Product][google.cloud.retail.v2.Product] to update.
307    * At least one field must be provided.
308    * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
309    * is returned and the entire update will be ignored.
310    * </pre>
311    *
312    * <code>.google.protobuf.FieldMask set_mask = 2;</code>
313    */
314   @java.lang.Override
getSetMaskOrBuilder()315   public com.google.protobuf.FieldMaskOrBuilder getSetMaskOrBuilder() {
316     return setMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : setMask_;
317   }
318 
319   public static final int SET_TIME_FIELD_NUMBER = 3;
320   private com.google.protobuf.Timestamp setTime_;
321   /**
322    *
323    *
324    * <pre>
325    * The time when the request is issued, used to prevent
326    * out-of-order updates on inventory fields with the last update time
327    * recorded. If not provided, the internal system time will be used.
328    * </pre>
329    *
330    * <code>.google.protobuf.Timestamp set_time = 3;</code>
331    *
332    * @return Whether the setTime field is set.
333    */
334   @java.lang.Override
hasSetTime()335   public boolean hasSetTime() {
336     return setTime_ != null;
337   }
338   /**
339    *
340    *
341    * <pre>
342    * The time when the request is issued, used to prevent
343    * out-of-order updates on inventory fields with the last update time
344    * recorded. If not provided, the internal system time will be used.
345    * </pre>
346    *
347    * <code>.google.protobuf.Timestamp set_time = 3;</code>
348    *
349    * @return The setTime.
350    */
351   @java.lang.Override
getSetTime()352   public com.google.protobuf.Timestamp getSetTime() {
353     return setTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : setTime_;
354   }
355   /**
356    *
357    *
358    * <pre>
359    * The time when the request is issued, used to prevent
360    * out-of-order updates on inventory fields with the last update time
361    * recorded. If not provided, the internal system time will be used.
362    * </pre>
363    *
364    * <code>.google.protobuf.Timestamp set_time = 3;</code>
365    */
366   @java.lang.Override
getSetTimeOrBuilder()367   public com.google.protobuf.TimestampOrBuilder getSetTimeOrBuilder() {
368     return setTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : setTime_;
369   }
370 
371   public static final int ALLOW_MISSING_FIELD_NUMBER = 4;
372   private boolean allowMissing_ = false;
373   /**
374    *
375    *
376    * <pre>
377    * If set to true, and the [Product][google.cloud.retail.v2.Product] with name
378    * [Product.name][google.cloud.retail.v2.Product.name] is not found, the
379    * inventory update will still be processed and retained for at most 1 day
380    * until the [Product][google.cloud.retail.v2.Product] is created. If set to
381    * false, a NOT_FOUND error is returned if the
382    * [Product][google.cloud.retail.v2.Product] is not found.
383    * </pre>
384    *
385    * <code>bool allow_missing = 4;</code>
386    *
387    * @return The allowMissing.
388    */
389   @java.lang.Override
getAllowMissing()390   public boolean getAllowMissing() {
391     return allowMissing_;
392   }
393 
394   private byte memoizedIsInitialized = -1;
395 
396   @java.lang.Override
isInitialized()397   public final boolean isInitialized() {
398     byte isInitialized = memoizedIsInitialized;
399     if (isInitialized == 1) return true;
400     if (isInitialized == 0) return false;
401 
402     memoizedIsInitialized = 1;
403     return true;
404   }
405 
406   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)407   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
408     if (inventory_ != null) {
409       output.writeMessage(1, getInventory());
410     }
411     if (setMask_ != null) {
412       output.writeMessage(2, getSetMask());
413     }
414     if (setTime_ != null) {
415       output.writeMessage(3, getSetTime());
416     }
417     if (allowMissing_ != false) {
418       output.writeBool(4, allowMissing_);
419     }
420     getUnknownFields().writeTo(output);
421   }
422 
423   @java.lang.Override
getSerializedSize()424   public int getSerializedSize() {
425     int size = memoizedSize;
426     if (size != -1) return size;
427 
428     size = 0;
429     if (inventory_ != null) {
430       size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getInventory());
431     }
432     if (setMask_ != null) {
433       size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSetMask());
434     }
435     if (setTime_ != null) {
436       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getSetTime());
437     }
438     if (allowMissing_ != false) {
439       size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, allowMissing_);
440     }
441     size += getUnknownFields().getSerializedSize();
442     memoizedSize = size;
443     return size;
444   }
445 
446   @java.lang.Override
equals(final java.lang.Object obj)447   public boolean equals(final java.lang.Object obj) {
448     if (obj == this) {
449       return true;
450     }
451     if (!(obj instanceof com.google.cloud.retail.v2.SetInventoryRequest)) {
452       return super.equals(obj);
453     }
454     com.google.cloud.retail.v2.SetInventoryRequest other =
455         (com.google.cloud.retail.v2.SetInventoryRequest) obj;
456 
457     if (hasInventory() != other.hasInventory()) return false;
458     if (hasInventory()) {
459       if (!getInventory().equals(other.getInventory())) return false;
460     }
461     if (hasSetMask() != other.hasSetMask()) return false;
462     if (hasSetMask()) {
463       if (!getSetMask().equals(other.getSetMask())) return false;
464     }
465     if (hasSetTime() != other.hasSetTime()) return false;
466     if (hasSetTime()) {
467       if (!getSetTime().equals(other.getSetTime())) return false;
468     }
469     if (getAllowMissing() != other.getAllowMissing()) return false;
470     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
471     return true;
472   }
473 
474   @java.lang.Override
hashCode()475   public int hashCode() {
476     if (memoizedHashCode != 0) {
477       return memoizedHashCode;
478     }
479     int hash = 41;
480     hash = (19 * hash) + getDescriptor().hashCode();
481     if (hasInventory()) {
482       hash = (37 * hash) + INVENTORY_FIELD_NUMBER;
483       hash = (53 * hash) + getInventory().hashCode();
484     }
485     if (hasSetMask()) {
486       hash = (37 * hash) + SET_MASK_FIELD_NUMBER;
487       hash = (53 * hash) + getSetMask().hashCode();
488     }
489     if (hasSetTime()) {
490       hash = (37 * hash) + SET_TIME_FIELD_NUMBER;
491       hash = (53 * hash) + getSetTime().hashCode();
492     }
493     hash = (37 * hash) + ALLOW_MISSING_FIELD_NUMBER;
494     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowMissing());
495     hash = (29 * hash) + getUnknownFields().hashCode();
496     memoizedHashCode = hash;
497     return hash;
498   }
499 
parseFrom(java.nio.ByteBuffer data)500   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(java.nio.ByteBuffer data)
501       throws com.google.protobuf.InvalidProtocolBufferException {
502     return PARSER.parseFrom(data);
503   }
504 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)505   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(
506       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
507       throws com.google.protobuf.InvalidProtocolBufferException {
508     return PARSER.parseFrom(data, extensionRegistry);
509   }
510 
parseFrom( com.google.protobuf.ByteString data)511   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(
512       com.google.protobuf.ByteString data)
513       throws com.google.protobuf.InvalidProtocolBufferException {
514     return PARSER.parseFrom(data);
515   }
516 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)517   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(
518       com.google.protobuf.ByteString data,
519       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
520       throws com.google.protobuf.InvalidProtocolBufferException {
521     return PARSER.parseFrom(data, extensionRegistry);
522   }
523 
parseFrom(byte[] data)524   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(byte[] data)
525       throws com.google.protobuf.InvalidProtocolBufferException {
526     return PARSER.parseFrom(data);
527   }
528 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)529   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(
530       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
531       throws com.google.protobuf.InvalidProtocolBufferException {
532     return PARSER.parseFrom(data, extensionRegistry);
533   }
534 
parseFrom(java.io.InputStream input)535   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(java.io.InputStream input)
536       throws java.io.IOException {
537     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
538   }
539 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)540   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(
541       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
542       throws java.io.IOException {
543     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
544         PARSER, input, extensionRegistry);
545   }
546 
parseDelimitedFrom( java.io.InputStream input)547   public static com.google.cloud.retail.v2.SetInventoryRequest parseDelimitedFrom(
548       java.io.InputStream input) throws java.io.IOException {
549     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
550   }
551 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)552   public static com.google.cloud.retail.v2.SetInventoryRequest parseDelimitedFrom(
553       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
554       throws java.io.IOException {
555     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
556         PARSER, input, extensionRegistry);
557   }
558 
parseFrom( com.google.protobuf.CodedInputStream input)559   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(
560       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
561     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
562   }
563 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)564   public static com.google.cloud.retail.v2.SetInventoryRequest parseFrom(
565       com.google.protobuf.CodedInputStream input,
566       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
567       throws java.io.IOException {
568     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
569         PARSER, input, extensionRegistry);
570   }
571 
572   @java.lang.Override
newBuilderForType()573   public Builder newBuilderForType() {
574     return newBuilder();
575   }
576 
newBuilder()577   public static Builder newBuilder() {
578     return DEFAULT_INSTANCE.toBuilder();
579   }
580 
newBuilder(com.google.cloud.retail.v2.SetInventoryRequest prototype)581   public static Builder newBuilder(com.google.cloud.retail.v2.SetInventoryRequest prototype) {
582     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
583   }
584 
585   @java.lang.Override
toBuilder()586   public Builder toBuilder() {
587     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
588   }
589 
590   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)591   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
592     Builder builder = new Builder(parent);
593     return builder;
594   }
595   /**
596    *
597    *
598    * <pre>
599    * Request message for
600    * [ProductService.SetInventory][google.cloud.retail.v2.ProductService.SetInventory]
601    * method.
602    * </pre>
603    *
604    * Protobuf type {@code google.cloud.retail.v2.SetInventoryRequest}
605    */
606   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
607       implements
608       // @@protoc_insertion_point(builder_implements:google.cloud.retail.v2.SetInventoryRequest)
609       com.google.cloud.retail.v2.SetInventoryRequestOrBuilder {
getDescriptor()610     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
611       return com.google.cloud.retail.v2.ProductServiceProto
612           .internal_static_google_cloud_retail_v2_SetInventoryRequest_descriptor;
613     }
614 
615     @java.lang.Override
616     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()617         internalGetFieldAccessorTable() {
618       return com.google.cloud.retail.v2.ProductServiceProto
619           .internal_static_google_cloud_retail_v2_SetInventoryRequest_fieldAccessorTable
620           .ensureFieldAccessorsInitialized(
621               com.google.cloud.retail.v2.SetInventoryRequest.class,
622               com.google.cloud.retail.v2.SetInventoryRequest.Builder.class);
623     }
624 
625     // Construct using com.google.cloud.retail.v2.SetInventoryRequest.newBuilder()
Builder()626     private Builder() {}
627 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)628     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
629       super(parent);
630     }
631 
632     @java.lang.Override
clear()633     public Builder clear() {
634       super.clear();
635       bitField0_ = 0;
636       inventory_ = null;
637       if (inventoryBuilder_ != null) {
638         inventoryBuilder_.dispose();
639         inventoryBuilder_ = null;
640       }
641       setMask_ = null;
642       if (setMaskBuilder_ != null) {
643         setMaskBuilder_.dispose();
644         setMaskBuilder_ = null;
645       }
646       setTime_ = null;
647       if (setTimeBuilder_ != null) {
648         setTimeBuilder_.dispose();
649         setTimeBuilder_ = null;
650       }
651       allowMissing_ = false;
652       return this;
653     }
654 
655     @java.lang.Override
getDescriptorForType()656     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
657       return com.google.cloud.retail.v2.ProductServiceProto
658           .internal_static_google_cloud_retail_v2_SetInventoryRequest_descriptor;
659     }
660 
661     @java.lang.Override
getDefaultInstanceForType()662     public com.google.cloud.retail.v2.SetInventoryRequest getDefaultInstanceForType() {
663       return com.google.cloud.retail.v2.SetInventoryRequest.getDefaultInstance();
664     }
665 
666     @java.lang.Override
build()667     public com.google.cloud.retail.v2.SetInventoryRequest build() {
668       com.google.cloud.retail.v2.SetInventoryRequest result = buildPartial();
669       if (!result.isInitialized()) {
670         throw newUninitializedMessageException(result);
671       }
672       return result;
673     }
674 
675     @java.lang.Override
buildPartial()676     public com.google.cloud.retail.v2.SetInventoryRequest buildPartial() {
677       com.google.cloud.retail.v2.SetInventoryRequest result =
678           new com.google.cloud.retail.v2.SetInventoryRequest(this);
679       if (bitField0_ != 0) {
680         buildPartial0(result);
681       }
682       onBuilt();
683       return result;
684     }
685 
buildPartial0(com.google.cloud.retail.v2.SetInventoryRequest result)686     private void buildPartial0(com.google.cloud.retail.v2.SetInventoryRequest result) {
687       int from_bitField0_ = bitField0_;
688       if (((from_bitField0_ & 0x00000001) != 0)) {
689         result.inventory_ = inventoryBuilder_ == null ? inventory_ : inventoryBuilder_.build();
690       }
691       if (((from_bitField0_ & 0x00000002) != 0)) {
692         result.setMask_ = setMaskBuilder_ == null ? setMask_ : setMaskBuilder_.build();
693       }
694       if (((from_bitField0_ & 0x00000004) != 0)) {
695         result.setTime_ = setTimeBuilder_ == null ? setTime_ : setTimeBuilder_.build();
696       }
697       if (((from_bitField0_ & 0x00000008) != 0)) {
698         result.allowMissing_ = allowMissing_;
699       }
700     }
701 
702     @java.lang.Override
clone()703     public Builder clone() {
704       return super.clone();
705     }
706 
707     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)708     public Builder setField(
709         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
710       return super.setField(field, value);
711     }
712 
713     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)714     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
715       return super.clearField(field);
716     }
717 
718     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)719     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
720       return super.clearOneof(oneof);
721     }
722 
723     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)724     public Builder setRepeatedField(
725         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
726       return super.setRepeatedField(field, index, value);
727     }
728 
729     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)730     public Builder addRepeatedField(
731         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
732       return super.addRepeatedField(field, value);
733     }
734 
735     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)736     public Builder mergeFrom(com.google.protobuf.Message other) {
737       if (other instanceof com.google.cloud.retail.v2.SetInventoryRequest) {
738         return mergeFrom((com.google.cloud.retail.v2.SetInventoryRequest) other);
739       } else {
740         super.mergeFrom(other);
741         return this;
742       }
743     }
744 
mergeFrom(com.google.cloud.retail.v2.SetInventoryRequest other)745     public Builder mergeFrom(com.google.cloud.retail.v2.SetInventoryRequest other) {
746       if (other == com.google.cloud.retail.v2.SetInventoryRequest.getDefaultInstance()) return this;
747       if (other.hasInventory()) {
748         mergeInventory(other.getInventory());
749       }
750       if (other.hasSetMask()) {
751         mergeSetMask(other.getSetMask());
752       }
753       if (other.hasSetTime()) {
754         mergeSetTime(other.getSetTime());
755       }
756       if (other.getAllowMissing() != false) {
757         setAllowMissing(other.getAllowMissing());
758       }
759       this.mergeUnknownFields(other.getUnknownFields());
760       onChanged();
761       return this;
762     }
763 
764     @java.lang.Override
isInitialized()765     public final boolean isInitialized() {
766       return true;
767     }
768 
769     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)770     public Builder mergeFrom(
771         com.google.protobuf.CodedInputStream input,
772         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
773         throws java.io.IOException {
774       if (extensionRegistry == null) {
775         throw new java.lang.NullPointerException();
776       }
777       try {
778         boolean done = false;
779         while (!done) {
780           int tag = input.readTag();
781           switch (tag) {
782             case 0:
783               done = true;
784               break;
785             case 10:
786               {
787                 input.readMessage(getInventoryFieldBuilder().getBuilder(), extensionRegistry);
788                 bitField0_ |= 0x00000001;
789                 break;
790               } // case 10
791             case 18:
792               {
793                 input.readMessage(getSetMaskFieldBuilder().getBuilder(), extensionRegistry);
794                 bitField0_ |= 0x00000002;
795                 break;
796               } // case 18
797             case 26:
798               {
799                 input.readMessage(getSetTimeFieldBuilder().getBuilder(), extensionRegistry);
800                 bitField0_ |= 0x00000004;
801                 break;
802               } // case 26
803             case 32:
804               {
805                 allowMissing_ = input.readBool();
806                 bitField0_ |= 0x00000008;
807                 break;
808               } // case 32
809             default:
810               {
811                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
812                   done = true; // was an endgroup tag
813                 }
814                 break;
815               } // default:
816           } // switch (tag)
817         } // while (!done)
818       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
819         throw e.unwrapIOException();
820       } finally {
821         onChanged();
822       } // finally
823       return this;
824     }
825 
826     private int bitField0_;
827 
828     private com.google.cloud.retail.v2.Product inventory_;
829     private com.google.protobuf.SingleFieldBuilderV3<
830             com.google.cloud.retail.v2.Product,
831             com.google.cloud.retail.v2.Product.Builder,
832             com.google.cloud.retail.v2.ProductOrBuilder>
833         inventoryBuilder_;
834     /**
835      *
836      *
837      * <pre>
838      * Required. The inventory information to update. The allowable fields to
839      * update are:
840      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
841      * * [Product.availability][google.cloud.retail.v2.Product.availability]
842      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
843      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
844      * The updated inventory fields must be specified in
845      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
846      * If
847      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
848      * is empty or invalid, an INVALID_ARGUMENT error is returned.
849      * If the caller does not have permission to update the
850      * [Product][google.cloud.retail.v2.Product] named in
851      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
852      * or not it exists, a PERMISSION_DENIED error is returned.
853      * If the [Product][google.cloud.retail.v2.Product] to update does not have
854      * existing inventory information, the provided inventory information will be
855      * inserted.
856      * If the [Product][google.cloud.retail.v2.Product] to update has existing
857      * inventory information, the provided inventory information will be merged
858      * while respecting the last update time for each inventory field, using the
859      * provided or default value for
860      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
861      * The caller can replace place IDs for a subset of fulfillment types in the
862      * following ways:
863      * * Adds "fulfillment_info" in
864      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
865      * * Specifies only the desired fulfillment types and corresponding place IDs
866      * to update in
867      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
868      * The caller can clear all place IDs from a subset of fulfillment types in
869      * the following ways:
870      * * Adds "fulfillment_info" in
871      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
872      * * Specifies only the desired fulfillment types to clear in
873      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
874      * * Checks that only the desired fulfillment info types have empty
875      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
876      * The last update time is recorded for the following inventory fields:
877      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
878      * * [Product.availability][google.cloud.retail.v2.Product.availability]
879      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
880      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
881      * If a full overwrite of inventory information while ignoring timestamps is
882      * needed,
883      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
884      * should be invoked instead.
885      * </pre>
886      *
887      * <code>
888      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
889      * </code>
890      *
891      * @return Whether the inventory field is set.
892      */
hasInventory()893     public boolean hasInventory() {
894       return ((bitField0_ & 0x00000001) != 0);
895     }
896     /**
897      *
898      *
899      * <pre>
900      * Required. The inventory information to update. The allowable fields to
901      * update are:
902      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
903      * * [Product.availability][google.cloud.retail.v2.Product.availability]
904      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
905      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
906      * The updated inventory fields must be specified in
907      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
908      * If
909      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
910      * is empty or invalid, an INVALID_ARGUMENT error is returned.
911      * If the caller does not have permission to update the
912      * [Product][google.cloud.retail.v2.Product] named in
913      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
914      * or not it exists, a PERMISSION_DENIED error is returned.
915      * If the [Product][google.cloud.retail.v2.Product] to update does not have
916      * existing inventory information, the provided inventory information will be
917      * inserted.
918      * If the [Product][google.cloud.retail.v2.Product] to update has existing
919      * inventory information, the provided inventory information will be merged
920      * while respecting the last update time for each inventory field, using the
921      * provided or default value for
922      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
923      * The caller can replace place IDs for a subset of fulfillment types in the
924      * following ways:
925      * * Adds "fulfillment_info" in
926      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
927      * * Specifies only the desired fulfillment types and corresponding place IDs
928      * to update in
929      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
930      * The caller can clear all place IDs from a subset of fulfillment types in
931      * the following ways:
932      * * Adds "fulfillment_info" in
933      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
934      * * Specifies only the desired fulfillment types to clear in
935      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
936      * * Checks that only the desired fulfillment info types have empty
937      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
938      * The last update time is recorded for the following inventory fields:
939      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
940      * * [Product.availability][google.cloud.retail.v2.Product.availability]
941      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
942      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
943      * If a full overwrite of inventory information while ignoring timestamps is
944      * needed,
945      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
946      * should be invoked instead.
947      * </pre>
948      *
949      * <code>
950      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
951      * </code>
952      *
953      * @return The inventory.
954      */
getInventory()955     public com.google.cloud.retail.v2.Product getInventory() {
956       if (inventoryBuilder_ == null) {
957         return inventory_ == null
958             ? com.google.cloud.retail.v2.Product.getDefaultInstance()
959             : inventory_;
960       } else {
961         return inventoryBuilder_.getMessage();
962       }
963     }
964     /**
965      *
966      *
967      * <pre>
968      * Required. The inventory information to update. The allowable fields to
969      * update are:
970      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
971      * * [Product.availability][google.cloud.retail.v2.Product.availability]
972      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
973      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
974      * The updated inventory fields must be specified in
975      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
976      * If
977      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
978      * is empty or invalid, an INVALID_ARGUMENT error is returned.
979      * If the caller does not have permission to update the
980      * [Product][google.cloud.retail.v2.Product] named in
981      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
982      * or not it exists, a PERMISSION_DENIED error is returned.
983      * If the [Product][google.cloud.retail.v2.Product] to update does not have
984      * existing inventory information, the provided inventory information will be
985      * inserted.
986      * If the [Product][google.cloud.retail.v2.Product] to update has existing
987      * inventory information, the provided inventory information will be merged
988      * while respecting the last update time for each inventory field, using the
989      * provided or default value for
990      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
991      * The caller can replace place IDs for a subset of fulfillment types in the
992      * following ways:
993      * * Adds "fulfillment_info" in
994      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
995      * * Specifies only the desired fulfillment types and corresponding place IDs
996      * to update in
997      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
998      * The caller can clear all place IDs from a subset of fulfillment types in
999      * the following ways:
1000      * * Adds "fulfillment_info" in
1001      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1002      * * Specifies only the desired fulfillment types to clear in
1003      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1004      * * Checks that only the desired fulfillment info types have empty
1005      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
1006      * The last update time is recorded for the following inventory fields:
1007      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1008      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1009      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1010      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1011      * If a full overwrite of inventory information while ignoring timestamps is
1012      * needed,
1013      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
1014      * should be invoked instead.
1015      * </pre>
1016      *
1017      * <code>
1018      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
1019      * </code>
1020      */
setInventory(com.google.cloud.retail.v2.Product value)1021     public Builder setInventory(com.google.cloud.retail.v2.Product value) {
1022       if (inventoryBuilder_ == null) {
1023         if (value == null) {
1024           throw new NullPointerException();
1025         }
1026         inventory_ = value;
1027       } else {
1028         inventoryBuilder_.setMessage(value);
1029       }
1030       bitField0_ |= 0x00000001;
1031       onChanged();
1032       return this;
1033     }
1034     /**
1035      *
1036      *
1037      * <pre>
1038      * Required. The inventory information to update. The allowable fields to
1039      * update are:
1040      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1041      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1042      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1043      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1044      * The updated inventory fields must be specified in
1045      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
1046      * If
1047      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
1048      * is empty or invalid, an INVALID_ARGUMENT error is returned.
1049      * If the caller does not have permission to update the
1050      * [Product][google.cloud.retail.v2.Product] named in
1051      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
1052      * or not it exists, a PERMISSION_DENIED error is returned.
1053      * If the [Product][google.cloud.retail.v2.Product] to update does not have
1054      * existing inventory information, the provided inventory information will be
1055      * inserted.
1056      * If the [Product][google.cloud.retail.v2.Product] to update has existing
1057      * inventory information, the provided inventory information will be merged
1058      * while respecting the last update time for each inventory field, using the
1059      * provided or default value for
1060      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
1061      * The caller can replace place IDs for a subset of fulfillment types in the
1062      * following ways:
1063      * * Adds "fulfillment_info" in
1064      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1065      * * Specifies only the desired fulfillment types and corresponding place IDs
1066      * to update in
1067      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1068      * The caller can clear all place IDs from a subset of fulfillment types in
1069      * the following ways:
1070      * * Adds "fulfillment_info" in
1071      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1072      * * Specifies only the desired fulfillment types to clear in
1073      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1074      * * Checks that only the desired fulfillment info types have empty
1075      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
1076      * The last update time is recorded for the following inventory fields:
1077      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1078      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1079      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1080      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1081      * If a full overwrite of inventory information while ignoring timestamps is
1082      * needed,
1083      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
1084      * should be invoked instead.
1085      * </pre>
1086      *
1087      * <code>
1088      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
1089      * </code>
1090      */
setInventory(com.google.cloud.retail.v2.Product.Builder builderForValue)1091     public Builder setInventory(com.google.cloud.retail.v2.Product.Builder builderForValue) {
1092       if (inventoryBuilder_ == null) {
1093         inventory_ = builderForValue.build();
1094       } else {
1095         inventoryBuilder_.setMessage(builderForValue.build());
1096       }
1097       bitField0_ |= 0x00000001;
1098       onChanged();
1099       return this;
1100     }
1101     /**
1102      *
1103      *
1104      * <pre>
1105      * Required. The inventory information to update. The allowable fields to
1106      * update are:
1107      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1108      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1109      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1110      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1111      * The updated inventory fields must be specified in
1112      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
1113      * If
1114      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
1115      * is empty or invalid, an INVALID_ARGUMENT error is returned.
1116      * If the caller does not have permission to update the
1117      * [Product][google.cloud.retail.v2.Product] named in
1118      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
1119      * or not it exists, a PERMISSION_DENIED error is returned.
1120      * If the [Product][google.cloud.retail.v2.Product] to update does not have
1121      * existing inventory information, the provided inventory information will be
1122      * inserted.
1123      * If the [Product][google.cloud.retail.v2.Product] to update has existing
1124      * inventory information, the provided inventory information will be merged
1125      * while respecting the last update time for each inventory field, using the
1126      * provided or default value for
1127      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
1128      * The caller can replace place IDs for a subset of fulfillment types in the
1129      * following ways:
1130      * * Adds "fulfillment_info" in
1131      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1132      * * Specifies only the desired fulfillment types and corresponding place IDs
1133      * to update in
1134      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1135      * The caller can clear all place IDs from a subset of fulfillment types in
1136      * the following ways:
1137      * * Adds "fulfillment_info" in
1138      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1139      * * Specifies only the desired fulfillment types to clear in
1140      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1141      * * Checks that only the desired fulfillment info types have empty
1142      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
1143      * The last update time is recorded for the following inventory fields:
1144      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1145      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1146      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1147      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1148      * If a full overwrite of inventory information while ignoring timestamps is
1149      * needed,
1150      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
1151      * should be invoked instead.
1152      * </pre>
1153      *
1154      * <code>
1155      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
1156      * </code>
1157      */
mergeInventory(com.google.cloud.retail.v2.Product value)1158     public Builder mergeInventory(com.google.cloud.retail.v2.Product value) {
1159       if (inventoryBuilder_ == null) {
1160         if (((bitField0_ & 0x00000001) != 0)
1161             && inventory_ != null
1162             && inventory_ != com.google.cloud.retail.v2.Product.getDefaultInstance()) {
1163           getInventoryBuilder().mergeFrom(value);
1164         } else {
1165           inventory_ = value;
1166         }
1167       } else {
1168         inventoryBuilder_.mergeFrom(value);
1169       }
1170       bitField0_ |= 0x00000001;
1171       onChanged();
1172       return this;
1173     }
1174     /**
1175      *
1176      *
1177      * <pre>
1178      * Required. The inventory information to update. The allowable fields to
1179      * update are:
1180      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1181      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1182      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1183      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1184      * The updated inventory fields must be specified in
1185      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
1186      * If
1187      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
1188      * is empty or invalid, an INVALID_ARGUMENT error is returned.
1189      * If the caller does not have permission to update the
1190      * [Product][google.cloud.retail.v2.Product] named in
1191      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
1192      * or not it exists, a PERMISSION_DENIED error is returned.
1193      * If the [Product][google.cloud.retail.v2.Product] to update does not have
1194      * existing inventory information, the provided inventory information will be
1195      * inserted.
1196      * If the [Product][google.cloud.retail.v2.Product] to update has existing
1197      * inventory information, the provided inventory information will be merged
1198      * while respecting the last update time for each inventory field, using the
1199      * provided or default value for
1200      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
1201      * The caller can replace place IDs for a subset of fulfillment types in the
1202      * following ways:
1203      * * Adds "fulfillment_info" in
1204      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1205      * * Specifies only the desired fulfillment types and corresponding place IDs
1206      * to update in
1207      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1208      * The caller can clear all place IDs from a subset of fulfillment types in
1209      * the following ways:
1210      * * Adds "fulfillment_info" in
1211      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1212      * * Specifies only the desired fulfillment types to clear in
1213      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1214      * * Checks that only the desired fulfillment info types have empty
1215      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
1216      * The last update time is recorded for the following inventory fields:
1217      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1218      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1219      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1220      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1221      * If a full overwrite of inventory information while ignoring timestamps is
1222      * needed,
1223      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
1224      * should be invoked instead.
1225      * </pre>
1226      *
1227      * <code>
1228      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
1229      * </code>
1230      */
clearInventory()1231     public Builder clearInventory() {
1232       bitField0_ = (bitField0_ & ~0x00000001);
1233       inventory_ = null;
1234       if (inventoryBuilder_ != null) {
1235         inventoryBuilder_.dispose();
1236         inventoryBuilder_ = null;
1237       }
1238       onChanged();
1239       return this;
1240     }
1241     /**
1242      *
1243      *
1244      * <pre>
1245      * Required. The inventory information to update. The allowable fields to
1246      * update are:
1247      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1248      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1249      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1250      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1251      * The updated inventory fields must be specified in
1252      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
1253      * If
1254      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
1255      * is empty or invalid, an INVALID_ARGUMENT error is returned.
1256      * If the caller does not have permission to update the
1257      * [Product][google.cloud.retail.v2.Product] named in
1258      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
1259      * or not it exists, a PERMISSION_DENIED error is returned.
1260      * If the [Product][google.cloud.retail.v2.Product] to update does not have
1261      * existing inventory information, the provided inventory information will be
1262      * inserted.
1263      * If the [Product][google.cloud.retail.v2.Product] to update has existing
1264      * inventory information, the provided inventory information will be merged
1265      * while respecting the last update time for each inventory field, using the
1266      * provided or default value for
1267      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
1268      * The caller can replace place IDs for a subset of fulfillment types in the
1269      * following ways:
1270      * * Adds "fulfillment_info" in
1271      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1272      * * Specifies only the desired fulfillment types and corresponding place IDs
1273      * to update in
1274      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1275      * The caller can clear all place IDs from a subset of fulfillment types in
1276      * the following ways:
1277      * * Adds "fulfillment_info" in
1278      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1279      * * Specifies only the desired fulfillment types to clear in
1280      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1281      * * Checks that only the desired fulfillment info types have empty
1282      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
1283      * The last update time is recorded for the following inventory fields:
1284      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1285      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1286      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1287      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1288      * If a full overwrite of inventory information while ignoring timestamps is
1289      * needed,
1290      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
1291      * should be invoked instead.
1292      * </pre>
1293      *
1294      * <code>
1295      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
1296      * </code>
1297      */
getInventoryBuilder()1298     public com.google.cloud.retail.v2.Product.Builder getInventoryBuilder() {
1299       bitField0_ |= 0x00000001;
1300       onChanged();
1301       return getInventoryFieldBuilder().getBuilder();
1302     }
1303     /**
1304      *
1305      *
1306      * <pre>
1307      * Required. The inventory information to update. The allowable fields to
1308      * update are:
1309      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1310      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1311      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1312      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1313      * The updated inventory fields must be specified in
1314      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
1315      * If
1316      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
1317      * is empty or invalid, an INVALID_ARGUMENT error is returned.
1318      * If the caller does not have permission to update the
1319      * [Product][google.cloud.retail.v2.Product] named in
1320      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
1321      * or not it exists, a PERMISSION_DENIED error is returned.
1322      * If the [Product][google.cloud.retail.v2.Product] to update does not have
1323      * existing inventory information, the provided inventory information will be
1324      * inserted.
1325      * If the [Product][google.cloud.retail.v2.Product] to update has existing
1326      * inventory information, the provided inventory information will be merged
1327      * while respecting the last update time for each inventory field, using the
1328      * provided or default value for
1329      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
1330      * The caller can replace place IDs for a subset of fulfillment types in the
1331      * following ways:
1332      * * Adds "fulfillment_info" in
1333      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1334      * * Specifies only the desired fulfillment types and corresponding place IDs
1335      * to update in
1336      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1337      * The caller can clear all place IDs from a subset of fulfillment types in
1338      * the following ways:
1339      * * Adds "fulfillment_info" in
1340      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1341      * * Specifies only the desired fulfillment types to clear in
1342      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1343      * * Checks that only the desired fulfillment info types have empty
1344      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
1345      * The last update time is recorded for the following inventory fields:
1346      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1347      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1348      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1349      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1350      * If a full overwrite of inventory information while ignoring timestamps is
1351      * needed,
1352      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
1353      * should be invoked instead.
1354      * </pre>
1355      *
1356      * <code>
1357      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
1358      * </code>
1359      */
getInventoryOrBuilder()1360     public com.google.cloud.retail.v2.ProductOrBuilder getInventoryOrBuilder() {
1361       if (inventoryBuilder_ != null) {
1362         return inventoryBuilder_.getMessageOrBuilder();
1363       } else {
1364         return inventory_ == null
1365             ? com.google.cloud.retail.v2.Product.getDefaultInstance()
1366             : inventory_;
1367       }
1368     }
1369     /**
1370      *
1371      *
1372      * <pre>
1373      * Required. The inventory information to update. The allowable fields to
1374      * update are:
1375      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1376      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1377      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1378      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1379      * The updated inventory fields must be specified in
1380      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].
1381      * If
1382      * [SetInventoryRequest.inventory.name][google.cloud.retail.v2.Product.name]
1383      * is empty or invalid, an INVALID_ARGUMENT error is returned.
1384      * If the caller does not have permission to update the
1385      * [Product][google.cloud.retail.v2.Product] named in
1386      * [Product.name][google.cloud.retail.v2.Product.name], regardless of whether
1387      * or not it exists, a PERMISSION_DENIED error is returned.
1388      * If the [Product][google.cloud.retail.v2.Product] to update does not have
1389      * existing inventory information, the provided inventory information will be
1390      * inserted.
1391      * If the [Product][google.cloud.retail.v2.Product] to update has existing
1392      * inventory information, the provided inventory information will be merged
1393      * while respecting the last update time for each inventory field, using the
1394      * provided or default value for
1395      * [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].
1396      * The caller can replace place IDs for a subset of fulfillment types in the
1397      * following ways:
1398      * * Adds "fulfillment_info" in
1399      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1400      * * Specifies only the desired fulfillment types and corresponding place IDs
1401      * to update in
1402      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1403      * The caller can clear all place IDs from a subset of fulfillment types in
1404      * the following ways:
1405      * * Adds "fulfillment_info" in
1406      * [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask]
1407      * * Specifies only the desired fulfillment types to clear in
1408      * [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1409      * * Checks that only the desired fulfillment info types have empty
1410      * [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids]
1411      * The last update time is recorded for the following inventory fields:
1412      * * [Product.price_info][google.cloud.retail.v2.Product.price_info]
1413      * * [Product.availability][google.cloud.retail.v2.Product.availability]
1414      * * [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
1415      * * [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]
1416      * If a full overwrite of inventory information while ignoring timestamps is
1417      * needed,
1418      * [ProductService.UpdateProduct][google.cloud.retail.v2.ProductService.UpdateProduct]
1419      * should be invoked instead.
1420      * </pre>
1421      *
1422      * <code>
1423      * .google.cloud.retail.v2.Product inventory = 1 [(.google.api.field_behavior) = REQUIRED];
1424      * </code>
1425      */
1426     private com.google.protobuf.SingleFieldBuilderV3<
1427             com.google.cloud.retail.v2.Product,
1428             com.google.cloud.retail.v2.Product.Builder,
1429             com.google.cloud.retail.v2.ProductOrBuilder>
getInventoryFieldBuilder()1430         getInventoryFieldBuilder() {
1431       if (inventoryBuilder_ == null) {
1432         inventoryBuilder_ =
1433             new com.google.protobuf.SingleFieldBuilderV3<
1434                 com.google.cloud.retail.v2.Product,
1435                 com.google.cloud.retail.v2.Product.Builder,
1436                 com.google.cloud.retail.v2.ProductOrBuilder>(
1437                 getInventory(), getParentForChildren(), isClean());
1438         inventory_ = null;
1439       }
1440       return inventoryBuilder_;
1441     }
1442 
1443     private com.google.protobuf.FieldMask setMask_;
1444     private com.google.protobuf.SingleFieldBuilderV3<
1445             com.google.protobuf.FieldMask,
1446             com.google.protobuf.FieldMask.Builder,
1447             com.google.protobuf.FieldMaskOrBuilder>
1448         setMaskBuilder_;
1449     /**
1450      *
1451      *
1452      * <pre>
1453      * Indicates which inventory fields in the provided
1454      * [Product][google.cloud.retail.v2.Product] to update.
1455      * At least one field must be provided.
1456      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1457      * is returned and the entire update will be ignored.
1458      * </pre>
1459      *
1460      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1461      *
1462      * @return Whether the setMask field is set.
1463      */
hasSetMask()1464     public boolean hasSetMask() {
1465       return ((bitField0_ & 0x00000002) != 0);
1466     }
1467     /**
1468      *
1469      *
1470      * <pre>
1471      * Indicates which inventory fields in the provided
1472      * [Product][google.cloud.retail.v2.Product] to update.
1473      * At least one field must be provided.
1474      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1475      * is returned and the entire update will be ignored.
1476      * </pre>
1477      *
1478      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1479      *
1480      * @return The setMask.
1481      */
getSetMask()1482     public com.google.protobuf.FieldMask getSetMask() {
1483       if (setMaskBuilder_ == null) {
1484         return setMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : setMask_;
1485       } else {
1486         return setMaskBuilder_.getMessage();
1487       }
1488     }
1489     /**
1490      *
1491      *
1492      * <pre>
1493      * Indicates which inventory fields in the provided
1494      * [Product][google.cloud.retail.v2.Product] to update.
1495      * At least one field must be provided.
1496      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1497      * is returned and the entire update will be ignored.
1498      * </pre>
1499      *
1500      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1501      */
setSetMask(com.google.protobuf.FieldMask value)1502     public Builder setSetMask(com.google.protobuf.FieldMask value) {
1503       if (setMaskBuilder_ == null) {
1504         if (value == null) {
1505           throw new NullPointerException();
1506         }
1507         setMask_ = value;
1508       } else {
1509         setMaskBuilder_.setMessage(value);
1510       }
1511       bitField0_ |= 0x00000002;
1512       onChanged();
1513       return this;
1514     }
1515     /**
1516      *
1517      *
1518      * <pre>
1519      * Indicates which inventory fields in the provided
1520      * [Product][google.cloud.retail.v2.Product] to update.
1521      * At least one field must be provided.
1522      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1523      * is returned and the entire update will be ignored.
1524      * </pre>
1525      *
1526      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1527      */
setSetMask(com.google.protobuf.FieldMask.Builder builderForValue)1528     public Builder setSetMask(com.google.protobuf.FieldMask.Builder builderForValue) {
1529       if (setMaskBuilder_ == null) {
1530         setMask_ = builderForValue.build();
1531       } else {
1532         setMaskBuilder_.setMessage(builderForValue.build());
1533       }
1534       bitField0_ |= 0x00000002;
1535       onChanged();
1536       return this;
1537     }
1538     /**
1539      *
1540      *
1541      * <pre>
1542      * Indicates which inventory fields in the provided
1543      * [Product][google.cloud.retail.v2.Product] to update.
1544      * At least one field must be provided.
1545      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1546      * is returned and the entire update will be ignored.
1547      * </pre>
1548      *
1549      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1550      */
mergeSetMask(com.google.protobuf.FieldMask value)1551     public Builder mergeSetMask(com.google.protobuf.FieldMask value) {
1552       if (setMaskBuilder_ == null) {
1553         if (((bitField0_ & 0x00000002) != 0)
1554             && setMask_ != null
1555             && setMask_ != com.google.protobuf.FieldMask.getDefaultInstance()) {
1556           getSetMaskBuilder().mergeFrom(value);
1557         } else {
1558           setMask_ = value;
1559         }
1560       } else {
1561         setMaskBuilder_.mergeFrom(value);
1562       }
1563       bitField0_ |= 0x00000002;
1564       onChanged();
1565       return this;
1566     }
1567     /**
1568      *
1569      *
1570      * <pre>
1571      * Indicates which inventory fields in the provided
1572      * [Product][google.cloud.retail.v2.Product] to update.
1573      * At least one field must be provided.
1574      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1575      * is returned and the entire update will be ignored.
1576      * </pre>
1577      *
1578      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1579      */
clearSetMask()1580     public Builder clearSetMask() {
1581       bitField0_ = (bitField0_ & ~0x00000002);
1582       setMask_ = null;
1583       if (setMaskBuilder_ != null) {
1584         setMaskBuilder_.dispose();
1585         setMaskBuilder_ = null;
1586       }
1587       onChanged();
1588       return this;
1589     }
1590     /**
1591      *
1592      *
1593      * <pre>
1594      * Indicates which inventory fields in the provided
1595      * [Product][google.cloud.retail.v2.Product] to update.
1596      * At least one field must be provided.
1597      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1598      * is returned and the entire update will be ignored.
1599      * </pre>
1600      *
1601      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1602      */
getSetMaskBuilder()1603     public com.google.protobuf.FieldMask.Builder getSetMaskBuilder() {
1604       bitField0_ |= 0x00000002;
1605       onChanged();
1606       return getSetMaskFieldBuilder().getBuilder();
1607     }
1608     /**
1609      *
1610      *
1611      * <pre>
1612      * Indicates which inventory fields in the provided
1613      * [Product][google.cloud.retail.v2.Product] to update.
1614      * At least one field must be provided.
1615      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1616      * is returned and the entire update will be ignored.
1617      * </pre>
1618      *
1619      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1620      */
getSetMaskOrBuilder()1621     public com.google.protobuf.FieldMaskOrBuilder getSetMaskOrBuilder() {
1622       if (setMaskBuilder_ != null) {
1623         return setMaskBuilder_.getMessageOrBuilder();
1624       } else {
1625         return setMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : setMask_;
1626       }
1627     }
1628     /**
1629      *
1630      *
1631      * <pre>
1632      * Indicates which inventory fields in the provided
1633      * [Product][google.cloud.retail.v2.Product] to update.
1634      * At least one field must be provided.
1635      * If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
1636      * is returned and the entire update will be ignored.
1637      * </pre>
1638      *
1639      * <code>.google.protobuf.FieldMask set_mask = 2;</code>
1640      */
1641     private com.google.protobuf.SingleFieldBuilderV3<
1642             com.google.protobuf.FieldMask,
1643             com.google.protobuf.FieldMask.Builder,
1644             com.google.protobuf.FieldMaskOrBuilder>
getSetMaskFieldBuilder()1645         getSetMaskFieldBuilder() {
1646       if (setMaskBuilder_ == null) {
1647         setMaskBuilder_ =
1648             new com.google.protobuf.SingleFieldBuilderV3<
1649                 com.google.protobuf.FieldMask,
1650                 com.google.protobuf.FieldMask.Builder,
1651                 com.google.protobuf.FieldMaskOrBuilder>(
1652                 getSetMask(), getParentForChildren(), isClean());
1653         setMask_ = null;
1654       }
1655       return setMaskBuilder_;
1656     }
1657 
1658     private com.google.protobuf.Timestamp setTime_;
1659     private com.google.protobuf.SingleFieldBuilderV3<
1660             com.google.protobuf.Timestamp,
1661             com.google.protobuf.Timestamp.Builder,
1662             com.google.protobuf.TimestampOrBuilder>
1663         setTimeBuilder_;
1664     /**
1665      *
1666      *
1667      * <pre>
1668      * The time when the request is issued, used to prevent
1669      * out-of-order updates on inventory fields with the last update time
1670      * recorded. If not provided, the internal system time will be used.
1671      * </pre>
1672      *
1673      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1674      *
1675      * @return Whether the setTime field is set.
1676      */
hasSetTime()1677     public boolean hasSetTime() {
1678       return ((bitField0_ & 0x00000004) != 0);
1679     }
1680     /**
1681      *
1682      *
1683      * <pre>
1684      * The time when the request is issued, used to prevent
1685      * out-of-order updates on inventory fields with the last update time
1686      * recorded. If not provided, the internal system time will be used.
1687      * </pre>
1688      *
1689      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1690      *
1691      * @return The setTime.
1692      */
getSetTime()1693     public com.google.protobuf.Timestamp getSetTime() {
1694       if (setTimeBuilder_ == null) {
1695         return setTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : setTime_;
1696       } else {
1697         return setTimeBuilder_.getMessage();
1698       }
1699     }
1700     /**
1701      *
1702      *
1703      * <pre>
1704      * The time when the request is issued, used to prevent
1705      * out-of-order updates on inventory fields with the last update time
1706      * recorded. If not provided, the internal system time will be used.
1707      * </pre>
1708      *
1709      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1710      */
setSetTime(com.google.protobuf.Timestamp value)1711     public Builder setSetTime(com.google.protobuf.Timestamp value) {
1712       if (setTimeBuilder_ == null) {
1713         if (value == null) {
1714           throw new NullPointerException();
1715         }
1716         setTime_ = value;
1717       } else {
1718         setTimeBuilder_.setMessage(value);
1719       }
1720       bitField0_ |= 0x00000004;
1721       onChanged();
1722       return this;
1723     }
1724     /**
1725      *
1726      *
1727      * <pre>
1728      * The time when the request is issued, used to prevent
1729      * out-of-order updates on inventory fields with the last update time
1730      * recorded. If not provided, the internal system time will be used.
1731      * </pre>
1732      *
1733      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1734      */
setSetTime(com.google.protobuf.Timestamp.Builder builderForValue)1735     public Builder setSetTime(com.google.protobuf.Timestamp.Builder builderForValue) {
1736       if (setTimeBuilder_ == null) {
1737         setTime_ = builderForValue.build();
1738       } else {
1739         setTimeBuilder_.setMessage(builderForValue.build());
1740       }
1741       bitField0_ |= 0x00000004;
1742       onChanged();
1743       return this;
1744     }
1745     /**
1746      *
1747      *
1748      * <pre>
1749      * The time when the request is issued, used to prevent
1750      * out-of-order updates on inventory fields with the last update time
1751      * recorded. If not provided, the internal system time will be used.
1752      * </pre>
1753      *
1754      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1755      */
mergeSetTime(com.google.protobuf.Timestamp value)1756     public Builder mergeSetTime(com.google.protobuf.Timestamp value) {
1757       if (setTimeBuilder_ == null) {
1758         if (((bitField0_ & 0x00000004) != 0)
1759             && setTime_ != null
1760             && setTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
1761           getSetTimeBuilder().mergeFrom(value);
1762         } else {
1763           setTime_ = value;
1764         }
1765       } else {
1766         setTimeBuilder_.mergeFrom(value);
1767       }
1768       bitField0_ |= 0x00000004;
1769       onChanged();
1770       return this;
1771     }
1772     /**
1773      *
1774      *
1775      * <pre>
1776      * The time when the request is issued, used to prevent
1777      * out-of-order updates on inventory fields with the last update time
1778      * recorded. If not provided, the internal system time will be used.
1779      * </pre>
1780      *
1781      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1782      */
clearSetTime()1783     public Builder clearSetTime() {
1784       bitField0_ = (bitField0_ & ~0x00000004);
1785       setTime_ = null;
1786       if (setTimeBuilder_ != null) {
1787         setTimeBuilder_.dispose();
1788         setTimeBuilder_ = null;
1789       }
1790       onChanged();
1791       return this;
1792     }
1793     /**
1794      *
1795      *
1796      * <pre>
1797      * The time when the request is issued, used to prevent
1798      * out-of-order updates on inventory fields with the last update time
1799      * recorded. If not provided, the internal system time will be used.
1800      * </pre>
1801      *
1802      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1803      */
getSetTimeBuilder()1804     public com.google.protobuf.Timestamp.Builder getSetTimeBuilder() {
1805       bitField0_ |= 0x00000004;
1806       onChanged();
1807       return getSetTimeFieldBuilder().getBuilder();
1808     }
1809     /**
1810      *
1811      *
1812      * <pre>
1813      * The time when the request is issued, used to prevent
1814      * out-of-order updates on inventory fields with the last update time
1815      * recorded. If not provided, the internal system time will be used.
1816      * </pre>
1817      *
1818      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1819      */
getSetTimeOrBuilder()1820     public com.google.protobuf.TimestampOrBuilder getSetTimeOrBuilder() {
1821       if (setTimeBuilder_ != null) {
1822         return setTimeBuilder_.getMessageOrBuilder();
1823       } else {
1824         return setTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : setTime_;
1825       }
1826     }
1827     /**
1828      *
1829      *
1830      * <pre>
1831      * The time when the request is issued, used to prevent
1832      * out-of-order updates on inventory fields with the last update time
1833      * recorded. If not provided, the internal system time will be used.
1834      * </pre>
1835      *
1836      * <code>.google.protobuf.Timestamp set_time = 3;</code>
1837      */
1838     private com.google.protobuf.SingleFieldBuilderV3<
1839             com.google.protobuf.Timestamp,
1840             com.google.protobuf.Timestamp.Builder,
1841             com.google.protobuf.TimestampOrBuilder>
getSetTimeFieldBuilder()1842         getSetTimeFieldBuilder() {
1843       if (setTimeBuilder_ == null) {
1844         setTimeBuilder_ =
1845             new com.google.protobuf.SingleFieldBuilderV3<
1846                 com.google.protobuf.Timestamp,
1847                 com.google.protobuf.Timestamp.Builder,
1848                 com.google.protobuf.TimestampOrBuilder>(
1849                 getSetTime(), getParentForChildren(), isClean());
1850         setTime_ = null;
1851       }
1852       return setTimeBuilder_;
1853     }
1854 
1855     private boolean allowMissing_;
1856     /**
1857      *
1858      *
1859      * <pre>
1860      * If set to true, and the [Product][google.cloud.retail.v2.Product] with name
1861      * [Product.name][google.cloud.retail.v2.Product.name] is not found, the
1862      * inventory update will still be processed and retained for at most 1 day
1863      * until the [Product][google.cloud.retail.v2.Product] is created. If set to
1864      * false, a NOT_FOUND error is returned if the
1865      * [Product][google.cloud.retail.v2.Product] is not found.
1866      * </pre>
1867      *
1868      * <code>bool allow_missing = 4;</code>
1869      *
1870      * @return The allowMissing.
1871      */
1872     @java.lang.Override
getAllowMissing()1873     public boolean getAllowMissing() {
1874       return allowMissing_;
1875     }
1876     /**
1877      *
1878      *
1879      * <pre>
1880      * If set to true, and the [Product][google.cloud.retail.v2.Product] with name
1881      * [Product.name][google.cloud.retail.v2.Product.name] is not found, the
1882      * inventory update will still be processed and retained for at most 1 day
1883      * until the [Product][google.cloud.retail.v2.Product] is created. If set to
1884      * false, a NOT_FOUND error is returned if the
1885      * [Product][google.cloud.retail.v2.Product] is not found.
1886      * </pre>
1887      *
1888      * <code>bool allow_missing = 4;</code>
1889      *
1890      * @param value The allowMissing to set.
1891      * @return This builder for chaining.
1892      */
setAllowMissing(boolean value)1893     public Builder setAllowMissing(boolean value) {
1894 
1895       allowMissing_ = value;
1896       bitField0_ |= 0x00000008;
1897       onChanged();
1898       return this;
1899     }
1900     /**
1901      *
1902      *
1903      * <pre>
1904      * If set to true, and the [Product][google.cloud.retail.v2.Product] with name
1905      * [Product.name][google.cloud.retail.v2.Product.name] is not found, the
1906      * inventory update will still be processed and retained for at most 1 day
1907      * until the [Product][google.cloud.retail.v2.Product] is created. If set to
1908      * false, a NOT_FOUND error is returned if the
1909      * [Product][google.cloud.retail.v2.Product] is not found.
1910      * </pre>
1911      *
1912      * <code>bool allow_missing = 4;</code>
1913      *
1914      * @return This builder for chaining.
1915      */
clearAllowMissing()1916     public Builder clearAllowMissing() {
1917       bitField0_ = (bitField0_ & ~0x00000008);
1918       allowMissing_ = false;
1919       onChanged();
1920       return this;
1921     }
1922 
1923     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)1924     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
1925       return super.setUnknownFields(unknownFields);
1926     }
1927 
1928     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)1929     public final Builder mergeUnknownFields(
1930         final com.google.protobuf.UnknownFieldSet unknownFields) {
1931       return super.mergeUnknownFields(unknownFields);
1932     }
1933 
1934     // @@protoc_insertion_point(builder_scope:google.cloud.retail.v2.SetInventoryRequest)
1935   }
1936 
1937   // @@protoc_insertion_point(class_scope:google.cloud.retail.v2.SetInventoryRequest)
1938   private static final com.google.cloud.retail.v2.SetInventoryRequest DEFAULT_INSTANCE;
1939 
1940   static {
1941     DEFAULT_INSTANCE = new com.google.cloud.retail.v2.SetInventoryRequest();
1942   }
1943 
getDefaultInstance()1944   public static com.google.cloud.retail.v2.SetInventoryRequest getDefaultInstance() {
1945     return DEFAULT_INSTANCE;
1946   }
1947 
1948   private static final com.google.protobuf.Parser<SetInventoryRequest> PARSER =
1949       new com.google.protobuf.AbstractParser<SetInventoryRequest>() {
1950         @java.lang.Override
1951         public SetInventoryRequest parsePartialFrom(
1952             com.google.protobuf.CodedInputStream input,
1953             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1954             throws com.google.protobuf.InvalidProtocolBufferException {
1955           Builder builder = newBuilder();
1956           try {
1957             builder.mergeFrom(input, extensionRegistry);
1958           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1959             throw e.setUnfinishedMessage(builder.buildPartial());
1960           } catch (com.google.protobuf.UninitializedMessageException e) {
1961             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
1962           } catch (java.io.IOException e) {
1963             throw new com.google.protobuf.InvalidProtocolBufferException(e)
1964                 .setUnfinishedMessage(builder.buildPartial());
1965           }
1966           return builder.buildPartial();
1967         }
1968       };
1969 
parser()1970   public static com.google.protobuf.Parser<SetInventoryRequest> parser() {
1971     return PARSER;
1972   }
1973 
1974   @java.lang.Override
getParserForType()1975   public com.google.protobuf.Parser<SetInventoryRequest> getParserForType() {
1976     return PARSER;
1977   }
1978 
1979   @java.lang.Override
getDefaultInstanceForType()1980   public com.google.cloud.retail.v2.SetInventoryRequest getDefaultInstanceForType() {
1981     return DEFAULT_INSTANCE;
1982   }
1983 }
1984