• 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/discoveryengine/v1beta/user_event.proto
18 
19 package com.google.cloud.discoveryengine.v1beta;
20 
21 /**
22  *
23  *
24  * <pre>
25  * UserEvent captures all metadata information Discovery Engine API needs to
26  * know about how end users interact with customers' website.
27  * </pre>
28  *
29  * Protobuf type {@code google.cloud.discoveryengine.v1beta.UserEvent}
30  */
31 public final class UserEvent extends com.google.protobuf.GeneratedMessageV3
32     implements
33     // @@protoc_insertion_point(message_implements:google.cloud.discoveryengine.v1beta.UserEvent)
34     UserEventOrBuilder {
35   private static final long serialVersionUID = 0L;
36   // Use UserEvent.newBuilder() to construct.
UserEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)37   private UserEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
38     super(builder);
39   }
40 
UserEvent()41   private UserEvent() {
42     eventType_ = "";
43     userPseudoId_ = "";
44     sessionId_ = "";
45     attributionToken_ = "";
46     filter_ = "";
47     documents_ = java.util.Collections.emptyList();
48     tagIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
49     promotionIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
50   }
51 
52   @java.lang.Override
53   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)54   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
55     return new UserEvent();
56   }
57 
58   @java.lang.Override
getUnknownFields()59   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
60     return this.unknownFields;
61   }
62 
getDescriptor()63   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
64     return com.google.cloud.discoveryengine.v1beta.UserEventProto
65         .internal_static_google_cloud_discoveryengine_v1beta_UserEvent_descriptor;
66   }
67 
68   @SuppressWarnings({"rawtypes"})
69   @java.lang.Override
internalGetMapField(int number)70   protected com.google.protobuf.MapField internalGetMapField(int number) {
71     switch (number) {
72       case 17:
73         return internalGetAttributes();
74       default:
75         throw new RuntimeException("Invalid map field number: " + number);
76     }
77   }
78 
79   @java.lang.Override
80   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()81       internalGetFieldAccessorTable() {
82     return com.google.cloud.discoveryengine.v1beta.UserEventProto
83         .internal_static_google_cloud_discoveryengine_v1beta_UserEvent_fieldAccessorTable
84         .ensureFieldAccessorsInitialized(
85             com.google.cloud.discoveryengine.v1beta.UserEvent.class,
86             com.google.cloud.discoveryengine.v1beta.UserEvent.Builder.class);
87   }
88 
89   public static final int EVENT_TYPE_FIELD_NUMBER = 1;
90 
91   @SuppressWarnings("serial")
92   private volatile java.lang.Object eventType_ = "";
93   /**
94    *
95    *
96    * <pre>
97    * Required. User event type. Allowed values are:
98    * Generic values:
99    * * `search`: Search for Documents.
100    * * `view-item`: Detailed page view of a Document.
101    * * `view-item-list`: View of a panel or ordered list of Documents.
102    * * `view-home-page`: View of the home page.
103    * * `view-category-page`: View of a category page, e.g. Home &gt; Men &gt; Jeans
104    * Retail-related values:
105    * * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping
106    * * `purchase`: Purchase an item(s)
107    * Media-related values:
108    * * `media-play`: Start/resume watching a video, playing a song, etc.
109    * * `media-complete`: Finished or stopped midway through a video, song, etc.
110    * </pre>
111    *
112    * <code>string event_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
113    *
114    * @return The eventType.
115    */
116   @java.lang.Override
getEventType()117   public java.lang.String getEventType() {
118     java.lang.Object ref = eventType_;
119     if (ref instanceof java.lang.String) {
120       return (java.lang.String) ref;
121     } else {
122       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
123       java.lang.String s = bs.toStringUtf8();
124       eventType_ = s;
125       return s;
126     }
127   }
128   /**
129    *
130    *
131    * <pre>
132    * Required. User event type. Allowed values are:
133    * Generic values:
134    * * `search`: Search for Documents.
135    * * `view-item`: Detailed page view of a Document.
136    * * `view-item-list`: View of a panel or ordered list of Documents.
137    * * `view-home-page`: View of the home page.
138    * * `view-category-page`: View of a category page, e.g. Home &gt; Men &gt; Jeans
139    * Retail-related values:
140    * * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping
141    * * `purchase`: Purchase an item(s)
142    * Media-related values:
143    * * `media-play`: Start/resume watching a video, playing a song, etc.
144    * * `media-complete`: Finished or stopped midway through a video, song, etc.
145    * </pre>
146    *
147    * <code>string event_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
148    *
149    * @return The bytes for eventType.
150    */
151   @java.lang.Override
getEventTypeBytes()152   public com.google.protobuf.ByteString getEventTypeBytes() {
153     java.lang.Object ref = eventType_;
154     if (ref instanceof java.lang.String) {
155       com.google.protobuf.ByteString b =
156           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
157       eventType_ = b;
158       return b;
159     } else {
160       return (com.google.protobuf.ByteString) ref;
161     }
162   }
163 
164   public static final int USER_PSEUDO_ID_FIELD_NUMBER = 2;
165 
166   @SuppressWarnings("serial")
167   private volatile java.lang.Object userPseudoId_ = "";
168   /**
169    *
170    *
171    * <pre>
172    * Required. A unique identifier for tracking visitors.
173    * For example, this could be implemented with an HTTP cookie, which should be
174    * able to uniquely identify a visitor on a single device. This unique
175    * identifier should not change if the visitor log in/out of the website.
176    * Do not set the field to the same fixed ID for different users. This mixes
177    * the event history of those users together, which results in degraded model
178    * quality.
179    * The field must be a UTF-8 encoded string with a length limit of 128
180    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
181    * The field should not contain PII or user-data. We recommend to use Google
182    * Analytics [Client
183    * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
184    * for this field.
185    * </pre>
186    *
187    * <code>string user_pseudo_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
188    *
189    * @return The userPseudoId.
190    */
191   @java.lang.Override
getUserPseudoId()192   public java.lang.String getUserPseudoId() {
193     java.lang.Object ref = userPseudoId_;
194     if (ref instanceof java.lang.String) {
195       return (java.lang.String) ref;
196     } else {
197       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
198       java.lang.String s = bs.toStringUtf8();
199       userPseudoId_ = s;
200       return s;
201     }
202   }
203   /**
204    *
205    *
206    * <pre>
207    * Required. A unique identifier for tracking visitors.
208    * For example, this could be implemented with an HTTP cookie, which should be
209    * able to uniquely identify a visitor on a single device. This unique
210    * identifier should not change if the visitor log in/out of the website.
211    * Do not set the field to the same fixed ID for different users. This mixes
212    * the event history of those users together, which results in degraded model
213    * quality.
214    * The field must be a UTF-8 encoded string with a length limit of 128
215    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
216    * The field should not contain PII or user-data. We recommend to use Google
217    * Analytics [Client
218    * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
219    * for this field.
220    * </pre>
221    *
222    * <code>string user_pseudo_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
223    *
224    * @return The bytes for userPseudoId.
225    */
226   @java.lang.Override
getUserPseudoIdBytes()227   public com.google.protobuf.ByteString getUserPseudoIdBytes() {
228     java.lang.Object ref = userPseudoId_;
229     if (ref instanceof java.lang.String) {
230       com.google.protobuf.ByteString b =
231           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
232       userPseudoId_ = b;
233       return b;
234     } else {
235       return (com.google.protobuf.ByteString) ref;
236     }
237   }
238 
239   public static final int EVENT_TIME_FIELD_NUMBER = 3;
240   private com.google.protobuf.Timestamp eventTime_;
241   /**
242    *
243    *
244    * <pre>
245    * Only required for
246    * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
247    * method. Timestamp of when the user event happened.
248    * </pre>
249    *
250    * <code>.google.protobuf.Timestamp event_time = 3;</code>
251    *
252    * @return Whether the eventTime field is set.
253    */
254   @java.lang.Override
hasEventTime()255   public boolean hasEventTime() {
256     return eventTime_ != null;
257   }
258   /**
259    *
260    *
261    * <pre>
262    * Only required for
263    * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
264    * method. Timestamp of when the user event happened.
265    * </pre>
266    *
267    * <code>.google.protobuf.Timestamp event_time = 3;</code>
268    *
269    * @return The eventTime.
270    */
271   @java.lang.Override
getEventTime()272   public com.google.protobuf.Timestamp getEventTime() {
273     return eventTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : eventTime_;
274   }
275   /**
276    *
277    *
278    * <pre>
279    * Only required for
280    * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
281    * method. Timestamp of when the user event happened.
282    * </pre>
283    *
284    * <code>.google.protobuf.Timestamp event_time = 3;</code>
285    */
286   @java.lang.Override
getEventTimeOrBuilder()287   public com.google.protobuf.TimestampOrBuilder getEventTimeOrBuilder() {
288     return eventTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : eventTime_;
289   }
290 
291   public static final int USER_INFO_FIELD_NUMBER = 4;
292   private com.google.cloud.discoveryengine.v1beta.UserInfo userInfo_;
293   /**
294    *
295    *
296    * <pre>
297    * Information about the end user.
298    * </pre>
299    *
300    * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
301    *
302    * @return Whether the userInfo field is set.
303    */
304   @java.lang.Override
hasUserInfo()305   public boolean hasUserInfo() {
306     return userInfo_ != null;
307   }
308   /**
309    *
310    *
311    * <pre>
312    * Information about the end user.
313    * </pre>
314    *
315    * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
316    *
317    * @return The userInfo.
318    */
319   @java.lang.Override
getUserInfo()320   public com.google.cloud.discoveryengine.v1beta.UserInfo getUserInfo() {
321     return userInfo_ == null
322         ? com.google.cloud.discoveryengine.v1beta.UserInfo.getDefaultInstance()
323         : userInfo_;
324   }
325   /**
326    *
327    *
328    * <pre>
329    * Information about the end user.
330    * </pre>
331    *
332    * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
333    */
334   @java.lang.Override
getUserInfoOrBuilder()335   public com.google.cloud.discoveryengine.v1beta.UserInfoOrBuilder getUserInfoOrBuilder() {
336     return userInfo_ == null
337         ? com.google.cloud.discoveryengine.v1beta.UserInfo.getDefaultInstance()
338         : userInfo_;
339   }
340 
341   public static final int DIRECT_USER_REQUEST_FIELD_NUMBER = 5;
342   private boolean directUserRequest_ = false;
343   /**
344    *
345    *
346    * <pre>
347    * Should set to true if the request is made directly from the end user, in
348    * which case the
349    * [UserEvent.user_info.user_agent][google.cloud.discoveryengine.v1beta.UserInfo.user_agent]
350    * can be populated from the HTTP request.
351    * This flag should be set only if the API request is made directly from the
352    * end user such as a mobile app (and not if a gateway or a server is
353    * processing and pushing the user events).
354    * This should not be set when using the JavaScript tag in
355    * [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent].
356    * </pre>
357    *
358    * <code>bool direct_user_request = 5;</code>
359    *
360    * @return The directUserRequest.
361    */
362   @java.lang.Override
getDirectUserRequest()363   public boolean getDirectUserRequest() {
364     return directUserRequest_;
365   }
366 
367   public static final int SESSION_ID_FIELD_NUMBER = 6;
368 
369   @SuppressWarnings("serial")
370   private volatile java.lang.Object sessionId_ = "";
371   /**
372    *
373    *
374    * <pre>
375    * A unique identifier for tracking a visitor session with a length limit of
376    * 128 bytes. A session is an aggregation of an end user behavior in a time
377    * span.
378    * A general guideline to populate the session_id:
379    * 1. If user has no activity for 30 min, a new session_id should be assigned.
380    * 2. The session_id should be unique across users, suggest use uuid or add
381    * [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id]
382    * as prefix.
383    * </pre>
384    *
385    * <code>string session_id = 6;</code>
386    *
387    * @return The sessionId.
388    */
389   @java.lang.Override
getSessionId()390   public java.lang.String getSessionId() {
391     java.lang.Object ref = sessionId_;
392     if (ref instanceof java.lang.String) {
393       return (java.lang.String) ref;
394     } else {
395       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
396       java.lang.String s = bs.toStringUtf8();
397       sessionId_ = s;
398       return s;
399     }
400   }
401   /**
402    *
403    *
404    * <pre>
405    * A unique identifier for tracking a visitor session with a length limit of
406    * 128 bytes. A session is an aggregation of an end user behavior in a time
407    * span.
408    * A general guideline to populate the session_id:
409    * 1. If user has no activity for 30 min, a new session_id should be assigned.
410    * 2. The session_id should be unique across users, suggest use uuid or add
411    * [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id]
412    * as prefix.
413    * </pre>
414    *
415    * <code>string session_id = 6;</code>
416    *
417    * @return The bytes for sessionId.
418    */
419   @java.lang.Override
getSessionIdBytes()420   public com.google.protobuf.ByteString getSessionIdBytes() {
421     java.lang.Object ref = sessionId_;
422     if (ref instanceof java.lang.String) {
423       com.google.protobuf.ByteString b =
424           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
425       sessionId_ = b;
426       return b;
427     } else {
428       return (com.google.protobuf.ByteString) ref;
429     }
430   }
431 
432   public static final int PAGE_INFO_FIELD_NUMBER = 7;
433   private com.google.cloud.discoveryengine.v1beta.PageInfo pageInfo_;
434   /**
435    *
436    *
437    * <pre>
438    * Page metadata such as categories and other critical information for certain
439    * event types such as `view-category-page`.
440    * </pre>
441    *
442    * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
443    *
444    * @return Whether the pageInfo field is set.
445    */
446   @java.lang.Override
hasPageInfo()447   public boolean hasPageInfo() {
448     return pageInfo_ != null;
449   }
450   /**
451    *
452    *
453    * <pre>
454    * Page metadata such as categories and other critical information for certain
455    * event types such as `view-category-page`.
456    * </pre>
457    *
458    * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
459    *
460    * @return The pageInfo.
461    */
462   @java.lang.Override
getPageInfo()463   public com.google.cloud.discoveryengine.v1beta.PageInfo getPageInfo() {
464     return pageInfo_ == null
465         ? com.google.cloud.discoveryengine.v1beta.PageInfo.getDefaultInstance()
466         : pageInfo_;
467   }
468   /**
469    *
470    *
471    * <pre>
472    * Page metadata such as categories and other critical information for certain
473    * event types such as `view-category-page`.
474    * </pre>
475    *
476    * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
477    */
478   @java.lang.Override
getPageInfoOrBuilder()479   public com.google.cloud.discoveryengine.v1beta.PageInfoOrBuilder getPageInfoOrBuilder() {
480     return pageInfo_ == null
481         ? com.google.cloud.discoveryengine.v1beta.PageInfo.getDefaultInstance()
482         : pageInfo_;
483   }
484 
485   public static final int ATTRIBUTION_TOKEN_FIELD_NUMBER = 8;
486 
487   @SuppressWarnings("serial")
488   private volatile java.lang.Object attributionToken_ = "";
489   /**
490    *
491    *
492    * <pre>
493    * Token to attribute an API response to user action(s) to trigger the event.
494    * Highly recommended for user events that are the result of
495    * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
496    * This field enables accurate attribution of recommendation model
497    * performance.
498    * The value must be one of:
499    * * [PredictResponse.attribution_token][] for events that are the result of
500    * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
501    * * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of
502    * [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search].
503    * * [CompleteQueryResponse.attribution_token][] for events that are the
504    * result of
505    * [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1beta.CompletionService.CompleteQuery].
506    * This token enables us to accurately attribute page view or conversion
507    * completion back to the event and the particular predict response containing
508    * this clicked/purchased product. If user clicks on product K in the
509    * recommendation results, pass [PredictResponse.attribution_token][] as a URL
510    * parameter to product K's page. When recording events on product K's page,
511    * log the [PredictResponse.attribution_token][] to this field.
512    * </pre>
513    *
514    * <code>string attribution_token = 8;</code>
515    *
516    * @return The attributionToken.
517    */
518   @java.lang.Override
getAttributionToken()519   public java.lang.String getAttributionToken() {
520     java.lang.Object ref = attributionToken_;
521     if (ref instanceof java.lang.String) {
522       return (java.lang.String) ref;
523     } else {
524       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
525       java.lang.String s = bs.toStringUtf8();
526       attributionToken_ = s;
527       return s;
528     }
529   }
530   /**
531    *
532    *
533    * <pre>
534    * Token to attribute an API response to user action(s) to trigger the event.
535    * Highly recommended for user events that are the result of
536    * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
537    * This field enables accurate attribution of recommendation model
538    * performance.
539    * The value must be one of:
540    * * [PredictResponse.attribution_token][] for events that are the result of
541    * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
542    * * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of
543    * [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search].
544    * * [CompleteQueryResponse.attribution_token][] for events that are the
545    * result of
546    * [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1beta.CompletionService.CompleteQuery].
547    * This token enables us to accurately attribute page view or conversion
548    * completion back to the event and the particular predict response containing
549    * this clicked/purchased product. If user clicks on product K in the
550    * recommendation results, pass [PredictResponse.attribution_token][] as a URL
551    * parameter to product K's page. When recording events on product K's page,
552    * log the [PredictResponse.attribution_token][] to this field.
553    * </pre>
554    *
555    * <code>string attribution_token = 8;</code>
556    *
557    * @return The bytes for attributionToken.
558    */
559   @java.lang.Override
getAttributionTokenBytes()560   public com.google.protobuf.ByteString getAttributionTokenBytes() {
561     java.lang.Object ref = attributionToken_;
562     if (ref instanceof java.lang.String) {
563       com.google.protobuf.ByteString b =
564           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
565       attributionToken_ = b;
566       return b;
567     } else {
568       return (com.google.protobuf.ByteString) ref;
569     }
570   }
571 
572   public static final int FILTER_FIELD_NUMBER = 9;
573 
574   @SuppressWarnings("serial")
575   private volatile java.lang.Object filter_ = "";
576   /**
577    *
578    *
579    * <pre>
580    * The filter syntax consists of an expression language for constructing a
581    * predicate from one or more fields of the documents being filtered.
582    * One example is for `search` events, the associated
583    * [SearchRequest][google.cloud.discoveryengine.v1beta.SearchRequest] may
584    * contain a filter expression in
585    * [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter]
586    * conforming to https://google.aip.dev/160#filtering.
587    * Similarly, for `view-item-list` events that are generated from a
588    * [RecommendationService.RecommendRequest][], this field may be populated
589    * directly from [RecommendationService.RecommendRequest.filter][] conforming
590    * to https://google.aip.dev/160#filtering.
591    * The value must be a UTF-8 encoded string with a length limit of 1,000
592    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
593    * </pre>
594    *
595    * <code>string filter = 9;</code>
596    *
597    * @return The filter.
598    */
599   @java.lang.Override
getFilter()600   public java.lang.String getFilter() {
601     java.lang.Object ref = filter_;
602     if (ref instanceof java.lang.String) {
603       return (java.lang.String) ref;
604     } else {
605       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
606       java.lang.String s = bs.toStringUtf8();
607       filter_ = s;
608       return s;
609     }
610   }
611   /**
612    *
613    *
614    * <pre>
615    * The filter syntax consists of an expression language for constructing a
616    * predicate from one or more fields of the documents being filtered.
617    * One example is for `search` events, the associated
618    * [SearchRequest][google.cloud.discoveryengine.v1beta.SearchRequest] may
619    * contain a filter expression in
620    * [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter]
621    * conforming to https://google.aip.dev/160#filtering.
622    * Similarly, for `view-item-list` events that are generated from a
623    * [RecommendationService.RecommendRequest][], this field may be populated
624    * directly from [RecommendationService.RecommendRequest.filter][] conforming
625    * to https://google.aip.dev/160#filtering.
626    * The value must be a UTF-8 encoded string with a length limit of 1,000
627    * characters. Otherwise, an INVALID_ARGUMENT error is returned.
628    * </pre>
629    *
630    * <code>string filter = 9;</code>
631    *
632    * @return The bytes for filter.
633    */
634   @java.lang.Override
getFilterBytes()635   public com.google.protobuf.ByteString getFilterBytes() {
636     java.lang.Object ref = filter_;
637     if (ref instanceof java.lang.String) {
638       com.google.protobuf.ByteString b =
639           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
640       filter_ = b;
641       return b;
642     } else {
643       return (com.google.protobuf.ByteString) ref;
644     }
645   }
646 
647   public static final int DOCUMENTS_FIELD_NUMBER = 10;
648 
649   @SuppressWarnings("serial")
650   private java.util.List<com.google.cloud.discoveryengine.v1beta.DocumentInfo> documents_;
651   /**
652    *
653    *
654    * <pre>
655    * List of Documents associated with this user event.
656    * This field is optional except for the following event types:
657    * * `view-item`
658    * * `add-to-cart`
659    * * `purchase`
660    * * `media-play`
661    * * `media-complete`
662    * In a `search` event, this field represents the documents returned to the
663    * end user on the current page (the end user may have not finished browsing
664    * the whole page yet). When a new page is returned to the end user, after
665    * pagination/filtering/ordering even for the same query, a new `search` event
666    * with different
667    * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
668    * is desired.
669    * </pre>
670    *
671    * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
672    */
673   @java.lang.Override
getDocumentsList()674   public java.util.List<com.google.cloud.discoveryengine.v1beta.DocumentInfo> getDocumentsList() {
675     return documents_;
676   }
677   /**
678    *
679    *
680    * <pre>
681    * List of Documents associated with this user event.
682    * This field is optional except for the following event types:
683    * * `view-item`
684    * * `add-to-cart`
685    * * `purchase`
686    * * `media-play`
687    * * `media-complete`
688    * In a `search` event, this field represents the documents returned to the
689    * end user on the current page (the end user may have not finished browsing
690    * the whole page yet). When a new page is returned to the end user, after
691    * pagination/filtering/ordering even for the same query, a new `search` event
692    * with different
693    * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
694    * is desired.
695    * </pre>
696    *
697    * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
698    */
699   @java.lang.Override
700   public java.util.List<? extends com.google.cloud.discoveryengine.v1beta.DocumentInfoOrBuilder>
getDocumentsOrBuilderList()701       getDocumentsOrBuilderList() {
702     return documents_;
703   }
704   /**
705    *
706    *
707    * <pre>
708    * List of Documents associated with this user event.
709    * This field is optional except for the following event types:
710    * * `view-item`
711    * * `add-to-cart`
712    * * `purchase`
713    * * `media-play`
714    * * `media-complete`
715    * In a `search` event, this field represents the documents returned to the
716    * end user on the current page (the end user may have not finished browsing
717    * the whole page yet). When a new page is returned to the end user, after
718    * pagination/filtering/ordering even for the same query, a new `search` event
719    * with different
720    * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
721    * is desired.
722    * </pre>
723    *
724    * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
725    */
726   @java.lang.Override
getDocumentsCount()727   public int getDocumentsCount() {
728     return documents_.size();
729   }
730   /**
731    *
732    *
733    * <pre>
734    * List of Documents associated with this user event.
735    * This field is optional except for the following event types:
736    * * `view-item`
737    * * `add-to-cart`
738    * * `purchase`
739    * * `media-play`
740    * * `media-complete`
741    * In a `search` event, this field represents the documents returned to the
742    * end user on the current page (the end user may have not finished browsing
743    * the whole page yet). When a new page is returned to the end user, after
744    * pagination/filtering/ordering even for the same query, a new `search` event
745    * with different
746    * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
747    * is desired.
748    * </pre>
749    *
750    * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
751    */
752   @java.lang.Override
getDocuments(int index)753   public com.google.cloud.discoveryengine.v1beta.DocumentInfo getDocuments(int index) {
754     return documents_.get(index);
755   }
756   /**
757    *
758    *
759    * <pre>
760    * List of Documents associated with this user event.
761    * This field is optional except for the following event types:
762    * * `view-item`
763    * * `add-to-cart`
764    * * `purchase`
765    * * `media-play`
766    * * `media-complete`
767    * In a `search` event, this field represents the documents returned to the
768    * end user on the current page (the end user may have not finished browsing
769    * the whole page yet). When a new page is returned to the end user, after
770    * pagination/filtering/ordering even for the same query, a new `search` event
771    * with different
772    * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
773    * is desired.
774    * </pre>
775    *
776    * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
777    */
778   @java.lang.Override
getDocumentsOrBuilder( int index)779   public com.google.cloud.discoveryengine.v1beta.DocumentInfoOrBuilder getDocumentsOrBuilder(
780       int index) {
781     return documents_.get(index);
782   }
783 
784   public static final int PANEL_FIELD_NUMBER = 11;
785   private com.google.cloud.discoveryengine.v1beta.PanelInfo panel_;
786   /**
787    *
788    *
789    * <pre>
790    * Panel metadata associated with this user event.
791    * </pre>
792    *
793    * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
794    *
795    * @return Whether the panel field is set.
796    */
797   @java.lang.Override
hasPanel()798   public boolean hasPanel() {
799     return panel_ != null;
800   }
801   /**
802    *
803    *
804    * <pre>
805    * Panel metadata associated with this user event.
806    * </pre>
807    *
808    * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
809    *
810    * @return The panel.
811    */
812   @java.lang.Override
getPanel()813   public com.google.cloud.discoveryengine.v1beta.PanelInfo getPanel() {
814     return panel_ == null
815         ? com.google.cloud.discoveryengine.v1beta.PanelInfo.getDefaultInstance()
816         : panel_;
817   }
818   /**
819    *
820    *
821    * <pre>
822    * Panel metadata associated with this user event.
823    * </pre>
824    *
825    * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
826    */
827   @java.lang.Override
getPanelOrBuilder()828   public com.google.cloud.discoveryengine.v1beta.PanelInfoOrBuilder getPanelOrBuilder() {
829     return panel_ == null
830         ? com.google.cloud.discoveryengine.v1beta.PanelInfo.getDefaultInstance()
831         : panel_;
832   }
833 
834   public static final int SEARCH_INFO_FIELD_NUMBER = 12;
835   private com.google.cloud.discoveryengine.v1beta.SearchInfo searchInfo_;
836   /**
837    *
838    *
839    * <pre>
840    * Search API details related to the event.
841    * This field should be set for `search` event.
842    * </pre>
843    *
844    * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
845    *
846    * @return Whether the searchInfo field is set.
847    */
848   @java.lang.Override
hasSearchInfo()849   public boolean hasSearchInfo() {
850     return searchInfo_ != null;
851   }
852   /**
853    *
854    *
855    * <pre>
856    * Search API details related to the event.
857    * This field should be set for `search` event.
858    * </pre>
859    *
860    * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
861    *
862    * @return The searchInfo.
863    */
864   @java.lang.Override
getSearchInfo()865   public com.google.cloud.discoveryengine.v1beta.SearchInfo getSearchInfo() {
866     return searchInfo_ == null
867         ? com.google.cloud.discoveryengine.v1beta.SearchInfo.getDefaultInstance()
868         : searchInfo_;
869   }
870   /**
871    *
872    *
873    * <pre>
874    * Search API details related to the event.
875    * This field should be set for `search` event.
876    * </pre>
877    *
878    * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
879    */
880   @java.lang.Override
getSearchInfoOrBuilder()881   public com.google.cloud.discoveryengine.v1beta.SearchInfoOrBuilder getSearchInfoOrBuilder() {
882     return searchInfo_ == null
883         ? com.google.cloud.discoveryengine.v1beta.SearchInfo.getDefaultInstance()
884         : searchInfo_;
885   }
886 
887   public static final int COMPLETION_INFO_FIELD_NUMBER = 13;
888   private com.google.cloud.discoveryengine.v1beta.CompletionInfo completionInfo_;
889   /**
890    *
891    *
892    * <pre>
893    * CompleteQuery API details related to the event.
894    * This field should be set for `search` event when autocomplete function is
895    * enabled and the user clicks a suggestion for search.
896    * </pre>
897    *
898    * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
899    *
900    * @return Whether the completionInfo field is set.
901    */
902   @java.lang.Override
hasCompletionInfo()903   public boolean hasCompletionInfo() {
904     return completionInfo_ != null;
905   }
906   /**
907    *
908    *
909    * <pre>
910    * CompleteQuery API details related to the event.
911    * This field should be set for `search` event when autocomplete function is
912    * enabled and the user clicks a suggestion for search.
913    * </pre>
914    *
915    * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
916    *
917    * @return The completionInfo.
918    */
919   @java.lang.Override
getCompletionInfo()920   public com.google.cloud.discoveryengine.v1beta.CompletionInfo getCompletionInfo() {
921     return completionInfo_ == null
922         ? com.google.cloud.discoveryengine.v1beta.CompletionInfo.getDefaultInstance()
923         : completionInfo_;
924   }
925   /**
926    *
927    *
928    * <pre>
929    * CompleteQuery API details related to the event.
930    * This field should be set for `search` event when autocomplete function is
931    * enabled and the user clicks a suggestion for search.
932    * </pre>
933    *
934    * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
935    */
936   @java.lang.Override
937   public com.google.cloud.discoveryengine.v1beta.CompletionInfoOrBuilder
getCompletionInfoOrBuilder()938       getCompletionInfoOrBuilder() {
939     return completionInfo_ == null
940         ? com.google.cloud.discoveryengine.v1beta.CompletionInfo.getDefaultInstance()
941         : completionInfo_;
942   }
943 
944   public static final int TRANSACTION_INFO_FIELD_NUMBER = 14;
945   private com.google.cloud.discoveryengine.v1beta.TransactionInfo transactionInfo_;
946   /**
947    *
948    *
949    * <pre>
950    * The transaction metadata (if any) associated with this user event.
951    * </pre>
952    *
953    * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
954    *
955    * @return Whether the transactionInfo field is set.
956    */
957   @java.lang.Override
hasTransactionInfo()958   public boolean hasTransactionInfo() {
959     return transactionInfo_ != null;
960   }
961   /**
962    *
963    *
964    * <pre>
965    * The transaction metadata (if any) associated with this user event.
966    * </pre>
967    *
968    * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
969    *
970    * @return The transactionInfo.
971    */
972   @java.lang.Override
getTransactionInfo()973   public com.google.cloud.discoveryengine.v1beta.TransactionInfo getTransactionInfo() {
974     return transactionInfo_ == null
975         ? com.google.cloud.discoveryengine.v1beta.TransactionInfo.getDefaultInstance()
976         : transactionInfo_;
977   }
978   /**
979    *
980    *
981    * <pre>
982    * The transaction metadata (if any) associated with this user event.
983    * </pre>
984    *
985    * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
986    */
987   @java.lang.Override
988   public com.google.cloud.discoveryengine.v1beta.TransactionInfoOrBuilder
getTransactionInfoOrBuilder()989       getTransactionInfoOrBuilder() {
990     return transactionInfo_ == null
991         ? com.google.cloud.discoveryengine.v1beta.TransactionInfo.getDefaultInstance()
992         : transactionInfo_;
993   }
994 
995   public static final int TAG_IDS_FIELD_NUMBER = 15;
996 
997   @SuppressWarnings("serial")
998   private com.google.protobuf.LazyStringList tagIds_;
999   /**
1000    *
1001    *
1002    * <pre>
1003    * A list of identifiers for the independent experiment groups this user event
1004    * belongs to. This is used to distinguish between user events associated with
1005    * different experiment setups on the customer end.
1006    * </pre>
1007    *
1008    * <code>repeated string tag_ids = 15;</code>
1009    *
1010    * @return A list containing the tagIds.
1011    */
getTagIdsList()1012   public com.google.protobuf.ProtocolStringList getTagIdsList() {
1013     return tagIds_;
1014   }
1015   /**
1016    *
1017    *
1018    * <pre>
1019    * A list of identifiers for the independent experiment groups this user event
1020    * belongs to. This is used to distinguish between user events associated with
1021    * different experiment setups on the customer end.
1022    * </pre>
1023    *
1024    * <code>repeated string tag_ids = 15;</code>
1025    *
1026    * @return The count of tagIds.
1027    */
getTagIdsCount()1028   public int getTagIdsCount() {
1029     return tagIds_.size();
1030   }
1031   /**
1032    *
1033    *
1034    * <pre>
1035    * A list of identifiers for the independent experiment groups this user event
1036    * belongs to. This is used to distinguish between user events associated with
1037    * different experiment setups on the customer end.
1038    * </pre>
1039    *
1040    * <code>repeated string tag_ids = 15;</code>
1041    *
1042    * @param index The index of the element to return.
1043    * @return The tagIds at the given index.
1044    */
getTagIds(int index)1045   public java.lang.String getTagIds(int index) {
1046     return tagIds_.get(index);
1047   }
1048   /**
1049    *
1050    *
1051    * <pre>
1052    * A list of identifiers for the independent experiment groups this user event
1053    * belongs to. This is used to distinguish between user events associated with
1054    * different experiment setups on the customer end.
1055    * </pre>
1056    *
1057    * <code>repeated string tag_ids = 15;</code>
1058    *
1059    * @param index The index of the value to return.
1060    * @return The bytes of the tagIds at the given index.
1061    */
getTagIdsBytes(int index)1062   public com.google.protobuf.ByteString getTagIdsBytes(int index) {
1063     return tagIds_.getByteString(index);
1064   }
1065 
1066   public static final int PROMOTION_IDS_FIELD_NUMBER = 16;
1067 
1068   @SuppressWarnings("serial")
1069   private com.google.protobuf.LazyStringList promotionIds_;
1070   /**
1071    *
1072    *
1073    * <pre>
1074    * The promotion IDs if this is an event associated with promotions.
1075    * Currently, this field is restricted to at most one ID.
1076    * </pre>
1077    *
1078    * <code>repeated string promotion_ids = 16;</code>
1079    *
1080    * @return A list containing the promotionIds.
1081    */
getPromotionIdsList()1082   public com.google.protobuf.ProtocolStringList getPromotionIdsList() {
1083     return promotionIds_;
1084   }
1085   /**
1086    *
1087    *
1088    * <pre>
1089    * The promotion IDs if this is an event associated with promotions.
1090    * Currently, this field is restricted to at most one ID.
1091    * </pre>
1092    *
1093    * <code>repeated string promotion_ids = 16;</code>
1094    *
1095    * @return The count of promotionIds.
1096    */
getPromotionIdsCount()1097   public int getPromotionIdsCount() {
1098     return promotionIds_.size();
1099   }
1100   /**
1101    *
1102    *
1103    * <pre>
1104    * The promotion IDs if this is an event associated with promotions.
1105    * Currently, this field is restricted to at most one ID.
1106    * </pre>
1107    *
1108    * <code>repeated string promotion_ids = 16;</code>
1109    *
1110    * @param index The index of the element to return.
1111    * @return The promotionIds at the given index.
1112    */
getPromotionIds(int index)1113   public java.lang.String getPromotionIds(int index) {
1114     return promotionIds_.get(index);
1115   }
1116   /**
1117    *
1118    *
1119    * <pre>
1120    * The promotion IDs if this is an event associated with promotions.
1121    * Currently, this field is restricted to at most one ID.
1122    * </pre>
1123    *
1124    * <code>repeated string promotion_ids = 16;</code>
1125    *
1126    * @param index The index of the value to return.
1127    * @return The bytes of the promotionIds at the given index.
1128    */
getPromotionIdsBytes(int index)1129   public com.google.protobuf.ByteString getPromotionIdsBytes(int index) {
1130     return promotionIds_.getByteString(index);
1131   }
1132 
1133   public static final int ATTRIBUTES_FIELD_NUMBER = 17;
1134 
1135   private static final class AttributesDefaultEntryHolder {
1136     static final com.google.protobuf.MapEntry<
1137             java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
1138         defaultEntry =
1139             com.google.protobuf.MapEntry
1140                 .<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
1141                     newDefaultInstance(
1142                         com.google.cloud.discoveryengine.v1beta.UserEventProto
1143                             .internal_static_google_cloud_discoveryengine_v1beta_UserEvent_AttributesEntry_descriptor,
1144                         com.google.protobuf.WireFormat.FieldType.STRING,
1145                         "",
1146                         com.google.protobuf.WireFormat.FieldType.MESSAGE,
1147                         com.google.cloud.discoveryengine.v1beta.CustomAttribute
1148                             .getDefaultInstance());
1149   }
1150 
1151   @SuppressWarnings("serial")
1152   private com.google.protobuf.MapField<
1153           java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
1154       attributes_;
1155 
1156   private com.google.protobuf.MapField<
1157           java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
internalGetAttributes()1158       internalGetAttributes() {
1159     if (attributes_ == null) {
1160       return com.google.protobuf.MapField.emptyMapField(AttributesDefaultEntryHolder.defaultEntry);
1161     }
1162     return attributes_;
1163   }
1164 
getAttributesCount()1165   public int getAttributesCount() {
1166     return internalGetAttributes().getMap().size();
1167   }
1168   /**
1169    *
1170    *
1171    * <pre>
1172    * Extra user event features to include in the recommendation model.
1173    * These attributes must NOT contain data that needs to be parsed or processed
1174    * further, e.g. JSON or other encodings.
1175    * If you provide custom attributes for ingested user events, also include
1176    * them in the user events that you associate with prediction requests. Custom
1177    * attribute formatting must be consistent between imported events and events
1178    * provided with prediction requests. This lets the Discovery Engine API use
1179    * those custom attributes when training models and serving predictions, which
1180    * helps improve recommendation quality.
1181    * This field needs to pass all below criteria, otherwise an
1182    * `INVALID_ARGUMENT` error is returned:
1183    * * The key must be a UTF-8 encoded string with a length limit of 5,000
1184    *   characters.
1185    * * For text attributes, at most 400 values are allowed. Empty values are not
1186    *   allowed. Each value must be a UTF-8 encoded string with a length limit of
1187    *   256 characters.
1188    * * For number attributes, at most 400 values are allowed.
1189    * For product recommendations, an example of extra user information is
1190    * ` traffic_channel`, which is how a user arrives at the site. Users can
1191    * arrive
1192    * at the site by coming to the site directly, coming through Google
1193    * search, or in other ways.
1194    * </pre>
1195    *
1196    * <code>map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
1197    * </code>
1198    */
1199   @java.lang.Override
containsAttributes(java.lang.String key)1200   public boolean containsAttributes(java.lang.String key) {
1201     if (key == null) {
1202       throw new NullPointerException("map key");
1203     }
1204     return internalGetAttributes().getMap().containsKey(key);
1205   }
1206   /** Use {@link #getAttributesMap()} instead. */
1207   @java.lang.Override
1208   @java.lang.Deprecated
1209   public java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
getAttributes()1210       getAttributes() {
1211     return getAttributesMap();
1212   }
1213   /**
1214    *
1215    *
1216    * <pre>
1217    * Extra user event features to include in the recommendation model.
1218    * These attributes must NOT contain data that needs to be parsed or processed
1219    * further, e.g. JSON or other encodings.
1220    * If you provide custom attributes for ingested user events, also include
1221    * them in the user events that you associate with prediction requests. Custom
1222    * attribute formatting must be consistent between imported events and events
1223    * provided with prediction requests. This lets the Discovery Engine API use
1224    * those custom attributes when training models and serving predictions, which
1225    * helps improve recommendation quality.
1226    * This field needs to pass all below criteria, otherwise an
1227    * `INVALID_ARGUMENT` error is returned:
1228    * * The key must be a UTF-8 encoded string with a length limit of 5,000
1229    *   characters.
1230    * * For text attributes, at most 400 values are allowed. Empty values are not
1231    *   allowed. Each value must be a UTF-8 encoded string with a length limit of
1232    *   256 characters.
1233    * * For number attributes, at most 400 values are allowed.
1234    * For product recommendations, an example of extra user information is
1235    * ` traffic_channel`, which is how a user arrives at the site. Users can
1236    * arrive
1237    * at the site by coming to the site directly, coming through Google
1238    * search, or in other ways.
1239    * </pre>
1240    *
1241    * <code>map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
1242    * </code>
1243    */
1244   @java.lang.Override
1245   public java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
getAttributesMap()1246       getAttributesMap() {
1247     return internalGetAttributes().getMap();
1248   }
1249   /**
1250    *
1251    *
1252    * <pre>
1253    * Extra user event features to include in the recommendation model.
1254    * These attributes must NOT contain data that needs to be parsed or processed
1255    * further, e.g. JSON or other encodings.
1256    * If you provide custom attributes for ingested user events, also include
1257    * them in the user events that you associate with prediction requests. Custom
1258    * attribute formatting must be consistent between imported events and events
1259    * provided with prediction requests. This lets the Discovery Engine API use
1260    * those custom attributes when training models and serving predictions, which
1261    * helps improve recommendation quality.
1262    * This field needs to pass all below criteria, otherwise an
1263    * `INVALID_ARGUMENT` error is returned:
1264    * * The key must be a UTF-8 encoded string with a length limit of 5,000
1265    *   characters.
1266    * * For text attributes, at most 400 values are allowed. Empty values are not
1267    *   allowed. Each value must be a UTF-8 encoded string with a length limit of
1268    *   256 characters.
1269    * * For number attributes, at most 400 values are allowed.
1270    * For product recommendations, an example of extra user information is
1271    * ` traffic_channel`, which is how a user arrives at the site. Users can
1272    * arrive
1273    * at the site by coming to the site directly, coming through Google
1274    * search, or in other ways.
1275    * </pre>
1276    *
1277    * <code>map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
1278    * </code>
1279    */
1280   @java.lang.Override
1281   public /* nullable */ com.google.cloud.discoveryengine.v1beta.CustomAttribute
getAttributesOrDefault( java.lang.String key, com.google.cloud.discoveryengine.v1beta.CustomAttribute defaultValue)1282       getAttributesOrDefault(
1283           java.lang.String key,
1284           /* nullable */
1285           com.google.cloud.discoveryengine.v1beta.CustomAttribute defaultValue) {
1286     if (key == null) {
1287       throw new NullPointerException("map key");
1288     }
1289     java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute> map =
1290         internalGetAttributes().getMap();
1291     return map.containsKey(key) ? map.get(key) : defaultValue;
1292   }
1293   /**
1294    *
1295    *
1296    * <pre>
1297    * Extra user event features to include in the recommendation model.
1298    * These attributes must NOT contain data that needs to be parsed or processed
1299    * further, e.g. JSON or other encodings.
1300    * If you provide custom attributes for ingested user events, also include
1301    * them in the user events that you associate with prediction requests. Custom
1302    * attribute formatting must be consistent between imported events and events
1303    * provided with prediction requests. This lets the Discovery Engine API use
1304    * those custom attributes when training models and serving predictions, which
1305    * helps improve recommendation quality.
1306    * This field needs to pass all below criteria, otherwise an
1307    * `INVALID_ARGUMENT` error is returned:
1308    * * The key must be a UTF-8 encoded string with a length limit of 5,000
1309    *   characters.
1310    * * For text attributes, at most 400 values are allowed. Empty values are not
1311    *   allowed. Each value must be a UTF-8 encoded string with a length limit of
1312    *   256 characters.
1313    * * For number attributes, at most 400 values are allowed.
1314    * For product recommendations, an example of extra user information is
1315    * ` traffic_channel`, which is how a user arrives at the site. Users can
1316    * arrive
1317    * at the site by coming to the site directly, coming through Google
1318    * search, or in other ways.
1319    * </pre>
1320    *
1321    * <code>map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
1322    * </code>
1323    */
1324   @java.lang.Override
getAttributesOrThrow( java.lang.String key)1325   public com.google.cloud.discoveryengine.v1beta.CustomAttribute getAttributesOrThrow(
1326       java.lang.String key) {
1327     if (key == null) {
1328       throw new NullPointerException("map key");
1329     }
1330     java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute> map =
1331         internalGetAttributes().getMap();
1332     if (!map.containsKey(key)) {
1333       throw new java.lang.IllegalArgumentException();
1334     }
1335     return map.get(key);
1336   }
1337 
1338   public static final int MEDIA_INFO_FIELD_NUMBER = 18;
1339   private com.google.cloud.discoveryengine.v1beta.MediaInfo mediaInfo_;
1340   /**
1341    *
1342    *
1343    * <pre>
1344    * Media-specific info.
1345    * </pre>
1346    *
1347    * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
1348    *
1349    * @return Whether the mediaInfo field is set.
1350    */
1351   @java.lang.Override
hasMediaInfo()1352   public boolean hasMediaInfo() {
1353     return mediaInfo_ != null;
1354   }
1355   /**
1356    *
1357    *
1358    * <pre>
1359    * Media-specific info.
1360    * </pre>
1361    *
1362    * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
1363    *
1364    * @return The mediaInfo.
1365    */
1366   @java.lang.Override
getMediaInfo()1367   public com.google.cloud.discoveryengine.v1beta.MediaInfo getMediaInfo() {
1368     return mediaInfo_ == null
1369         ? com.google.cloud.discoveryengine.v1beta.MediaInfo.getDefaultInstance()
1370         : mediaInfo_;
1371   }
1372   /**
1373    *
1374    *
1375    * <pre>
1376    * Media-specific info.
1377    * </pre>
1378    *
1379    * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
1380    */
1381   @java.lang.Override
getMediaInfoOrBuilder()1382   public com.google.cloud.discoveryengine.v1beta.MediaInfoOrBuilder getMediaInfoOrBuilder() {
1383     return mediaInfo_ == null
1384         ? com.google.cloud.discoveryengine.v1beta.MediaInfo.getDefaultInstance()
1385         : mediaInfo_;
1386   }
1387 
1388   private byte memoizedIsInitialized = -1;
1389 
1390   @java.lang.Override
isInitialized()1391   public final boolean isInitialized() {
1392     byte isInitialized = memoizedIsInitialized;
1393     if (isInitialized == 1) return true;
1394     if (isInitialized == 0) return false;
1395 
1396     memoizedIsInitialized = 1;
1397     return true;
1398   }
1399 
1400   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)1401   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
1402     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventType_)) {
1403       com.google.protobuf.GeneratedMessageV3.writeString(output, 1, eventType_);
1404     }
1405     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userPseudoId_)) {
1406       com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userPseudoId_);
1407     }
1408     if (eventTime_ != null) {
1409       output.writeMessage(3, getEventTime());
1410     }
1411     if (userInfo_ != null) {
1412       output.writeMessage(4, getUserInfo());
1413     }
1414     if (directUserRequest_ != false) {
1415       output.writeBool(5, directUserRequest_);
1416     }
1417     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
1418       com.google.protobuf.GeneratedMessageV3.writeString(output, 6, sessionId_);
1419     }
1420     if (pageInfo_ != null) {
1421       output.writeMessage(7, getPageInfo());
1422     }
1423     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attributionToken_)) {
1424       com.google.protobuf.GeneratedMessageV3.writeString(output, 8, attributionToken_);
1425     }
1426     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) {
1427       com.google.protobuf.GeneratedMessageV3.writeString(output, 9, filter_);
1428     }
1429     for (int i = 0; i < documents_.size(); i++) {
1430       output.writeMessage(10, documents_.get(i));
1431     }
1432     if (panel_ != null) {
1433       output.writeMessage(11, getPanel());
1434     }
1435     if (searchInfo_ != null) {
1436       output.writeMessage(12, getSearchInfo());
1437     }
1438     if (completionInfo_ != null) {
1439       output.writeMessage(13, getCompletionInfo());
1440     }
1441     if (transactionInfo_ != null) {
1442       output.writeMessage(14, getTransactionInfo());
1443     }
1444     for (int i = 0; i < tagIds_.size(); i++) {
1445       com.google.protobuf.GeneratedMessageV3.writeString(output, 15, tagIds_.getRaw(i));
1446     }
1447     for (int i = 0; i < promotionIds_.size(); i++) {
1448       com.google.protobuf.GeneratedMessageV3.writeString(output, 16, promotionIds_.getRaw(i));
1449     }
1450     com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
1451         output, internalGetAttributes(), AttributesDefaultEntryHolder.defaultEntry, 17);
1452     if (mediaInfo_ != null) {
1453       output.writeMessage(18, getMediaInfo());
1454     }
1455     getUnknownFields().writeTo(output);
1456   }
1457 
1458   @java.lang.Override
getSerializedSize()1459   public int getSerializedSize() {
1460     int size = memoizedSize;
1461     if (size != -1) return size;
1462 
1463     size = 0;
1464     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventType_)) {
1465       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, eventType_);
1466     }
1467     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userPseudoId_)) {
1468       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userPseudoId_);
1469     }
1470     if (eventTime_ != null) {
1471       size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEventTime());
1472     }
1473     if (userInfo_ != null) {
1474       size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getUserInfo());
1475     }
1476     if (directUserRequest_ != false) {
1477       size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, directUserRequest_);
1478     }
1479     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) {
1480       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, sessionId_);
1481     }
1482     if (pageInfo_ != null) {
1483       size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getPageInfo());
1484     }
1485     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attributionToken_)) {
1486       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, attributionToken_);
1487     }
1488     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filter_)) {
1489       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, filter_);
1490     }
1491     for (int i = 0; i < documents_.size(); i++) {
1492       size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, documents_.get(i));
1493     }
1494     if (panel_ != null) {
1495       size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getPanel());
1496     }
1497     if (searchInfo_ != null) {
1498       size += com.google.protobuf.CodedOutputStream.computeMessageSize(12, getSearchInfo());
1499     }
1500     if (completionInfo_ != null) {
1501       size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getCompletionInfo());
1502     }
1503     if (transactionInfo_ != null) {
1504       size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, getTransactionInfo());
1505     }
1506     {
1507       int dataSize = 0;
1508       for (int i = 0; i < tagIds_.size(); i++) {
1509         dataSize += computeStringSizeNoTag(tagIds_.getRaw(i));
1510       }
1511       size += dataSize;
1512       size += 1 * getTagIdsList().size();
1513     }
1514     {
1515       int dataSize = 0;
1516       for (int i = 0; i < promotionIds_.size(); i++) {
1517         dataSize += computeStringSizeNoTag(promotionIds_.getRaw(i));
1518       }
1519       size += dataSize;
1520       size += 2 * getPromotionIdsList().size();
1521     }
1522     for (java.util.Map.Entry<
1523             java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
1524         entry : internalGetAttributes().getMap().entrySet()) {
1525       com.google.protobuf.MapEntry<
1526               java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
1527           attributes__ =
1528               AttributesDefaultEntryHolder.defaultEntry
1529                   .newBuilderForType()
1530                   .setKey(entry.getKey())
1531                   .setValue(entry.getValue())
1532                   .build();
1533       size += com.google.protobuf.CodedOutputStream.computeMessageSize(17, attributes__);
1534     }
1535     if (mediaInfo_ != null) {
1536       size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getMediaInfo());
1537     }
1538     size += getUnknownFields().getSerializedSize();
1539     memoizedSize = size;
1540     return size;
1541   }
1542 
1543   @java.lang.Override
equals(final java.lang.Object obj)1544   public boolean equals(final java.lang.Object obj) {
1545     if (obj == this) {
1546       return true;
1547     }
1548     if (!(obj instanceof com.google.cloud.discoveryengine.v1beta.UserEvent)) {
1549       return super.equals(obj);
1550     }
1551     com.google.cloud.discoveryengine.v1beta.UserEvent other =
1552         (com.google.cloud.discoveryengine.v1beta.UserEvent) obj;
1553 
1554     if (!getEventType().equals(other.getEventType())) return false;
1555     if (!getUserPseudoId().equals(other.getUserPseudoId())) return false;
1556     if (hasEventTime() != other.hasEventTime()) return false;
1557     if (hasEventTime()) {
1558       if (!getEventTime().equals(other.getEventTime())) return false;
1559     }
1560     if (hasUserInfo() != other.hasUserInfo()) return false;
1561     if (hasUserInfo()) {
1562       if (!getUserInfo().equals(other.getUserInfo())) return false;
1563     }
1564     if (getDirectUserRequest() != other.getDirectUserRequest()) return false;
1565     if (!getSessionId().equals(other.getSessionId())) return false;
1566     if (hasPageInfo() != other.hasPageInfo()) return false;
1567     if (hasPageInfo()) {
1568       if (!getPageInfo().equals(other.getPageInfo())) return false;
1569     }
1570     if (!getAttributionToken().equals(other.getAttributionToken())) return false;
1571     if (!getFilter().equals(other.getFilter())) return false;
1572     if (!getDocumentsList().equals(other.getDocumentsList())) return false;
1573     if (hasPanel() != other.hasPanel()) return false;
1574     if (hasPanel()) {
1575       if (!getPanel().equals(other.getPanel())) return false;
1576     }
1577     if (hasSearchInfo() != other.hasSearchInfo()) return false;
1578     if (hasSearchInfo()) {
1579       if (!getSearchInfo().equals(other.getSearchInfo())) return false;
1580     }
1581     if (hasCompletionInfo() != other.hasCompletionInfo()) return false;
1582     if (hasCompletionInfo()) {
1583       if (!getCompletionInfo().equals(other.getCompletionInfo())) return false;
1584     }
1585     if (hasTransactionInfo() != other.hasTransactionInfo()) return false;
1586     if (hasTransactionInfo()) {
1587       if (!getTransactionInfo().equals(other.getTransactionInfo())) return false;
1588     }
1589     if (!getTagIdsList().equals(other.getTagIdsList())) return false;
1590     if (!getPromotionIdsList().equals(other.getPromotionIdsList())) return false;
1591     if (!internalGetAttributes().equals(other.internalGetAttributes())) return false;
1592     if (hasMediaInfo() != other.hasMediaInfo()) return false;
1593     if (hasMediaInfo()) {
1594       if (!getMediaInfo().equals(other.getMediaInfo())) return false;
1595     }
1596     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
1597     return true;
1598   }
1599 
1600   @java.lang.Override
hashCode()1601   public int hashCode() {
1602     if (memoizedHashCode != 0) {
1603       return memoizedHashCode;
1604     }
1605     int hash = 41;
1606     hash = (19 * hash) + getDescriptor().hashCode();
1607     hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER;
1608     hash = (53 * hash) + getEventType().hashCode();
1609     hash = (37 * hash) + USER_PSEUDO_ID_FIELD_NUMBER;
1610     hash = (53 * hash) + getUserPseudoId().hashCode();
1611     if (hasEventTime()) {
1612       hash = (37 * hash) + EVENT_TIME_FIELD_NUMBER;
1613       hash = (53 * hash) + getEventTime().hashCode();
1614     }
1615     if (hasUserInfo()) {
1616       hash = (37 * hash) + USER_INFO_FIELD_NUMBER;
1617       hash = (53 * hash) + getUserInfo().hashCode();
1618     }
1619     hash = (37 * hash) + DIRECT_USER_REQUEST_FIELD_NUMBER;
1620     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDirectUserRequest());
1621     hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
1622     hash = (53 * hash) + getSessionId().hashCode();
1623     if (hasPageInfo()) {
1624       hash = (37 * hash) + PAGE_INFO_FIELD_NUMBER;
1625       hash = (53 * hash) + getPageInfo().hashCode();
1626     }
1627     hash = (37 * hash) + ATTRIBUTION_TOKEN_FIELD_NUMBER;
1628     hash = (53 * hash) + getAttributionToken().hashCode();
1629     hash = (37 * hash) + FILTER_FIELD_NUMBER;
1630     hash = (53 * hash) + getFilter().hashCode();
1631     if (getDocumentsCount() > 0) {
1632       hash = (37 * hash) + DOCUMENTS_FIELD_NUMBER;
1633       hash = (53 * hash) + getDocumentsList().hashCode();
1634     }
1635     if (hasPanel()) {
1636       hash = (37 * hash) + PANEL_FIELD_NUMBER;
1637       hash = (53 * hash) + getPanel().hashCode();
1638     }
1639     if (hasSearchInfo()) {
1640       hash = (37 * hash) + SEARCH_INFO_FIELD_NUMBER;
1641       hash = (53 * hash) + getSearchInfo().hashCode();
1642     }
1643     if (hasCompletionInfo()) {
1644       hash = (37 * hash) + COMPLETION_INFO_FIELD_NUMBER;
1645       hash = (53 * hash) + getCompletionInfo().hashCode();
1646     }
1647     if (hasTransactionInfo()) {
1648       hash = (37 * hash) + TRANSACTION_INFO_FIELD_NUMBER;
1649       hash = (53 * hash) + getTransactionInfo().hashCode();
1650     }
1651     if (getTagIdsCount() > 0) {
1652       hash = (37 * hash) + TAG_IDS_FIELD_NUMBER;
1653       hash = (53 * hash) + getTagIdsList().hashCode();
1654     }
1655     if (getPromotionIdsCount() > 0) {
1656       hash = (37 * hash) + PROMOTION_IDS_FIELD_NUMBER;
1657       hash = (53 * hash) + getPromotionIdsList().hashCode();
1658     }
1659     if (!internalGetAttributes().getMap().isEmpty()) {
1660       hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER;
1661       hash = (53 * hash) + internalGetAttributes().hashCode();
1662     }
1663     if (hasMediaInfo()) {
1664       hash = (37 * hash) + MEDIA_INFO_FIELD_NUMBER;
1665       hash = (53 * hash) + getMediaInfo().hashCode();
1666     }
1667     hash = (29 * hash) + getUnknownFields().hashCode();
1668     memoizedHashCode = hash;
1669     return hash;
1670   }
1671 
parseFrom( java.nio.ByteBuffer data)1672   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1673       java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
1674     return PARSER.parseFrom(data);
1675   }
1676 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1677   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1678       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1679       throws com.google.protobuf.InvalidProtocolBufferException {
1680     return PARSER.parseFrom(data, extensionRegistry);
1681   }
1682 
parseFrom( com.google.protobuf.ByteString data)1683   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1684       com.google.protobuf.ByteString data)
1685       throws com.google.protobuf.InvalidProtocolBufferException {
1686     return PARSER.parseFrom(data);
1687   }
1688 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1689   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1690       com.google.protobuf.ByteString data,
1691       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1692       throws com.google.protobuf.InvalidProtocolBufferException {
1693     return PARSER.parseFrom(data, extensionRegistry);
1694   }
1695 
parseFrom(byte[] data)1696   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(byte[] data)
1697       throws com.google.protobuf.InvalidProtocolBufferException {
1698     return PARSER.parseFrom(data);
1699   }
1700 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1701   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1702       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1703       throws com.google.protobuf.InvalidProtocolBufferException {
1704     return PARSER.parseFrom(data, extensionRegistry);
1705   }
1706 
parseFrom( java.io.InputStream input)1707   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1708       java.io.InputStream input) throws java.io.IOException {
1709     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
1710   }
1711 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1712   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1713       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1714       throws java.io.IOException {
1715     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
1716         PARSER, input, extensionRegistry);
1717   }
1718 
parseDelimitedFrom( java.io.InputStream input)1719   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseDelimitedFrom(
1720       java.io.InputStream input) throws java.io.IOException {
1721     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
1722   }
1723 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1724   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseDelimitedFrom(
1725       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1726       throws java.io.IOException {
1727     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
1728         PARSER, input, extensionRegistry);
1729   }
1730 
parseFrom( com.google.protobuf.CodedInputStream input)1731   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1732       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
1733     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
1734   }
1735 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1736   public static com.google.cloud.discoveryengine.v1beta.UserEvent parseFrom(
1737       com.google.protobuf.CodedInputStream input,
1738       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1739       throws java.io.IOException {
1740     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
1741         PARSER, input, extensionRegistry);
1742   }
1743 
1744   @java.lang.Override
newBuilderForType()1745   public Builder newBuilderForType() {
1746     return newBuilder();
1747   }
1748 
newBuilder()1749   public static Builder newBuilder() {
1750     return DEFAULT_INSTANCE.toBuilder();
1751   }
1752 
newBuilder(com.google.cloud.discoveryengine.v1beta.UserEvent prototype)1753   public static Builder newBuilder(com.google.cloud.discoveryengine.v1beta.UserEvent prototype) {
1754     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1755   }
1756 
1757   @java.lang.Override
toBuilder()1758   public Builder toBuilder() {
1759     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
1760   }
1761 
1762   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)1763   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1764     Builder builder = new Builder(parent);
1765     return builder;
1766   }
1767   /**
1768    *
1769    *
1770    * <pre>
1771    * UserEvent captures all metadata information Discovery Engine API needs to
1772    * know about how end users interact with customers' website.
1773    * </pre>
1774    *
1775    * Protobuf type {@code google.cloud.discoveryengine.v1beta.UserEvent}
1776    */
1777   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
1778       implements
1779       // @@protoc_insertion_point(builder_implements:google.cloud.discoveryengine.v1beta.UserEvent)
1780       com.google.cloud.discoveryengine.v1beta.UserEventOrBuilder {
getDescriptor()1781     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
1782       return com.google.cloud.discoveryengine.v1beta.UserEventProto
1783           .internal_static_google_cloud_discoveryengine_v1beta_UserEvent_descriptor;
1784     }
1785 
1786     @SuppressWarnings({"rawtypes"})
internalGetMapField(int number)1787     protected com.google.protobuf.MapField internalGetMapField(int number) {
1788       switch (number) {
1789         case 17:
1790           return internalGetAttributes();
1791         default:
1792           throw new RuntimeException("Invalid map field number: " + number);
1793       }
1794     }
1795 
1796     @SuppressWarnings({"rawtypes"})
internalGetMutableMapField(int number)1797     protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
1798       switch (number) {
1799         case 17:
1800           return internalGetMutableAttributes();
1801         default:
1802           throw new RuntimeException("Invalid map field number: " + number);
1803       }
1804     }
1805 
1806     @java.lang.Override
1807     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()1808         internalGetFieldAccessorTable() {
1809       return com.google.cloud.discoveryengine.v1beta.UserEventProto
1810           .internal_static_google_cloud_discoveryengine_v1beta_UserEvent_fieldAccessorTable
1811           .ensureFieldAccessorsInitialized(
1812               com.google.cloud.discoveryengine.v1beta.UserEvent.class,
1813               com.google.cloud.discoveryengine.v1beta.UserEvent.Builder.class);
1814     }
1815 
1816     // Construct using com.google.cloud.discoveryengine.v1beta.UserEvent.newBuilder()
Builder()1817     private Builder() {}
1818 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)1819     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
1820       super(parent);
1821     }
1822 
1823     @java.lang.Override
clear()1824     public Builder clear() {
1825       super.clear();
1826       bitField0_ = 0;
1827       eventType_ = "";
1828       userPseudoId_ = "";
1829       eventTime_ = null;
1830       if (eventTimeBuilder_ != null) {
1831         eventTimeBuilder_.dispose();
1832         eventTimeBuilder_ = null;
1833       }
1834       userInfo_ = null;
1835       if (userInfoBuilder_ != null) {
1836         userInfoBuilder_.dispose();
1837         userInfoBuilder_ = null;
1838       }
1839       directUserRequest_ = false;
1840       sessionId_ = "";
1841       pageInfo_ = null;
1842       if (pageInfoBuilder_ != null) {
1843         pageInfoBuilder_.dispose();
1844         pageInfoBuilder_ = null;
1845       }
1846       attributionToken_ = "";
1847       filter_ = "";
1848       if (documentsBuilder_ == null) {
1849         documents_ = java.util.Collections.emptyList();
1850       } else {
1851         documents_ = null;
1852         documentsBuilder_.clear();
1853       }
1854       bitField0_ = (bitField0_ & ~0x00000200);
1855       panel_ = null;
1856       if (panelBuilder_ != null) {
1857         panelBuilder_.dispose();
1858         panelBuilder_ = null;
1859       }
1860       searchInfo_ = null;
1861       if (searchInfoBuilder_ != null) {
1862         searchInfoBuilder_.dispose();
1863         searchInfoBuilder_ = null;
1864       }
1865       completionInfo_ = null;
1866       if (completionInfoBuilder_ != null) {
1867         completionInfoBuilder_.dispose();
1868         completionInfoBuilder_ = null;
1869       }
1870       transactionInfo_ = null;
1871       if (transactionInfoBuilder_ != null) {
1872         transactionInfoBuilder_.dispose();
1873         transactionInfoBuilder_ = null;
1874       }
1875       tagIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1876       bitField0_ = (bitField0_ & ~0x00004000);
1877       promotionIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
1878       bitField0_ = (bitField0_ & ~0x00008000);
1879       internalGetMutableAttributes().clear();
1880       mediaInfo_ = null;
1881       if (mediaInfoBuilder_ != null) {
1882         mediaInfoBuilder_.dispose();
1883         mediaInfoBuilder_ = null;
1884       }
1885       return this;
1886     }
1887 
1888     @java.lang.Override
getDescriptorForType()1889     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
1890       return com.google.cloud.discoveryengine.v1beta.UserEventProto
1891           .internal_static_google_cloud_discoveryengine_v1beta_UserEvent_descriptor;
1892     }
1893 
1894     @java.lang.Override
getDefaultInstanceForType()1895     public com.google.cloud.discoveryengine.v1beta.UserEvent getDefaultInstanceForType() {
1896       return com.google.cloud.discoveryengine.v1beta.UserEvent.getDefaultInstance();
1897     }
1898 
1899     @java.lang.Override
build()1900     public com.google.cloud.discoveryengine.v1beta.UserEvent build() {
1901       com.google.cloud.discoveryengine.v1beta.UserEvent result = buildPartial();
1902       if (!result.isInitialized()) {
1903         throw newUninitializedMessageException(result);
1904       }
1905       return result;
1906     }
1907 
1908     @java.lang.Override
buildPartial()1909     public com.google.cloud.discoveryengine.v1beta.UserEvent buildPartial() {
1910       com.google.cloud.discoveryengine.v1beta.UserEvent result =
1911           new com.google.cloud.discoveryengine.v1beta.UserEvent(this);
1912       buildPartialRepeatedFields(result);
1913       if (bitField0_ != 0) {
1914         buildPartial0(result);
1915       }
1916       onBuilt();
1917       return result;
1918     }
1919 
buildPartialRepeatedFields( com.google.cloud.discoveryengine.v1beta.UserEvent result)1920     private void buildPartialRepeatedFields(
1921         com.google.cloud.discoveryengine.v1beta.UserEvent result) {
1922       if (documentsBuilder_ == null) {
1923         if (((bitField0_ & 0x00000200) != 0)) {
1924           documents_ = java.util.Collections.unmodifiableList(documents_);
1925           bitField0_ = (bitField0_ & ~0x00000200);
1926         }
1927         result.documents_ = documents_;
1928       } else {
1929         result.documents_ = documentsBuilder_.build();
1930       }
1931       if (((bitField0_ & 0x00004000) != 0)) {
1932         tagIds_ = tagIds_.getUnmodifiableView();
1933         bitField0_ = (bitField0_ & ~0x00004000);
1934       }
1935       result.tagIds_ = tagIds_;
1936       if (((bitField0_ & 0x00008000) != 0)) {
1937         promotionIds_ = promotionIds_.getUnmodifiableView();
1938         bitField0_ = (bitField0_ & ~0x00008000);
1939       }
1940       result.promotionIds_ = promotionIds_;
1941     }
1942 
buildPartial0(com.google.cloud.discoveryengine.v1beta.UserEvent result)1943     private void buildPartial0(com.google.cloud.discoveryengine.v1beta.UserEvent result) {
1944       int from_bitField0_ = bitField0_;
1945       if (((from_bitField0_ & 0x00000001) != 0)) {
1946         result.eventType_ = eventType_;
1947       }
1948       if (((from_bitField0_ & 0x00000002) != 0)) {
1949         result.userPseudoId_ = userPseudoId_;
1950       }
1951       if (((from_bitField0_ & 0x00000004) != 0)) {
1952         result.eventTime_ = eventTimeBuilder_ == null ? eventTime_ : eventTimeBuilder_.build();
1953       }
1954       if (((from_bitField0_ & 0x00000008) != 0)) {
1955         result.userInfo_ = userInfoBuilder_ == null ? userInfo_ : userInfoBuilder_.build();
1956       }
1957       if (((from_bitField0_ & 0x00000010) != 0)) {
1958         result.directUserRequest_ = directUserRequest_;
1959       }
1960       if (((from_bitField0_ & 0x00000020) != 0)) {
1961         result.sessionId_ = sessionId_;
1962       }
1963       if (((from_bitField0_ & 0x00000040) != 0)) {
1964         result.pageInfo_ = pageInfoBuilder_ == null ? pageInfo_ : pageInfoBuilder_.build();
1965       }
1966       if (((from_bitField0_ & 0x00000080) != 0)) {
1967         result.attributionToken_ = attributionToken_;
1968       }
1969       if (((from_bitField0_ & 0x00000100) != 0)) {
1970         result.filter_ = filter_;
1971       }
1972       if (((from_bitField0_ & 0x00000400) != 0)) {
1973         result.panel_ = panelBuilder_ == null ? panel_ : panelBuilder_.build();
1974       }
1975       if (((from_bitField0_ & 0x00000800) != 0)) {
1976         result.searchInfo_ = searchInfoBuilder_ == null ? searchInfo_ : searchInfoBuilder_.build();
1977       }
1978       if (((from_bitField0_ & 0x00001000) != 0)) {
1979         result.completionInfo_ =
1980             completionInfoBuilder_ == null ? completionInfo_ : completionInfoBuilder_.build();
1981       }
1982       if (((from_bitField0_ & 0x00002000) != 0)) {
1983         result.transactionInfo_ =
1984             transactionInfoBuilder_ == null ? transactionInfo_ : transactionInfoBuilder_.build();
1985       }
1986       if (((from_bitField0_ & 0x00010000) != 0)) {
1987         result.attributes_ = internalGetAttributes();
1988         result.attributes_.makeImmutable();
1989       }
1990       if (((from_bitField0_ & 0x00020000) != 0)) {
1991         result.mediaInfo_ = mediaInfoBuilder_ == null ? mediaInfo_ : mediaInfoBuilder_.build();
1992       }
1993     }
1994 
1995     @java.lang.Override
clone()1996     public Builder clone() {
1997       return super.clone();
1998     }
1999 
2000     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)2001     public Builder setField(
2002         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
2003       return super.setField(field, value);
2004     }
2005 
2006     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)2007     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
2008       return super.clearField(field);
2009     }
2010 
2011     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)2012     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
2013       return super.clearOneof(oneof);
2014     }
2015 
2016     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)2017     public Builder setRepeatedField(
2018         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
2019       return super.setRepeatedField(field, index, value);
2020     }
2021 
2022     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)2023     public Builder addRepeatedField(
2024         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
2025       return super.addRepeatedField(field, value);
2026     }
2027 
2028     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)2029     public Builder mergeFrom(com.google.protobuf.Message other) {
2030       if (other instanceof com.google.cloud.discoveryengine.v1beta.UserEvent) {
2031         return mergeFrom((com.google.cloud.discoveryengine.v1beta.UserEvent) other);
2032       } else {
2033         super.mergeFrom(other);
2034         return this;
2035       }
2036     }
2037 
mergeFrom(com.google.cloud.discoveryengine.v1beta.UserEvent other)2038     public Builder mergeFrom(com.google.cloud.discoveryengine.v1beta.UserEvent other) {
2039       if (other == com.google.cloud.discoveryengine.v1beta.UserEvent.getDefaultInstance())
2040         return this;
2041       if (!other.getEventType().isEmpty()) {
2042         eventType_ = other.eventType_;
2043         bitField0_ |= 0x00000001;
2044         onChanged();
2045       }
2046       if (!other.getUserPseudoId().isEmpty()) {
2047         userPseudoId_ = other.userPseudoId_;
2048         bitField0_ |= 0x00000002;
2049         onChanged();
2050       }
2051       if (other.hasEventTime()) {
2052         mergeEventTime(other.getEventTime());
2053       }
2054       if (other.hasUserInfo()) {
2055         mergeUserInfo(other.getUserInfo());
2056       }
2057       if (other.getDirectUserRequest() != false) {
2058         setDirectUserRequest(other.getDirectUserRequest());
2059       }
2060       if (!other.getSessionId().isEmpty()) {
2061         sessionId_ = other.sessionId_;
2062         bitField0_ |= 0x00000020;
2063         onChanged();
2064       }
2065       if (other.hasPageInfo()) {
2066         mergePageInfo(other.getPageInfo());
2067       }
2068       if (!other.getAttributionToken().isEmpty()) {
2069         attributionToken_ = other.attributionToken_;
2070         bitField0_ |= 0x00000080;
2071         onChanged();
2072       }
2073       if (!other.getFilter().isEmpty()) {
2074         filter_ = other.filter_;
2075         bitField0_ |= 0x00000100;
2076         onChanged();
2077       }
2078       if (documentsBuilder_ == null) {
2079         if (!other.documents_.isEmpty()) {
2080           if (documents_.isEmpty()) {
2081             documents_ = other.documents_;
2082             bitField0_ = (bitField0_ & ~0x00000200);
2083           } else {
2084             ensureDocumentsIsMutable();
2085             documents_.addAll(other.documents_);
2086           }
2087           onChanged();
2088         }
2089       } else {
2090         if (!other.documents_.isEmpty()) {
2091           if (documentsBuilder_.isEmpty()) {
2092             documentsBuilder_.dispose();
2093             documentsBuilder_ = null;
2094             documents_ = other.documents_;
2095             bitField0_ = (bitField0_ & ~0x00000200);
2096             documentsBuilder_ =
2097                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
2098                     ? getDocumentsFieldBuilder()
2099                     : null;
2100           } else {
2101             documentsBuilder_.addAllMessages(other.documents_);
2102           }
2103         }
2104       }
2105       if (other.hasPanel()) {
2106         mergePanel(other.getPanel());
2107       }
2108       if (other.hasSearchInfo()) {
2109         mergeSearchInfo(other.getSearchInfo());
2110       }
2111       if (other.hasCompletionInfo()) {
2112         mergeCompletionInfo(other.getCompletionInfo());
2113       }
2114       if (other.hasTransactionInfo()) {
2115         mergeTransactionInfo(other.getTransactionInfo());
2116       }
2117       if (!other.tagIds_.isEmpty()) {
2118         if (tagIds_.isEmpty()) {
2119           tagIds_ = other.tagIds_;
2120           bitField0_ = (bitField0_ & ~0x00004000);
2121         } else {
2122           ensureTagIdsIsMutable();
2123           tagIds_.addAll(other.tagIds_);
2124         }
2125         onChanged();
2126       }
2127       if (!other.promotionIds_.isEmpty()) {
2128         if (promotionIds_.isEmpty()) {
2129           promotionIds_ = other.promotionIds_;
2130           bitField0_ = (bitField0_ & ~0x00008000);
2131         } else {
2132           ensurePromotionIdsIsMutable();
2133           promotionIds_.addAll(other.promotionIds_);
2134         }
2135         onChanged();
2136       }
2137       internalGetMutableAttributes().mergeFrom(other.internalGetAttributes());
2138       bitField0_ |= 0x00010000;
2139       if (other.hasMediaInfo()) {
2140         mergeMediaInfo(other.getMediaInfo());
2141       }
2142       this.mergeUnknownFields(other.getUnknownFields());
2143       onChanged();
2144       return this;
2145     }
2146 
2147     @java.lang.Override
isInitialized()2148     public final boolean isInitialized() {
2149       return true;
2150     }
2151 
2152     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)2153     public Builder mergeFrom(
2154         com.google.protobuf.CodedInputStream input,
2155         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2156         throws java.io.IOException {
2157       if (extensionRegistry == null) {
2158         throw new java.lang.NullPointerException();
2159       }
2160       try {
2161         boolean done = false;
2162         while (!done) {
2163           int tag = input.readTag();
2164           switch (tag) {
2165             case 0:
2166               done = true;
2167               break;
2168             case 10:
2169               {
2170                 eventType_ = input.readStringRequireUtf8();
2171                 bitField0_ |= 0x00000001;
2172                 break;
2173               } // case 10
2174             case 18:
2175               {
2176                 userPseudoId_ = input.readStringRequireUtf8();
2177                 bitField0_ |= 0x00000002;
2178                 break;
2179               } // case 18
2180             case 26:
2181               {
2182                 input.readMessage(getEventTimeFieldBuilder().getBuilder(), extensionRegistry);
2183                 bitField0_ |= 0x00000004;
2184                 break;
2185               } // case 26
2186             case 34:
2187               {
2188                 input.readMessage(getUserInfoFieldBuilder().getBuilder(), extensionRegistry);
2189                 bitField0_ |= 0x00000008;
2190                 break;
2191               } // case 34
2192             case 40:
2193               {
2194                 directUserRequest_ = input.readBool();
2195                 bitField0_ |= 0x00000010;
2196                 break;
2197               } // case 40
2198             case 50:
2199               {
2200                 sessionId_ = input.readStringRequireUtf8();
2201                 bitField0_ |= 0x00000020;
2202                 break;
2203               } // case 50
2204             case 58:
2205               {
2206                 input.readMessage(getPageInfoFieldBuilder().getBuilder(), extensionRegistry);
2207                 bitField0_ |= 0x00000040;
2208                 break;
2209               } // case 58
2210             case 66:
2211               {
2212                 attributionToken_ = input.readStringRequireUtf8();
2213                 bitField0_ |= 0x00000080;
2214                 break;
2215               } // case 66
2216             case 74:
2217               {
2218                 filter_ = input.readStringRequireUtf8();
2219                 bitField0_ |= 0x00000100;
2220                 break;
2221               } // case 74
2222             case 82:
2223               {
2224                 com.google.cloud.discoveryengine.v1beta.DocumentInfo m =
2225                     input.readMessage(
2226                         com.google.cloud.discoveryengine.v1beta.DocumentInfo.parser(),
2227                         extensionRegistry);
2228                 if (documentsBuilder_ == null) {
2229                   ensureDocumentsIsMutable();
2230                   documents_.add(m);
2231                 } else {
2232                   documentsBuilder_.addMessage(m);
2233                 }
2234                 break;
2235               } // case 82
2236             case 90:
2237               {
2238                 input.readMessage(getPanelFieldBuilder().getBuilder(), extensionRegistry);
2239                 bitField0_ |= 0x00000400;
2240                 break;
2241               } // case 90
2242             case 98:
2243               {
2244                 input.readMessage(getSearchInfoFieldBuilder().getBuilder(), extensionRegistry);
2245                 bitField0_ |= 0x00000800;
2246                 break;
2247               } // case 98
2248             case 106:
2249               {
2250                 input.readMessage(getCompletionInfoFieldBuilder().getBuilder(), extensionRegistry);
2251                 bitField0_ |= 0x00001000;
2252                 break;
2253               } // case 106
2254             case 114:
2255               {
2256                 input.readMessage(getTransactionInfoFieldBuilder().getBuilder(), extensionRegistry);
2257                 bitField0_ |= 0x00002000;
2258                 break;
2259               } // case 114
2260             case 122:
2261               {
2262                 java.lang.String s = input.readStringRequireUtf8();
2263                 ensureTagIdsIsMutable();
2264                 tagIds_.add(s);
2265                 break;
2266               } // case 122
2267             case 130:
2268               {
2269                 java.lang.String s = input.readStringRequireUtf8();
2270                 ensurePromotionIdsIsMutable();
2271                 promotionIds_.add(s);
2272                 break;
2273               } // case 130
2274             case 138:
2275               {
2276                 com.google.protobuf.MapEntry<
2277                         java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
2278                     attributes__ =
2279                         input.readMessage(
2280                             AttributesDefaultEntryHolder.defaultEntry.getParserForType(),
2281                             extensionRegistry);
2282                 internalGetMutableAttributes()
2283                     .getMutableMap()
2284                     .put(attributes__.getKey(), attributes__.getValue());
2285                 bitField0_ |= 0x00010000;
2286                 break;
2287               } // case 138
2288             case 146:
2289               {
2290                 input.readMessage(getMediaInfoFieldBuilder().getBuilder(), extensionRegistry);
2291                 bitField0_ |= 0x00020000;
2292                 break;
2293               } // case 146
2294             default:
2295               {
2296                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
2297                   done = true; // was an endgroup tag
2298                 }
2299                 break;
2300               } // default:
2301           } // switch (tag)
2302         } // while (!done)
2303       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2304         throw e.unwrapIOException();
2305       } finally {
2306         onChanged();
2307       } // finally
2308       return this;
2309     }
2310 
2311     private int bitField0_;
2312 
2313     private java.lang.Object eventType_ = "";
2314     /**
2315      *
2316      *
2317      * <pre>
2318      * Required. User event type. Allowed values are:
2319      * Generic values:
2320      * * `search`: Search for Documents.
2321      * * `view-item`: Detailed page view of a Document.
2322      * * `view-item-list`: View of a panel or ordered list of Documents.
2323      * * `view-home-page`: View of the home page.
2324      * * `view-category-page`: View of a category page, e.g. Home &gt; Men &gt; Jeans
2325      * Retail-related values:
2326      * * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping
2327      * * `purchase`: Purchase an item(s)
2328      * Media-related values:
2329      * * `media-play`: Start/resume watching a video, playing a song, etc.
2330      * * `media-complete`: Finished or stopped midway through a video, song, etc.
2331      * </pre>
2332      *
2333      * <code>string event_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
2334      *
2335      * @return The eventType.
2336      */
getEventType()2337     public java.lang.String getEventType() {
2338       java.lang.Object ref = eventType_;
2339       if (!(ref instanceof java.lang.String)) {
2340         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2341         java.lang.String s = bs.toStringUtf8();
2342         eventType_ = s;
2343         return s;
2344       } else {
2345         return (java.lang.String) ref;
2346       }
2347     }
2348     /**
2349      *
2350      *
2351      * <pre>
2352      * Required. User event type. Allowed values are:
2353      * Generic values:
2354      * * `search`: Search for Documents.
2355      * * `view-item`: Detailed page view of a Document.
2356      * * `view-item-list`: View of a panel or ordered list of Documents.
2357      * * `view-home-page`: View of the home page.
2358      * * `view-category-page`: View of a category page, e.g. Home &gt; Men &gt; Jeans
2359      * Retail-related values:
2360      * * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping
2361      * * `purchase`: Purchase an item(s)
2362      * Media-related values:
2363      * * `media-play`: Start/resume watching a video, playing a song, etc.
2364      * * `media-complete`: Finished or stopped midway through a video, song, etc.
2365      * </pre>
2366      *
2367      * <code>string event_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
2368      *
2369      * @return The bytes for eventType.
2370      */
getEventTypeBytes()2371     public com.google.protobuf.ByteString getEventTypeBytes() {
2372       java.lang.Object ref = eventType_;
2373       if (ref instanceof String) {
2374         com.google.protobuf.ByteString b =
2375             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2376         eventType_ = b;
2377         return b;
2378       } else {
2379         return (com.google.protobuf.ByteString) ref;
2380       }
2381     }
2382     /**
2383      *
2384      *
2385      * <pre>
2386      * Required. User event type. Allowed values are:
2387      * Generic values:
2388      * * `search`: Search for Documents.
2389      * * `view-item`: Detailed page view of a Document.
2390      * * `view-item-list`: View of a panel or ordered list of Documents.
2391      * * `view-home-page`: View of the home page.
2392      * * `view-category-page`: View of a category page, e.g. Home &gt; Men &gt; Jeans
2393      * Retail-related values:
2394      * * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping
2395      * * `purchase`: Purchase an item(s)
2396      * Media-related values:
2397      * * `media-play`: Start/resume watching a video, playing a song, etc.
2398      * * `media-complete`: Finished or stopped midway through a video, song, etc.
2399      * </pre>
2400      *
2401      * <code>string event_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
2402      *
2403      * @param value The eventType to set.
2404      * @return This builder for chaining.
2405      */
setEventType(java.lang.String value)2406     public Builder setEventType(java.lang.String value) {
2407       if (value == null) {
2408         throw new NullPointerException();
2409       }
2410       eventType_ = value;
2411       bitField0_ |= 0x00000001;
2412       onChanged();
2413       return this;
2414     }
2415     /**
2416      *
2417      *
2418      * <pre>
2419      * Required. User event type. Allowed values are:
2420      * Generic values:
2421      * * `search`: Search for Documents.
2422      * * `view-item`: Detailed page view of a Document.
2423      * * `view-item-list`: View of a panel or ordered list of Documents.
2424      * * `view-home-page`: View of the home page.
2425      * * `view-category-page`: View of a category page, e.g. Home &gt; Men &gt; Jeans
2426      * Retail-related values:
2427      * * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping
2428      * * `purchase`: Purchase an item(s)
2429      * Media-related values:
2430      * * `media-play`: Start/resume watching a video, playing a song, etc.
2431      * * `media-complete`: Finished or stopped midway through a video, song, etc.
2432      * </pre>
2433      *
2434      * <code>string event_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
2435      *
2436      * @return This builder for chaining.
2437      */
clearEventType()2438     public Builder clearEventType() {
2439       eventType_ = getDefaultInstance().getEventType();
2440       bitField0_ = (bitField0_ & ~0x00000001);
2441       onChanged();
2442       return this;
2443     }
2444     /**
2445      *
2446      *
2447      * <pre>
2448      * Required. User event type. Allowed values are:
2449      * Generic values:
2450      * * `search`: Search for Documents.
2451      * * `view-item`: Detailed page view of a Document.
2452      * * `view-item-list`: View of a panel or ordered list of Documents.
2453      * * `view-home-page`: View of the home page.
2454      * * `view-category-page`: View of a category page, e.g. Home &gt; Men &gt; Jeans
2455      * Retail-related values:
2456      * * `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping
2457      * * `purchase`: Purchase an item(s)
2458      * Media-related values:
2459      * * `media-play`: Start/resume watching a video, playing a song, etc.
2460      * * `media-complete`: Finished or stopped midway through a video, song, etc.
2461      * </pre>
2462      *
2463      * <code>string event_type = 1 [(.google.api.field_behavior) = REQUIRED];</code>
2464      *
2465      * @param value The bytes for eventType to set.
2466      * @return This builder for chaining.
2467      */
setEventTypeBytes(com.google.protobuf.ByteString value)2468     public Builder setEventTypeBytes(com.google.protobuf.ByteString value) {
2469       if (value == null) {
2470         throw new NullPointerException();
2471       }
2472       checkByteStringIsUtf8(value);
2473       eventType_ = value;
2474       bitField0_ |= 0x00000001;
2475       onChanged();
2476       return this;
2477     }
2478 
2479     private java.lang.Object userPseudoId_ = "";
2480     /**
2481      *
2482      *
2483      * <pre>
2484      * Required. A unique identifier for tracking visitors.
2485      * For example, this could be implemented with an HTTP cookie, which should be
2486      * able to uniquely identify a visitor on a single device. This unique
2487      * identifier should not change if the visitor log in/out of the website.
2488      * Do not set the field to the same fixed ID for different users. This mixes
2489      * the event history of those users together, which results in degraded model
2490      * quality.
2491      * The field must be a UTF-8 encoded string with a length limit of 128
2492      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
2493      * The field should not contain PII or user-data. We recommend to use Google
2494      * Analytics [Client
2495      * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
2496      * for this field.
2497      * </pre>
2498      *
2499      * <code>string user_pseudo_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
2500      *
2501      * @return The userPseudoId.
2502      */
getUserPseudoId()2503     public java.lang.String getUserPseudoId() {
2504       java.lang.Object ref = userPseudoId_;
2505       if (!(ref instanceof java.lang.String)) {
2506         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2507         java.lang.String s = bs.toStringUtf8();
2508         userPseudoId_ = s;
2509         return s;
2510       } else {
2511         return (java.lang.String) ref;
2512       }
2513     }
2514     /**
2515      *
2516      *
2517      * <pre>
2518      * Required. A unique identifier for tracking visitors.
2519      * For example, this could be implemented with an HTTP cookie, which should be
2520      * able to uniquely identify a visitor on a single device. This unique
2521      * identifier should not change if the visitor log in/out of the website.
2522      * Do not set the field to the same fixed ID for different users. This mixes
2523      * the event history of those users together, which results in degraded model
2524      * quality.
2525      * The field must be a UTF-8 encoded string with a length limit of 128
2526      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
2527      * The field should not contain PII or user-data. We recommend to use Google
2528      * Analytics [Client
2529      * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
2530      * for this field.
2531      * </pre>
2532      *
2533      * <code>string user_pseudo_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
2534      *
2535      * @return The bytes for userPseudoId.
2536      */
getUserPseudoIdBytes()2537     public com.google.protobuf.ByteString getUserPseudoIdBytes() {
2538       java.lang.Object ref = userPseudoId_;
2539       if (ref instanceof String) {
2540         com.google.protobuf.ByteString b =
2541             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2542         userPseudoId_ = b;
2543         return b;
2544       } else {
2545         return (com.google.protobuf.ByteString) ref;
2546       }
2547     }
2548     /**
2549      *
2550      *
2551      * <pre>
2552      * Required. A unique identifier for tracking visitors.
2553      * For example, this could be implemented with an HTTP cookie, which should be
2554      * able to uniquely identify a visitor on a single device. This unique
2555      * identifier should not change if the visitor log in/out of the website.
2556      * Do not set the field to the same fixed ID for different users. This mixes
2557      * the event history of those users together, which results in degraded model
2558      * quality.
2559      * The field must be a UTF-8 encoded string with a length limit of 128
2560      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
2561      * The field should not contain PII or user-data. We recommend to use Google
2562      * Analytics [Client
2563      * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
2564      * for this field.
2565      * </pre>
2566      *
2567      * <code>string user_pseudo_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
2568      *
2569      * @param value The userPseudoId to set.
2570      * @return This builder for chaining.
2571      */
setUserPseudoId(java.lang.String value)2572     public Builder setUserPseudoId(java.lang.String value) {
2573       if (value == null) {
2574         throw new NullPointerException();
2575       }
2576       userPseudoId_ = value;
2577       bitField0_ |= 0x00000002;
2578       onChanged();
2579       return this;
2580     }
2581     /**
2582      *
2583      *
2584      * <pre>
2585      * Required. A unique identifier for tracking visitors.
2586      * For example, this could be implemented with an HTTP cookie, which should be
2587      * able to uniquely identify a visitor on a single device. This unique
2588      * identifier should not change if the visitor log in/out of the website.
2589      * Do not set the field to the same fixed ID for different users. This mixes
2590      * the event history of those users together, which results in degraded model
2591      * quality.
2592      * The field must be a UTF-8 encoded string with a length limit of 128
2593      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
2594      * The field should not contain PII or user-data. We recommend to use Google
2595      * Analytics [Client
2596      * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
2597      * for this field.
2598      * </pre>
2599      *
2600      * <code>string user_pseudo_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
2601      *
2602      * @return This builder for chaining.
2603      */
clearUserPseudoId()2604     public Builder clearUserPseudoId() {
2605       userPseudoId_ = getDefaultInstance().getUserPseudoId();
2606       bitField0_ = (bitField0_ & ~0x00000002);
2607       onChanged();
2608       return this;
2609     }
2610     /**
2611      *
2612      *
2613      * <pre>
2614      * Required. A unique identifier for tracking visitors.
2615      * For example, this could be implemented with an HTTP cookie, which should be
2616      * able to uniquely identify a visitor on a single device. This unique
2617      * identifier should not change if the visitor log in/out of the website.
2618      * Do not set the field to the same fixed ID for different users. This mixes
2619      * the event history of those users together, which results in degraded model
2620      * quality.
2621      * The field must be a UTF-8 encoded string with a length limit of 128
2622      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
2623      * The field should not contain PII or user-data. We recommend to use Google
2624      * Analytics [Client
2625      * ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
2626      * for this field.
2627      * </pre>
2628      *
2629      * <code>string user_pseudo_id = 2 [(.google.api.field_behavior) = REQUIRED];</code>
2630      *
2631      * @param value The bytes for userPseudoId to set.
2632      * @return This builder for chaining.
2633      */
setUserPseudoIdBytes(com.google.protobuf.ByteString value)2634     public Builder setUserPseudoIdBytes(com.google.protobuf.ByteString value) {
2635       if (value == null) {
2636         throw new NullPointerException();
2637       }
2638       checkByteStringIsUtf8(value);
2639       userPseudoId_ = value;
2640       bitField0_ |= 0x00000002;
2641       onChanged();
2642       return this;
2643     }
2644 
2645     private com.google.protobuf.Timestamp eventTime_;
2646     private com.google.protobuf.SingleFieldBuilderV3<
2647             com.google.protobuf.Timestamp,
2648             com.google.protobuf.Timestamp.Builder,
2649             com.google.protobuf.TimestampOrBuilder>
2650         eventTimeBuilder_;
2651     /**
2652      *
2653      *
2654      * <pre>
2655      * Only required for
2656      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2657      * method. Timestamp of when the user event happened.
2658      * </pre>
2659      *
2660      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2661      *
2662      * @return Whether the eventTime field is set.
2663      */
hasEventTime()2664     public boolean hasEventTime() {
2665       return ((bitField0_ & 0x00000004) != 0);
2666     }
2667     /**
2668      *
2669      *
2670      * <pre>
2671      * Only required for
2672      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2673      * method. Timestamp of when the user event happened.
2674      * </pre>
2675      *
2676      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2677      *
2678      * @return The eventTime.
2679      */
getEventTime()2680     public com.google.protobuf.Timestamp getEventTime() {
2681       if (eventTimeBuilder_ == null) {
2682         return eventTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : eventTime_;
2683       } else {
2684         return eventTimeBuilder_.getMessage();
2685       }
2686     }
2687     /**
2688      *
2689      *
2690      * <pre>
2691      * Only required for
2692      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2693      * method. Timestamp of when the user event happened.
2694      * </pre>
2695      *
2696      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2697      */
setEventTime(com.google.protobuf.Timestamp value)2698     public Builder setEventTime(com.google.protobuf.Timestamp value) {
2699       if (eventTimeBuilder_ == null) {
2700         if (value == null) {
2701           throw new NullPointerException();
2702         }
2703         eventTime_ = value;
2704       } else {
2705         eventTimeBuilder_.setMessage(value);
2706       }
2707       bitField0_ |= 0x00000004;
2708       onChanged();
2709       return this;
2710     }
2711     /**
2712      *
2713      *
2714      * <pre>
2715      * Only required for
2716      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2717      * method. Timestamp of when the user event happened.
2718      * </pre>
2719      *
2720      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2721      */
setEventTime(com.google.protobuf.Timestamp.Builder builderForValue)2722     public Builder setEventTime(com.google.protobuf.Timestamp.Builder builderForValue) {
2723       if (eventTimeBuilder_ == null) {
2724         eventTime_ = builderForValue.build();
2725       } else {
2726         eventTimeBuilder_.setMessage(builderForValue.build());
2727       }
2728       bitField0_ |= 0x00000004;
2729       onChanged();
2730       return this;
2731     }
2732     /**
2733      *
2734      *
2735      * <pre>
2736      * Only required for
2737      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2738      * method. Timestamp of when the user event happened.
2739      * </pre>
2740      *
2741      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2742      */
mergeEventTime(com.google.protobuf.Timestamp value)2743     public Builder mergeEventTime(com.google.protobuf.Timestamp value) {
2744       if (eventTimeBuilder_ == null) {
2745         if (((bitField0_ & 0x00000004) != 0)
2746             && eventTime_ != null
2747             && eventTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
2748           getEventTimeBuilder().mergeFrom(value);
2749         } else {
2750           eventTime_ = value;
2751         }
2752       } else {
2753         eventTimeBuilder_.mergeFrom(value);
2754       }
2755       bitField0_ |= 0x00000004;
2756       onChanged();
2757       return this;
2758     }
2759     /**
2760      *
2761      *
2762      * <pre>
2763      * Only required for
2764      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2765      * method. Timestamp of when the user event happened.
2766      * </pre>
2767      *
2768      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2769      */
clearEventTime()2770     public Builder clearEventTime() {
2771       bitField0_ = (bitField0_ & ~0x00000004);
2772       eventTime_ = null;
2773       if (eventTimeBuilder_ != null) {
2774         eventTimeBuilder_.dispose();
2775         eventTimeBuilder_ = null;
2776       }
2777       onChanged();
2778       return this;
2779     }
2780     /**
2781      *
2782      *
2783      * <pre>
2784      * Only required for
2785      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2786      * method. Timestamp of when the user event happened.
2787      * </pre>
2788      *
2789      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2790      */
getEventTimeBuilder()2791     public com.google.protobuf.Timestamp.Builder getEventTimeBuilder() {
2792       bitField0_ |= 0x00000004;
2793       onChanged();
2794       return getEventTimeFieldBuilder().getBuilder();
2795     }
2796     /**
2797      *
2798      *
2799      * <pre>
2800      * Only required for
2801      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2802      * method. Timestamp of when the user event happened.
2803      * </pre>
2804      *
2805      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2806      */
getEventTimeOrBuilder()2807     public com.google.protobuf.TimestampOrBuilder getEventTimeOrBuilder() {
2808       if (eventTimeBuilder_ != null) {
2809         return eventTimeBuilder_.getMessageOrBuilder();
2810       } else {
2811         return eventTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : eventTime_;
2812       }
2813     }
2814     /**
2815      *
2816      *
2817      * <pre>
2818      * Only required for
2819      * [UserEventService.ImportUserEvents][google.cloud.discoveryengine.v1beta.UserEventService.ImportUserEvents]
2820      * method. Timestamp of when the user event happened.
2821      * </pre>
2822      *
2823      * <code>.google.protobuf.Timestamp event_time = 3;</code>
2824      */
2825     private com.google.protobuf.SingleFieldBuilderV3<
2826             com.google.protobuf.Timestamp,
2827             com.google.protobuf.Timestamp.Builder,
2828             com.google.protobuf.TimestampOrBuilder>
getEventTimeFieldBuilder()2829         getEventTimeFieldBuilder() {
2830       if (eventTimeBuilder_ == null) {
2831         eventTimeBuilder_ =
2832             new com.google.protobuf.SingleFieldBuilderV3<
2833                 com.google.protobuf.Timestamp,
2834                 com.google.protobuf.Timestamp.Builder,
2835                 com.google.protobuf.TimestampOrBuilder>(
2836                 getEventTime(), getParentForChildren(), isClean());
2837         eventTime_ = null;
2838       }
2839       return eventTimeBuilder_;
2840     }
2841 
2842     private com.google.cloud.discoveryengine.v1beta.UserInfo userInfo_;
2843     private com.google.protobuf.SingleFieldBuilderV3<
2844             com.google.cloud.discoveryengine.v1beta.UserInfo,
2845             com.google.cloud.discoveryengine.v1beta.UserInfo.Builder,
2846             com.google.cloud.discoveryengine.v1beta.UserInfoOrBuilder>
2847         userInfoBuilder_;
2848     /**
2849      *
2850      *
2851      * <pre>
2852      * Information about the end user.
2853      * </pre>
2854      *
2855      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2856      *
2857      * @return Whether the userInfo field is set.
2858      */
hasUserInfo()2859     public boolean hasUserInfo() {
2860       return ((bitField0_ & 0x00000008) != 0);
2861     }
2862     /**
2863      *
2864      *
2865      * <pre>
2866      * Information about the end user.
2867      * </pre>
2868      *
2869      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2870      *
2871      * @return The userInfo.
2872      */
getUserInfo()2873     public com.google.cloud.discoveryengine.v1beta.UserInfo getUserInfo() {
2874       if (userInfoBuilder_ == null) {
2875         return userInfo_ == null
2876             ? com.google.cloud.discoveryengine.v1beta.UserInfo.getDefaultInstance()
2877             : userInfo_;
2878       } else {
2879         return userInfoBuilder_.getMessage();
2880       }
2881     }
2882     /**
2883      *
2884      *
2885      * <pre>
2886      * Information about the end user.
2887      * </pre>
2888      *
2889      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2890      */
setUserInfo(com.google.cloud.discoveryengine.v1beta.UserInfo value)2891     public Builder setUserInfo(com.google.cloud.discoveryengine.v1beta.UserInfo value) {
2892       if (userInfoBuilder_ == null) {
2893         if (value == null) {
2894           throw new NullPointerException();
2895         }
2896         userInfo_ = value;
2897       } else {
2898         userInfoBuilder_.setMessage(value);
2899       }
2900       bitField0_ |= 0x00000008;
2901       onChanged();
2902       return this;
2903     }
2904     /**
2905      *
2906      *
2907      * <pre>
2908      * Information about the end user.
2909      * </pre>
2910      *
2911      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2912      */
setUserInfo( com.google.cloud.discoveryengine.v1beta.UserInfo.Builder builderForValue)2913     public Builder setUserInfo(
2914         com.google.cloud.discoveryengine.v1beta.UserInfo.Builder builderForValue) {
2915       if (userInfoBuilder_ == null) {
2916         userInfo_ = builderForValue.build();
2917       } else {
2918         userInfoBuilder_.setMessage(builderForValue.build());
2919       }
2920       bitField0_ |= 0x00000008;
2921       onChanged();
2922       return this;
2923     }
2924     /**
2925      *
2926      *
2927      * <pre>
2928      * Information about the end user.
2929      * </pre>
2930      *
2931      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2932      */
mergeUserInfo(com.google.cloud.discoveryengine.v1beta.UserInfo value)2933     public Builder mergeUserInfo(com.google.cloud.discoveryengine.v1beta.UserInfo value) {
2934       if (userInfoBuilder_ == null) {
2935         if (((bitField0_ & 0x00000008) != 0)
2936             && userInfo_ != null
2937             && userInfo_ != com.google.cloud.discoveryengine.v1beta.UserInfo.getDefaultInstance()) {
2938           getUserInfoBuilder().mergeFrom(value);
2939         } else {
2940           userInfo_ = value;
2941         }
2942       } else {
2943         userInfoBuilder_.mergeFrom(value);
2944       }
2945       bitField0_ |= 0x00000008;
2946       onChanged();
2947       return this;
2948     }
2949     /**
2950      *
2951      *
2952      * <pre>
2953      * Information about the end user.
2954      * </pre>
2955      *
2956      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2957      */
clearUserInfo()2958     public Builder clearUserInfo() {
2959       bitField0_ = (bitField0_ & ~0x00000008);
2960       userInfo_ = null;
2961       if (userInfoBuilder_ != null) {
2962         userInfoBuilder_.dispose();
2963         userInfoBuilder_ = null;
2964       }
2965       onChanged();
2966       return this;
2967     }
2968     /**
2969      *
2970      *
2971      * <pre>
2972      * Information about the end user.
2973      * </pre>
2974      *
2975      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2976      */
getUserInfoBuilder()2977     public com.google.cloud.discoveryengine.v1beta.UserInfo.Builder getUserInfoBuilder() {
2978       bitField0_ |= 0x00000008;
2979       onChanged();
2980       return getUserInfoFieldBuilder().getBuilder();
2981     }
2982     /**
2983      *
2984      *
2985      * <pre>
2986      * Information about the end user.
2987      * </pre>
2988      *
2989      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
2990      */
getUserInfoOrBuilder()2991     public com.google.cloud.discoveryengine.v1beta.UserInfoOrBuilder getUserInfoOrBuilder() {
2992       if (userInfoBuilder_ != null) {
2993         return userInfoBuilder_.getMessageOrBuilder();
2994       } else {
2995         return userInfo_ == null
2996             ? com.google.cloud.discoveryengine.v1beta.UserInfo.getDefaultInstance()
2997             : userInfo_;
2998       }
2999     }
3000     /**
3001      *
3002      *
3003      * <pre>
3004      * Information about the end user.
3005      * </pre>
3006      *
3007      * <code>.google.cloud.discoveryengine.v1beta.UserInfo user_info = 4;</code>
3008      */
3009     private com.google.protobuf.SingleFieldBuilderV3<
3010             com.google.cloud.discoveryengine.v1beta.UserInfo,
3011             com.google.cloud.discoveryengine.v1beta.UserInfo.Builder,
3012             com.google.cloud.discoveryengine.v1beta.UserInfoOrBuilder>
getUserInfoFieldBuilder()3013         getUserInfoFieldBuilder() {
3014       if (userInfoBuilder_ == null) {
3015         userInfoBuilder_ =
3016             new com.google.protobuf.SingleFieldBuilderV3<
3017                 com.google.cloud.discoveryengine.v1beta.UserInfo,
3018                 com.google.cloud.discoveryengine.v1beta.UserInfo.Builder,
3019                 com.google.cloud.discoveryengine.v1beta.UserInfoOrBuilder>(
3020                 getUserInfo(), getParentForChildren(), isClean());
3021         userInfo_ = null;
3022       }
3023       return userInfoBuilder_;
3024     }
3025 
3026     private boolean directUserRequest_;
3027     /**
3028      *
3029      *
3030      * <pre>
3031      * Should set to true if the request is made directly from the end user, in
3032      * which case the
3033      * [UserEvent.user_info.user_agent][google.cloud.discoveryengine.v1beta.UserInfo.user_agent]
3034      * can be populated from the HTTP request.
3035      * This flag should be set only if the API request is made directly from the
3036      * end user such as a mobile app (and not if a gateway or a server is
3037      * processing and pushing the user events).
3038      * This should not be set when using the JavaScript tag in
3039      * [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent].
3040      * </pre>
3041      *
3042      * <code>bool direct_user_request = 5;</code>
3043      *
3044      * @return The directUserRequest.
3045      */
3046     @java.lang.Override
getDirectUserRequest()3047     public boolean getDirectUserRequest() {
3048       return directUserRequest_;
3049     }
3050     /**
3051      *
3052      *
3053      * <pre>
3054      * Should set to true if the request is made directly from the end user, in
3055      * which case the
3056      * [UserEvent.user_info.user_agent][google.cloud.discoveryengine.v1beta.UserInfo.user_agent]
3057      * can be populated from the HTTP request.
3058      * This flag should be set only if the API request is made directly from the
3059      * end user such as a mobile app (and not if a gateway or a server is
3060      * processing and pushing the user events).
3061      * This should not be set when using the JavaScript tag in
3062      * [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent].
3063      * </pre>
3064      *
3065      * <code>bool direct_user_request = 5;</code>
3066      *
3067      * @param value The directUserRequest to set.
3068      * @return This builder for chaining.
3069      */
setDirectUserRequest(boolean value)3070     public Builder setDirectUserRequest(boolean value) {
3071 
3072       directUserRequest_ = value;
3073       bitField0_ |= 0x00000010;
3074       onChanged();
3075       return this;
3076     }
3077     /**
3078      *
3079      *
3080      * <pre>
3081      * Should set to true if the request is made directly from the end user, in
3082      * which case the
3083      * [UserEvent.user_info.user_agent][google.cloud.discoveryengine.v1beta.UserInfo.user_agent]
3084      * can be populated from the HTTP request.
3085      * This flag should be set only if the API request is made directly from the
3086      * end user such as a mobile app (and not if a gateway or a server is
3087      * processing and pushing the user events).
3088      * This should not be set when using the JavaScript tag in
3089      * [UserEventService.CollectUserEvent][google.cloud.discoveryengine.v1beta.UserEventService.CollectUserEvent].
3090      * </pre>
3091      *
3092      * <code>bool direct_user_request = 5;</code>
3093      *
3094      * @return This builder for chaining.
3095      */
clearDirectUserRequest()3096     public Builder clearDirectUserRequest() {
3097       bitField0_ = (bitField0_ & ~0x00000010);
3098       directUserRequest_ = false;
3099       onChanged();
3100       return this;
3101     }
3102 
3103     private java.lang.Object sessionId_ = "";
3104     /**
3105      *
3106      *
3107      * <pre>
3108      * A unique identifier for tracking a visitor session with a length limit of
3109      * 128 bytes. A session is an aggregation of an end user behavior in a time
3110      * span.
3111      * A general guideline to populate the session_id:
3112      * 1. If user has no activity for 30 min, a new session_id should be assigned.
3113      * 2. The session_id should be unique across users, suggest use uuid or add
3114      * [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id]
3115      * as prefix.
3116      * </pre>
3117      *
3118      * <code>string session_id = 6;</code>
3119      *
3120      * @return The sessionId.
3121      */
getSessionId()3122     public java.lang.String getSessionId() {
3123       java.lang.Object ref = sessionId_;
3124       if (!(ref instanceof java.lang.String)) {
3125         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3126         java.lang.String s = bs.toStringUtf8();
3127         sessionId_ = s;
3128         return s;
3129       } else {
3130         return (java.lang.String) ref;
3131       }
3132     }
3133     /**
3134      *
3135      *
3136      * <pre>
3137      * A unique identifier for tracking a visitor session with a length limit of
3138      * 128 bytes. A session is an aggregation of an end user behavior in a time
3139      * span.
3140      * A general guideline to populate the session_id:
3141      * 1. If user has no activity for 30 min, a new session_id should be assigned.
3142      * 2. The session_id should be unique across users, suggest use uuid or add
3143      * [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id]
3144      * as prefix.
3145      * </pre>
3146      *
3147      * <code>string session_id = 6;</code>
3148      *
3149      * @return The bytes for sessionId.
3150      */
getSessionIdBytes()3151     public com.google.protobuf.ByteString getSessionIdBytes() {
3152       java.lang.Object ref = sessionId_;
3153       if (ref instanceof String) {
3154         com.google.protobuf.ByteString b =
3155             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3156         sessionId_ = b;
3157         return b;
3158       } else {
3159         return (com.google.protobuf.ByteString) ref;
3160       }
3161     }
3162     /**
3163      *
3164      *
3165      * <pre>
3166      * A unique identifier for tracking a visitor session with a length limit of
3167      * 128 bytes. A session is an aggregation of an end user behavior in a time
3168      * span.
3169      * A general guideline to populate the session_id:
3170      * 1. If user has no activity for 30 min, a new session_id should be assigned.
3171      * 2. The session_id should be unique across users, suggest use uuid or add
3172      * [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id]
3173      * as prefix.
3174      * </pre>
3175      *
3176      * <code>string session_id = 6;</code>
3177      *
3178      * @param value The sessionId to set.
3179      * @return This builder for chaining.
3180      */
setSessionId(java.lang.String value)3181     public Builder setSessionId(java.lang.String value) {
3182       if (value == null) {
3183         throw new NullPointerException();
3184       }
3185       sessionId_ = value;
3186       bitField0_ |= 0x00000020;
3187       onChanged();
3188       return this;
3189     }
3190     /**
3191      *
3192      *
3193      * <pre>
3194      * A unique identifier for tracking a visitor session with a length limit of
3195      * 128 bytes. A session is an aggregation of an end user behavior in a time
3196      * span.
3197      * A general guideline to populate the session_id:
3198      * 1. If user has no activity for 30 min, a new session_id should be assigned.
3199      * 2. The session_id should be unique across users, suggest use uuid or add
3200      * [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id]
3201      * as prefix.
3202      * </pre>
3203      *
3204      * <code>string session_id = 6;</code>
3205      *
3206      * @return This builder for chaining.
3207      */
clearSessionId()3208     public Builder clearSessionId() {
3209       sessionId_ = getDefaultInstance().getSessionId();
3210       bitField0_ = (bitField0_ & ~0x00000020);
3211       onChanged();
3212       return this;
3213     }
3214     /**
3215      *
3216      *
3217      * <pre>
3218      * A unique identifier for tracking a visitor session with a length limit of
3219      * 128 bytes. A session is an aggregation of an end user behavior in a time
3220      * span.
3221      * A general guideline to populate the session_id:
3222      * 1. If user has no activity for 30 min, a new session_id should be assigned.
3223      * 2. The session_id should be unique across users, suggest use uuid or add
3224      * [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id]
3225      * as prefix.
3226      * </pre>
3227      *
3228      * <code>string session_id = 6;</code>
3229      *
3230      * @param value The bytes for sessionId to set.
3231      * @return This builder for chaining.
3232      */
setSessionIdBytes(com.google.protobuf.ByteString value)3233     public Builder setSessionIdBytes(com.google.protobuf.ByteString value) {
3234       if (value == null) {
3235         throw new NullPointerException();
3236       }
3237       checkByteStringIsUtf8(value);
3238       sessionId_ = value;
3239       bitField0_ |= 0x00000020;
3240       onChanged();
3241       return this;
3242     }
3243 
3244     private com.google.cloud.discoveryengine.v1beta.PageInfo pageInfo_;
3245     private com.google.protobuf.SingleFieldBuilderV3<
3246             com.google.cloud.discoveryengine.v1beta.PageInfo,
3247             com.google.cloud.discoveryengine.v1beta.PageInfo.Builder,
3248             com.google.cloud.discoveryengine.v1beta.PageInfoOrBuilder>
3249         pageInfoBuilder_;
3250     /**
3251      *
3252      *
3253      * <pre>
3254      * Page metadata such as categories and other critical information for certain
3255      * event types such as `view-category-page`.
3256      * </pre>
3257      *
3258      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3259      *
3260      * @return Whether the pageInfo field is set.
3261      */
hasPageInfo()3262     public boolean hasPageInfo() {
3263       return ((bitField0_ & 0x00000040) != 0);
3264     }
3265     /**
3266      *
3267      *
3268      * <pre>
3269      * Page metadata such as categories and other critical information for certain
3270      * event types such as `view-category-page`.
3271      * </pre>
3272      *
3273      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3274      *
3275      * @return The pageInfo.
3276      */
getPageInfo()3277     public com.google.cloud.discoveryengine.v1beta.PageInfo getPageInfo() {
3278       if (pageInfoBuilder_ == null) {
3279         return pageInfo_ == null
3280             ? com.google.cloud.discoveryengine.v1beta.PageInfo.getDefaultInstance()
3281             : pageInfo_;
3282       } else {
3283         return pageInfoBuilder_.getMessage();
3284       }
3285     }
3286     /**
3287      *
3288      *
3289      * <pre>
3290      * Page metadata such as categories and other critical information for certain
3291      * event types such as `view-category-page`.
3292      * </pre>
3293      *
3294      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3295      */
setPageInfo(com.google.cloud.discoveryengine.v1beta.PageInfo value)3296     public Builder setPageInfo(com.google.cloud.discoveryengine.v1beta.PageInfo value) {
3297       if (pageInfoBuilder_ == null) {
3298         if (value == null) {
3299           throw new NullPointerException();
3300         }
3301         pageInfo_ = value;
3302       } else {
3303         pageInfoBuilder_.setMessage(value);
3304       }
3305       bitField0_ |= 0x00000040;
3306       onChanged();
3307       return this;
3308     }
3309     /**
3310      *
3311      *
3312      * <pre>
3313      * Page metadata such as categories and other critical information for certain
3314      * event types such as `view-category-page`.
3315      * </pre>
3316      *
3317      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3318      */
setPageInfo( com.google.cloud.discoveryengine.v1beta.PageInfo.Builder builderForValue)3319     public Builder setPageInfo(
3320         com.google.cloud.discoveryengine.v1beta.PageInfo.Builder builderForValue) {
3321       if (pageInfoBuilder_ == null) {
3322         pageInfo_ = builderForValue.build();
3323       } else {
3324         pageInfoBuilder_.setMessage(builderForValue.build());
3325       }
3326       bitField0_ |= 0x00000040;
3327       onChanged();
3328       return this;
3329     }
3330     /**
3331      *
3332      *
3333      * <pre>
3334      * Page metadata such as categories and other critical information for certain
3335      * event types such as `view-category-page`.
3336      * </pre>
3337      *
3338      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3339      */
mergePageInfo(com.google.cloud.discoveryengine.v1beta.PageInfo value)3340     public Builder mergePageInfo(com.google.cloud.discoveryengine.v1beta.PageInfo value) {
3341       if (pageInfoBuilder_ == null) {
3342         if (((bitField0_ & 0x00000040) != 0)
3343             && pageInfo_ != null
3344             && pageInfo_ != com.google.cloud.discoveryengine.v1beta.PageInfo.getDefaultInstance()) {
3345           getPageInfoBuilder().mergeFrom(value);
3346         } else {
3347           pageInfo_ = value;
3348         }
3349       } else {
3350         pageInfoBuilder_.mergeFrom(value);
3351       }
3352       bitField0_ |= 0x00000040;
3353       onChanged();
3354       return this;
3355     }
3356     /**
3357      *
3358      *
3359      * <pre>
3360      * Page metadata such as categories and other critical information for certain
3361      * event types such as `view-category-page`.
3362      * </pre>
3363      *
3364      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3365      */
clearPageInfo()3366     public Builder clearPageInfo() {
3367       bitField0_ = (bitField0_ & ~0x00000040);
3368       pageInfo_ = null;
3369       if (pageInfoBuilder_ != null) {
3370         pageInfoBuilder_.dispose();
3371         pageInfoBuilder_ = null;
3372       }
3373       onChanged();
3374       return this;
3375     }
3376     /**
3377      *
3378      *
3379      * <pre>
3380      * Page metadata such as categories and other critical information for certain
3381      * event types such as `view-category-page`.
3382      * </pre>
3383      *
3384      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3385      */
getPageInfoBuilder()3386     public com.google.cloud.discoveryengine.v1beta.PageInfo.Builder getPageInfoBuilder() {
3387       bitField0_ |= 0x00000040;
3388       onChanged();
3389       return getPageInfoFieldBuilder().getBuilder();
3390     }
3391     /**
3392      *
3393      *
3394      * <pre>
3395      * Page metadata such as categories and other critical information for certain
3396      * event types such as `view-category-page`.
3397      * </pre>
3398      *
3399      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3400      */
getPageInfoOrBuilder()3401     public com.google.cloud.discoveryengine.v1beta.PageInfoOrBuilder getPageInfoOrBuilder() {
3402       if (pageInfoBuilder_ != null) {
3403         return pageInfoBuilder_.getMessageOrBuilder();
3404       } else {
3405         return pageInfo_ == null
3406             ? com.google.cloud.discoveryengine.v1beta.PageInfo.getDefaultInstance()
3407             : pageInfo_;
3408       }
3409     }
3410     /**
3411      *
3412      *
3413      * <pre>
3414      * Page metadata such as categories and other critical information for certain
3415      * event types such as `view-category-page`.
3416      * </pre>
3417      *
3418      * <code>.google.cloud.discoveryengine.v1beta.PageInfo page_info = 7;</code>
3419      */
3420     private com.google.protobuf.SingleFieldBuilderV3<
3421             com.google.cloud.discoveryengine.v1beta.PageInfo,
3422             com.google.cloud.discoveryengine.v1beta.PageInfo.Builder,
3423             com.google.cloud.discoveryengine.v1beta.PageInfoOrBuilder>
getPageInfoFieldBuilder()3424         getPageInfoFieldBuilder() {
3425       if (pageInfoBuilder_ == null) {
3426         pageInfoBuilder_ =
3427             new com.google.protobuf.SingleFieldBuilderV3<
3428                 com.google.cloud.discoveryengine.v1beta.PageInfo,
3429                 com.google.cloud.discoveryengine.v1beta.PageInfo.Builder,
3430                 com.google.cloud.discoveryengine.v1beta.PageInfoOrBuilder>(
3431                 getPageInfo(), getParentForChildren(), isClean());
3432         pageInfo_ = null;
3433       }
3434       return pageInfoBuilder_;
3435     }
3436 
3437     private java.lang.Object attributionToken_ = "";
3438     /**
3439      *
3440      *
3441      * <pre>
3442      * Token to attribute an API response to user action(s) to trigger the event.
3443      * Highly recommended for user events that are the result of
3444      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3445      * This field enables accurate attribution of recommendation model
3446      * performance.
3447      * The value must be one of:
3448      * * [PredictResponse.attribution_token][] for events that are the result of
3449      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3450      * * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of
3451      * [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search].
3452      * * [CompleteQueryResponse.attribution_token][] for events that are the
3453      * result of
3454      * [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1beta.CompletionService.CompleteQuery].
3455      * This token enables us to accurately attribute page view or conversion
3456      * completion back to the event and the particular predict response containing
3457      * this clicked/purchased product. If user clicks on product K in the
3458      * recommendation results, pass [PredictResponse.attribution_token][] as a URL
3459      * parameter to product K's page. When recording events on product K's page,
3460      * log the [PredictResponse.attribution_token][] to this field.
3461      * </pre>
3462      *
3463      * <code>string attribution_token = 8;</code>
3464      *
3465      * @return The attributionToken.
3466      */
getAttributionToken()3467     public java.lang.String getAttributionToken() {
3468       java.lang.Object ref = attributionToken_;
3469       if (!(ref instanceof java.lang.String)) {
3470         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3471         java.lang.String s = bs.toStringUtf8();
3472         attributionToken_ = s;
3473         return s;
3474       } else {
3475         return (java.lang.String) ref;
3476       }
3477     }
3478     /**
3479      *
3480      *
3481      * <pre>
3482      * Token to attribute an API response to user action(s) to trigger the event.
3483      * Highly recommended for user events that are the result of
3484      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3485      * This field enables accurate attribution of recommendation model
3486      * performance.
3487      * The value must be one of:
3488      * * [PredictResponse.attribution_token][] for events that are the result of
3489      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3490      * * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of
3491      * [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search].
3492      * * [CompleteQueryResponse.attribution_token][] for events that are the
3493      * result of
3494      * [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1beta.CompletionService.CompleteQuery].
3495      * This token enables us to accurately attribute page view or conversion
3496      * completion back to the event and the particular predict response containing
3497      * this clicked/purchased product. If user clicks on product K in the
3498      * recommendation results, pass [PredictResponse.attribution_token][] as a URL
3499      * parameter to product K's page. When recording events on product K's page,
3500      * log the [PredictResponse.attribution_token][] to this field.
3501      * </pre>
3502      *
3503      * <code>string attribution_token = 8;</code>
3504      *
3505      * @return The bytes for attributionToken.
3506      */
getAttributionTokenBytes()3507     public com.google.protobuf.ByteString getAttributionTokenBytes() {
3508       java.lang.Object ref = attributionToken_;
3509       if (ref instanceof String) {
3510         com.google.protobuf.ByteString b =
3511             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3512         attributionToken_ = b;
3513         return b;
3514       } else {
3515         return (com.google.protobuf.ByteString) ref;
3516       }
3517     }
3518     /**
3519      *
3520      *
3521      * <pre>
3522      * Token to attribute an API response to user action(s) to trigger the event.
3523      * Highly recommended for user events that are the result of
3524      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3525      * This field enables accurate attribution of recommendation model
3526      * performance.
3527      * The value must be one of:
3528      * * [PredictResponse.attribution_token][] for events that are the result of
3529      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3530      * * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of
3531      * [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search].
3532      * * [CompleteQueryResponse.attribution_token][] for events that are the
3533      * result of
3534      * [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1beta.CompletionService.CompleteQuery].
3535      * This token enables us to accurately attribute page view or conversion
3536      * completion back to the event and the particular predict response containing
3537      * this clicked/purchased product. If user clicks on product K in the
3538      * recommendation results, pass [PredictResponse.attribution_token][] as a URL
3539      * parameter to product K's page. When recording events on product K's page,
3540      * log the [PredictResponse.attribution_token][] to this field.
3541      * </pre>
3542      *
3543      * <code>string attribution_token = 8;</code>
3544      *
3545      * @param value The attributionToken to set.
3546      * @return This builder for chaining.
3547      */
setAttributionToken(java.lang.String value)3548     public Builder setAttributionToken(java.lang.String value) {
3549       if (value == null) {
3550         throw new NullPointerException();
3551       }
3552       attributionToken_ = value;
3553       bitField0_ |= 0x00000080;
3554       onChanged();
3555       return this;
3556     }
3557     /**
3558      *
3559      *
3560      * <pre>
3561      * Token to attribute an API response to user action(s) to trigger the event.
3562      * Highly recommended for user events that are the result of
3563      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3564      * This field enables accurate attribution of recommendation model
3565      * performance.
3566      * The value must be one of:
3567      * * [PredictResponse.attribution_token][] for events that are the result of
3568      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3569      * * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of
3570      * [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search].
3571      * * [CompleteQueryResponse.attribution_token][] for events that are the
3572      * result of
3573      * [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1beta.CompletionService.CompleteQuery].
3574      * This token enables us to accurately attribute page view or conversion
3575      * completion back to the event and the particular predict response containing
3576      * this clicked/purchased product. If user clicks on product K in the
3577      * recommendation results, pass [PredictResponse.attribution_token][] as a URL
3578      * parameter to product K's page. When recording events on product K's page,
3579      * log the [PredictResponse.attribution_token][] to this field.
3580      * </pre>
3581      *
3582      * <code>string attribution_token = 8;</code>
3583      *
3584      * @return This builder for chaining.
3585      */
clearAttributionToken()3586     public Builder clearAttributionToken() {
3587       attributionToken_ = getDefaultInstance().getAttributionToken();
3588       bitField0_ = (bitField0_ & ~0x00000080);
3589       onChanged();
3590       return this;
3591     }
3592     /**
3593      *
3594      *
3595      * <pre>
3596      * Token to attribute an API response to user action(s) to trigger the event.
3597      * Highly recommended for user events that are the result of
3598      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3599      * This field enables accurate attribution of recommendation model
3600      * performance.
3601      * The value must be one of:
3602      * * [PredictResponse.attribution_token][] for events that are the result of
3603      * [RecommendationService.Recommend][google.cloud.discoveryengine.v1beta.RecommendationService.Recommend].
3604      * * [SearchResponse.attribution_token][google.cloud.discoveryengine.v1beta.SearchResponse.attribution_token] for events that are the result of
3605      * [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search].
3606      * * [CompleteQueryResponse.attribution_token][] for events that are the
3607      * result of
3608      * [CompletionService.CompleteQuery][google.cloud.discoveryengine.v1beta.CompletionService.CompleteQuery].
3609      * This token enables us to accurately attribute page view or conversion
3610      * completion back to the event and the particular predict response containing
3611      * this clicked/purchased product. If user clicks on product K in the
3612      * recommendation results, pass [PredictResponse.attribution_token][] as a URL
3613      * parameter to product K's page. When recording events on product K's page,
3614      * log the [PredictResponse.attribution_token][] to this field.
3615      * </pre>
3616      *
3617      * <code>string attribution_token = 8;</code>
3618      *
3619      * @param value The bytes for attributionToken to set.
3620      * @return This builder for chaining.
3621      */
setAttributionTokenBytes(com.google.protobuf.ByteString value)3622     public Builder setAttributionTokenBytes(com.google.protobuf.ByteString value) {
3623       if (value == null) {
3624         throw new NullPointerException();
3625       }
3626       checkByteStringIsUtf8(value);
3627       attributionToken_ = value;
3628       bitField0_ |= 0x00000080;
3629       onChanged();
3630       return this;
3631     }
3632 
3633     private java.lang.Object filter_ = "";
3634     /**
3635      *
3636      *
3637      * <pre>
3638      * The filter syntax consists of an expression language for constructing a
3639      * predicate from one or more fields of the documents being filtered.
3640      * One example is for `search` events, the associated
3641      * [SearchRequest][google.cloud.discoveryengine.v1beta.SearchRequest] may
3642      * contain a filter expression in
3643      * [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter]
3644      * conforming to https://google.aip.dev/160#filtering.
3645      * Similarly, for `view-item-list` events that are generated from a
3646      * [RecommendationService.RecommendRequest][], this field may be populated
3647      * directly from [RecommendationService.RecommendRequest.filter][] conforming
3648      * to https://google.aip.dev/160#filtering.
3649      * The value must be a UTF-8 encoded string with a length limit of 1,000
3650      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
3651      * </pre>
3652      *
3653      * <code>string filter = 9;</code>
3654      *
3655      * @return The filter.
3656      */
getFilter()3657     public java.lang.String getFilter() {
3658       java.lang.Object ref = filter_;
3659       if (!(ref instanceof java.lang.String)) {
3660         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3661         java.lang.String s = bs.toStringUtf8();
3662         filter_ = s;
3663         return s;
3664       } else {
3665         return (java.lang.String) ref;
3666       }
3667     }
3668     /**
3669      *
3670      *
3671      * <pre>
3672      * The filter syntax consists of an expression language for constructing a
3673      * predicate from one or more fields of the documents being filtered.
3674      * One example is for `search` events, the associated
3675      * [SearchRequest][google.cloud.discoveryengine.v1beta.SearchRequest] may
3676      * contain a filter expression in
3677      * [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter]
3678      * conforming to https://google.aip.dev/160#filtering.
3679      * Similarly, for `view-item-list` events that are generated from a
3680      * [RecommendationService.RecommendRequest][], this field may be populated
3681      * directly from [RecommendationService.RecommendRequest.filter][] conforming
3682      * to https://google.aip.dev/160#filtering.
3683      * The value must be a UTF-8 encoded string with a length limit of 1,000
3684      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
3685      * </pre>
3686      *
3687      * <code>string filter = 9;</code>
3688      *
3689      * @return The bytes for filter.
3690      */
getFilterBytes()3691     public com.google.protobuf.ByteString getFilterBytes() {
3692       java.lang.Object ref = filter_;
3693       if (ref instanceof String) {
3694         com.google.protobuf.ByteString b =
3695             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3696         filter_ = b;
3697         return b;
3698       } else {
3699         return (com.google.protobuf.ByteString) ref;
3700       }
3701     }
3702     /**
3703      *
3704      *
3705      * <pre>
3706      * The filter syntax consists of an expression language for constructing a
3707      * predicate from one or more fields of the documents being filtered.
3708      * One example is for `search` events, the associated
3709      * [SearchRequest][google.cloud.discoveryengine.v1beta.SearchRequest] may
3710      * contain a filter expression in
3711      * [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter]
3712      * conforming to https://google.aip.dev/160#filtering.
3713      * Similarly, for `view-item-list` events that are generated from a
3714      * [RecommendationService.RecommendRequest][], this field may be populated
3715      * directly from [RecommendationService.RecommendRequest.filter][] conforming
3716      * to https://google.aip.dev/160#filtering.
3717      * The value must be a UTF-8 encoded string with a length limit of 1,000
3718      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
3719      * </pre>
3720      *
3721      * <code>string filter = 9;</code>
3722      *
3723      * @param value The filter to set.
3724      * @return This builder for chaining.
3725      */
setFilter(java.lang.String value)3726     public Builder setFilter(java.lang.String value) {
3727       if (value == null) {
3728         throw new NullPointerException();
3729       }
3730       filter_ = value;
3731       bitField0_ |= 0x00000100;
3732       onChanged();
3733       return this;
3734     }
3735     /**
3736      *
3737      *
3738      * <pre>
3739      * The filter syntax consists of an expression language for constructing a
3740      * predicate from one or more fields of the documents being filtered.
3741      * One example is for `search` events, the associated
3742      * [SearchRequest][google.cloud.discoveryengine.v1beta.SearchRequest] may
3743      * contain a filter expression in
3744      * [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter]
3745      * conforming to https://google.aip.dev/160#filtering.
3746      * Similarly, for `view-item-list` events that are generated from a
3747      * [RecommendationService.RecommendRequest][], this field may be populated
3748      * directly from [RecommendationService.RecommendRequest.filter][] conforming
3749      * to https://google.aip.dev/160#filtering.
3750      * The value must be a UTF-8 encoded string with a length limit of 1,000
3751      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
3752      * </pre>
3753      *
3754      * <code>string filter = 9;</code>
3755      *
3756      * @return This builder for chaining.
3757      */
clearFilter()3758     public Builder clearFilter() {
3759       filter_ = getDefaultInstance().getFilter();
3760       bitField0_ = (bitField0_ & ~0x00000100);
3761       onChanged();
3762       return this;
3763     }
3764     /**
3765      *
3766      *
3767      * <pre>
3768      * The filter syntax consists of an expression language for constructing a
3769      * predicate from one or more fields of the documents being filtered.
3770      * One example is for `search` events, the associated
3771      * [SearchRequest][google.cloud.discoveryengine.v1beta.SearchRequest] may
3772      * contain a filter expression in
3773      * [SearchRequest.filter][google.cloud.discoveryengine.v1beta.SearchRequest.filter]
3774      * conforming to https://google.aip.dev/160#filtering.
3775      * Similarly, for `view-item-list` events that are generated from a
3776      * [RecommendationService.RecommendRequest][], this field may be populated
3777      * directly from [RecommendationService.RecommendRequest.filter][] conforming
3778      * to https://google.aip.dev/160#filtering.
3779      * The value must be a UTF-8 encoded string with a length limit of 1,000
3780      * characters. Otherwise, an INVALID_ARGUMENT error is returned.
3781      * </pre>
3782      *
3783      * <code>string filter = 9;</code>
3784      *
3785      * @param value The bytes for filter to set.
3786      * @return This builder for chaining.
3787      */
setFilterBytes(com.google.protobuf.ByteString value)3788     public Builder setFilterBytes(com.google.protobuf.ByteString value) {
3789       if (value == null) {
3790         throw new NullPointerException();
3791       }
3792       checkByteStringIsUtf8(value);
3793       filter_ = value;
3794       bitField0_ |= 0x00000100;
3795       onChanged();
3796       return this;
3797     }
3798 
3799     private java.util.List<com.google.cloud.discoveryengine.v1beta.DocumentInfo> documents_ =
3800         java.util.Collections.emptyList();
3801 
ensureDocumentsIsMutable()3802     private void ensureDocumentsIsMutable() {
3803       if (!((bitField0_ & 0x00000200) != 0)) {
3804         documents_ =
3805             new java.util.ArrayList<com.google.cloud.discoveryengine.v1beta.DocumentInfo>(
3806                 documents_);
3807         bitField0_ |= 0x00000200;
3808       }
3809     }
3810 
3811     private com.google.protobuf.RepeatedFieldBuilderV3<
3812             com.google.cloud.discoveryengine.v1beta.DocumentInfo,
3813             com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder,
3814             com.google.cloud.discoveryengine.v1beta.DocumentInfoOrBuilder>
3815         documentsBuilder_;
3816 
3817     /**
3818      *
3819      *
3820      * <pre>
3821      * List of Documents associated with this user event.
3822      * This field is optional except for the following event types:
3823      * * `view-item`
3824      * * `add-to-cart`
3825      * * `purchase`
3826      * * `media-play`
3827      * * `media-complete`
3828      * In a `search` event, this field represents the documents returned to the
3829      * end user on the current page (the end user may have not finished browsing
3830      * the whole page yet). When a new page is returned to the end user, after
3831      * pagination/filtering/ordering even for the same query, a new `search` event
3832      * with different
3833      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
3834      * is desired.
3835      * </pre>
3836      *
3837      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
3838      */
getDocumentsList()3839     public java.util.List<com.google.cloud.discoveryengine.v1beta.DocumentInfo> getDocumentsList() {
3840       if (documentsBuilder_ == null) {
3841         return java.util.Collections.unmodifiableList(documents_);
3842       } else {
3843         return documentsBuilder_.getMessageList();
3844       }
3845     }
3846     /**
3847      *
3848      *
3849      * <pre>
3850      * List of Documents associated with this user event.
3851      * This field is optional except for the following event types:
3852      * * `view-item`
3853      * * `add-to-cart`
3854      * * `purchase`
3855      * * `media-play`
3856      * * `media-complete`
3857      * In a `search` event, this field represents the documents returned to the
3858      * end user on the current page (the end user may have not finished browsing
3859      * the whole page yet). When a new page is returned to the end user, after
3860      * pagination/filtering/ordering even for the same query, a new `search` event
3861      * with different
3862      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
3863      * is desired.
3864      * </pre>
3865      *
3866      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
3867      */
getDocumentsCount()3868     public int getDocumentsCount() {
3869       if (documentsBuilder_ == null) {
3870         return documents_.size();
3871       } else {
3872         return documentsBuilder_.getCount();
3873       }
3874     }
3875     /**
3876      *
3877      *
3878      * <pre>
3879      * List of Documents associated with this user event.
3880      * This field is optional except for the following event types:
3881      * * `view-item`
3882      * * `add-to-cart`
3883      * * `purchase`
3884      * * `media-play`
3885      * * `media-complete`
3886      * In a `search` event, this field represents the documents returned to the
3887      * end user on the current page (the end user may have not finished browsing
3888      * the whole page yet). When a new page is returned to the end user, after
3889      * pagination/filtering/ordering even for the same query, a new `search` event
3890      * with different
3891      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
3892      * is desired.
3893      * </pre>
3894      *
3895      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
3896      */
getDocuments(int index)3897     public com.google.cloud.discoveryengine.v1beta.DocumentInfo getDocuments(int index) {
3898       if (documentsBuilder_ == null) {
3899         return documents_.get(index);
3900       } else {
3901         return documentsBuilder_.getMessage(index);
3902       }
3903     }
3904     /**
3905      *
3906      *
3907      * <pre>
3908      * List of Documents associated with this user event.
3909      * This field is optional except for the following event types:
3910      * * `view-item`
3911      * * `add-to-cart`
3912      * * `purchase`
3913      * * `media-play`
3914      * * `media-complete`
3915      * In a `search` event, this field represents the documents returned to the
3916      * end user on the current page (the end user may have not finished browsing
3917      * the whole page yet). When a new page is returned to the end user, after
3918      * pagination/filtering/ordering even for the same query, a new `search` event
3919      * with different
3920      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
3921      * is desired.
3922      * </pre>
3923      *
3924      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
3925      */
setDocuments( int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo value)3926     public Builder setDocuments(
3927         int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo value) {
3928       if (documentsBuilder_ == null) {
3929         if (value == null) {
3930           throw new NullPointerException();
3931         }
3932         ensureDocumentsIsMutable();
3933         documents_.set(index, value);
3934         onChanged();
3935       } else {
3936         documentsBuilder_.setMessage(index, value);
3937       }
3938       return this;
3939     }
3940     /**
3941      *
3942      *
3943      * <pre>
3944      * List of Documents associated with this user event.
3945      * This field is optional except for the following event types:
3946      * * `view-item`
3947      * * `add-to-cart`
3948      * * `purchase`
3949      * * `media-play`
3950      * * `media-complete`
3951      * In a `search` event, this field represents the documents returned to the
3952      * end user on the current page (the end user may have not finished browsing
3953      * the whole page yet). When a new page is returned to the end user, after
3954      * pagination/filtering/ordering even for the same query, a new `search` event
3955      * with different
3956      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
3957      * is desired.
3958      * </pre>
3959      *
3960      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
3961      */
setDocuments( int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder builderForValue)3962     public Builder setDocuments(
3963         int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder builderForValue) {
3964       if (documentsBuilder_ == null) {
3965         ensureDocumentsIsMutable();
3966         documents_.set(index, builderForValue.build());
3967         onChanged();
3968       } else {
3969         documentsBuilder_.setMessage(index, builderForValue.build());
3970       }
3971       return this;
3972     }
3973     /**
3974      *
3975      *
3976      * <pre>
3977      * List of Documents associated with this user event.
3978      * This field is optional except for the following event types:
3979      * * `view-item`
3980      * * `add-to-cart`
3981      * * `purchase`
3982      * * `media-play`
3983      * * `media-complete`
3984      * In a `search` event, this field represents the documents returned to the
3985      * end user on the current page (the end user may have not finished browsing
3986      * the whole page yet). When a new page is returned to the end user, after
3987      * pagination/filtering/ordering even for the same query, a new `search` event
3988      * with different
3989      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
3990      * is desired.
3991      * </pre>
3992      *
3993      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
3994      */
addDocuments(com.google.cloud.discoveryengine.v1beta.DocumentInfo value)3995     public Builder addDocuments(com.google.cloud.discoveryengine.v1beta.DocumentInfo value) {
3996       if (documentsBuilder_ == null) {
3997         if (value == null) {
3998           throw new NullPointerException();
3999         }
4000         ensureDocumentsIsMutable();
4001         documents_.add(value);
4002         onChanged();
4003       } else {
4004         documentsBuilder_.addMessage(value);
4005       }
4006       return this;
4007     }
4008     /**
4009      *
4010      *
4011      * <pre>
4012      * List of Documents associated with this user event.
4013      * This field is optional except for the following event types:
4014      * * `view-item`
4015      * * `add-to-cart`
4016      * * `purchase`
4017      * * `media-play`
4018      * * `media-complete`
4019      * In a `search` event, this field represents the documents returned to the
4020      * end user on the current page (the end user may have not finished browsing
4021      * the whole page yet). When a new page is returned to the end user, after
4022      * pagination/filtering/ordering even for the same query, a new `search` event
4023      * with different
4024      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4025      * is desired.
4026      * </pre>
4027      *
4028      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4029      */
addDocuments( int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo value)4030     public Builder addDocuments(
4031         int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo value) {
4032       if (documentsBuilder_ == null) {
4033         if (value == null) {
4034           throw new NullPointerException();
4035         }
4036         ensureDocumentsIsMutable();
4037         documents_.add(index, value);
4038         onChanged();
4039       } else {
4040         documentsBuilder_.addMessage(index, value);
4041       }
4042       return this;
4043     }
4044     /**
4045      *
4046      *
4047      * <pre>
4048      * List of Documents associated with this user event.
4049      * This field is optional except for the following event types:
4050      * * `view-item`
4051      * * `add-to-cart`
4052      * * `purchase`
4053      * * `media-play`
4054      * * `media-complete`
4055      * In a `search` event, this field represents the documents returned to the
4056      * end user on the current page (the end user may have not finished browsing
4057      * the whole page yet). When a new page is returned to the end user, after
4058      * pagination/filtering/ordering even for the same query, a new `search` event
4059      * with different
4060      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4061      * is desired.
4062      * </pre>
4063      *
4064      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4065      */
addDocuments( com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder builderForValue)4066     public Builder addDocuments(
4067         com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder builderForValue) {
4068       if (documentsBuilder_ == null) {
4069         ensureDocumentsIsMutable();
4070         documents_.add(builderForValue.build());
4071         onChanged();
4072       } else {
4073         documentsBuilder_.addMessage(builderForValue.build());
4074       }
4075       return this;
4076     }
4077     /**
4078      *
4079      *
4080      * <pre>
4081      * List of Documents associated with this user event.
4082      * This field is optional except for the following event types:
4083      * * `view-item`
4084      * * `add-to-cart`
4085      * * `purchase`
4086      * * `media-play`
4087      * * `media-complete`
4088      * In a `search` event, this field represents the documents returned to the
4089      * end user on the current page (the end user may have not finished browsing
4090      * the whole page yet). When a new page is returned to the end user, after
4091      * pagination/filtering/ordering even for the same query, a new `search` event
4092      * with different
4093      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4094      * is desired.
4095      * </pre>
4096      *
4097      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4098      */
addDocuments( int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder builderForValue)4099     public Builder addDocuments(
4100         int index, com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder builderForValue) {
4101       if (documentsBuilder_ == null) {
4102         ensureDocumentsIsMutable();
4103         documents_.add(index, builderForValue.build());
4104         onChanged();
4105       } else {
4106         documentsBuilder_.addMessage(index, builderForValue.build());
4107       }
4108       return this;
4109     }
4110     /**
4111      *
4112      *
4113      * <pre>
4114      * List of Documents associated with this user event.
4115      * This field is optional except for the following event types:
4116      * * `view-item`
4117      * * `add-to-cart`
4118      * * `purchase`
4119      * * `media-play`
4120      * * `media-complete`
4121      * In a `search` event, this field represents the documents returned to the
4122      * end user on the current page (the end user may have not finished browsing
4123      * the whole page yet). When a new page is returned to the end user, after
4124      * pagination/filtering/ordering even for the same query, a new `search` event
4125      * with different
4126      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4127      * is desired.
4128      * </pre>
4129      *
4130      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4131      */
addAllDocuments( java.lang.Iterable<? extends com.google.cloud.discoveryengine.v1beta.DocumentInfo> values)4132     public Builder addAllDocuments(
4133         java.lang.Iterable<? extends com.google.cloud.discoveryengine.v1beta.DocumentInfo> values) {
4134       if (documentsBuilder_ == null) {
4135         ensureDocumentsIsMutable();
4136         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, documents_);
4137         onChanged();
4138       } else {
4139         documentsBuilder_.addAllMessages(values);
4140       }
4141       return this;
4142     }
4143     /**
4144      *
4145      *
4146      * <pre>
4147      * List of Documents associated with this user event.
4148      * This field is optional except for the following event types:
4149      * * `view-item`
4150      * * `add-to-cart`
4151      * * `purchase`
4152      * * `media-play`
4153      * * `media-complete`
4154      * In a `search` event, this field represents the documents returned to the
4155      * end user on the current page (the end user may have not finished browsing
4156      * the whole page yet). When a new page is returned to the end user, after
4157      * pagination/filtering/ordering even for the same query, a new `search` event
4158      * with different
4159      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4160      * is desired.
4161      * </pre>
4162      *
4163      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4164      */
clearDocuments()4165     public Builder clearDocuments() {
4166       if (documentsBuilder_ == null) {
4167         documents_ = java.util.Collections.emptyList();
4168         bitField0_ = (bitField0_ & ~0x00000200);
4169         onChanged();
4170       } else {
4171         documentsBuilder_.clear();
4172       }
4173       return this;
4174     }
4175     /**
4176      *
4177      *
4178      * <pre>
4179      * List of Documents associated with this user event.
4180      * This field is optional except for the following event types:
4181      * * `view-item`
4182      * * `add-to-cart`
4183      * * `purchase`
4184      * * `media-play`
4185      * * `media-complete`
4186      * In a `search` event, this field represents the documents returned to the
4187      * end user on the current page (the end user may have not finished browsing
4188      * the whole page yet). When a new page is returned to the end user, after
4189      * pagination/filtering/ordering even for the same query, a new `search` event
4190      * with different
4191      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4192      * is desired.
4193      * </pre>
4194      *
4195      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4196      */
removeDocuments(int index)4197     public Builder removeDocuments(int index) {
4198       if (documentsBuilder_ == null) {
4199         ensureDocumentsIsMutable();
4200         documents_.remove(index);
4201         onChanged();
4202       } else {
4203         documentsBuilder_.remove(index);
4204       }
4205       return this;
4206     }
4207     /**
4208      *
4209      *
4210      * <pre>
4211      * List of Documents associated with this user event.
4212      * This field is optional except for the following event types:
4213      * * `view-item`
4214      * * `add-to-cart`
4215      * * `purchase`
4216      * * `media-play`
4217      * * `media-complete`
4218      * In a `search` event, this field represents the documents returned to the
4219      * end user on the current page (the end user may have not finished browsing
4220      * the whole page yet). When a new page is returned to the end user, after
4221      * pagination/filtering/ordering even for the same query, a new `search` event
4222      * with different
4223      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4224      * is desired.
4225      * </pre>
4226      *
4227      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4228      */
getDocumentsBuilder( int index)4229     public com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder getDocumentsBuilder(
4230         int index) {
4231       return getDocumentsFieldBuilder().getBuilder(index);
4232     }
4233     /**
4234      *
4235      *
4236      * <pre>
4237      * List of Documents associated with this user event.
4238      * This field is optional except for the following event types:
4239      * * `view-item`
4240      * * `add-to-cart`
4241      * * `purchase`
4242      * * `media-play`
4243      * * `media-complete`
4244      * In a `search` event, this field represents the documents returned to the
4245      * end user on the current page (the end user may have not finished browsing
4246      * the whole page yet). When a new page is returned to the end user, after
4247      * pagination/filtering/ordering even for the same query, a new `search` event
4248      * with different
4249      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4250      * is desired.
4251      * </pre>
4252      *
4253      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4254      */
getDocumentsOrBuilder( int index)4255     public com.google.cloud.discoveryengine.v1beta.DocumentInfoOrBuilder getDocumentsOrBuilder(
4256         int index) {
4257       if (documentsBuilder_ == null) {
4258         return documents_.get(index);
4259       } else {
4260         return documentsBuilder_.getMessageOrBuilder(index);
4261       }
4262     }
4263     /**
4264      *
4265      *
4266      * <pre>
4267      * List of Documents associated with this user event.
4268      * This field is optional except for the following event types:
4269      * * `view-item`
4270      * * `add-to-cart`
4271      * * `purchase`
4272      * * `media-play`
4273      * * `media-complete`
4274      * In a `search` event, this field represents the documents returned to the
4275      * end user on the current page (the end user may have not finished browsing
4276      * the whole page yet). When a new page is returned to the end user, after
4277      * pagination/filtering/ordering even for the same query, a new `search` event
4278      * with different
4279      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4280      * is desired.
4281      * </pre>
4282      *
4283      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4284      */
4285     public java.util.List<? extends com.google.cloud.discoveryengine.v1beta.DocumentInfoOrBuilder>
getDocumentsOrBuilderList()4286         getDocumentsOrBuilderList() {
4287       if (documentsBuilder_ != null) {
4288         return documentsBuilder_.getMessageOrBuilderList();
4289       } else {
4290         return java.util.Collections.unmodifiableList(documents_);
4291       }
4292     }
4293     /**
4294      *
4295      *
4296      * <pre>
4297      * List of Documents associated with this user event.
4298      * This field is optional except for the following event types:
4299      * * `view-item`
4300      * * `add-to-cart`
4301      * * `purchase`
4302      * * `media-play`
4303      * * `media-complete`
4304      * In a `search` event, this field represents the documents returned to the
4305      * end user on the current page (the end user may have not finished browsing
4306      * the whole page yet). When a new page is returned to the end user, after
4307      * pagination/filtering/ordering even for the same query, a new `search` event
4308      * with different
4309      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4310      * is desired.
4311      * </pre>
4312      *
4313      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4314      */
addDocumentsBuilder()4315     public com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder addDocumentsBuilder() {
4316       return getDocumentsFieldBuilder()
4317           .addBuilder(com.google.cloud.discoveryengine.v1beta.DocumentInfo.getDefaultInstance());
4318     }
4319     /**
4320      *
4321      *
4322      * <pre>
4323      * List of Documents associated with this user event.
4324      * This field is optional except for the following event types:
4325      * * `view-item`
4326      * * `add-to-cart`
4327      * * `purchase`
4328      * * `media-play`
4329      * * `media-complete`
4330      * In a `search` event, this field represents the documents returned to the
4331      * end user on the current page (the end user may have not finished browsing
4332      * the whole page yet). When a new page is returned to the end user, after
4333      * pagination/filtering/ordering even for the same query, a new `search` event
4334      * with different
4335      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4336      * is desired.
4337      * </pre>
4338      *
4339      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4340      */
addDocumentsBuilder( int index)4341     public com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder addDocumentsBuilder(
4342         int index) {
4343       return getDocumentsFieldBuilder()
4344           .addBuilder(
4345               index, com.google.cloud.discoveryengine.v1beta.DocumentInfo.getDefaultInstance());
4346     }
4347     /**
4348      *
4349      *
4350      * <pre>
4351      * List of Documents associated with this user event.
4352      * This field is optional except for the following event types:
4353      * * `view-item`
4354      * * `add-to-cart`
4355      * * `purchase`
4356      * * `media-play`
4357      * * `media-complete`
4358      * In a `search` event, this field represents the documents returned to the
4359      * end user on the current page (the end user may have not finished browsing
4360      * the whole page yet). When a new page is returned to the end user, after
4361      * pagination/filtering/ordering even for the same query, a new `search` event
4362      * with different
4363      * [UserEvent.documents][google.cloud.discoveryengine.v1beta.UserEvent.documents]
4364      * is desired.
4365      * </pre>
4366      *
4367      * <code>repeated .google.cloud.discoveryengine.v1beta.DocumentInfo documents = 10;</code>
4368      */
4369     public java.util.List<com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder>
getDocumentsBuilderList()4370         getDocumentsBuilderList() {
4371       return getDocumentsFieldBuilder().getBuilderList();
4372     }
4373 
4374     private com.google.protobuf.RepeatedFieldBuilderV3<
4375             com.google.cloud.discoveryengine.v1beta.DocumentInfo,
4376             com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder,
4377             com.google.cloud.discoveryengine.v1beta.DocumentInfoOrBuilder>
getDocumentsFieldBuilder()4378         getDocumentsFieldBuilder() {
4379       if (documentsBuilder_ == null) {
4380         documentsBuilder_ =
4381             new com.google.protobuf.RepeatedFieldBuilderV3<
4382                 com.google.cloud.discoveryengine.v1beta.DocumentInfo,
4383                 com.google.cloud.discoveryengine.v1beta.DocumentInfo.Builder,
4384                 com.google.cloud.discoveryengine.v1beta.DocumentInfoOrBuilder>(
4385                 documents_, ((bitField0_ & 0x00000200) != 0), getParentForChildren(), isClean());
4386         documents_ = null;
4387       }
4388       return documentsBuilder_;
4389     }
4390 
4391     private com.google.cloud.discoveryengine.v1beta.PanelInfo panel_;
4392     private com.google.protobuf.SingleFieldBuilderV3<
4393             com.google.cloud.discoveryengine.v1beta.PanelInfo,
4394             com.google.cloud.discoveryengine.v1beta.PanelInfo.Builder,
4395             com.google.cloud.discoveryengine.v1beta.PanelInfoOrBuilder>
4396         panelBuilder_;
4397     /**
4398      *
4399      *
4400      * <pre>
4401      * Panel metadata associated with this user event.
4402      * </pre>
4403      *
4404      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4405      *
4406      * @return Whether the panel field is set.
4407      */
hasPanel()4408     public boolean hasPanel() {
4409       return ((bitField0_ & 0x00000400) != 0);
4410     }
4411     /**
4412      *
4413      *
4414      * <pre>
4415      * Panel metadata associated with this user event.
4416      * </pre>
4417      *
4418      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4419      *
4420      * @return The panel.
4421      */
getPanel()4422     public com.google.cloud.discoveryengine.v1beta.PanelInfo getPanel() {
4423       if (panelBuilder_ == null) {
4424         return panel_ == null
4425             ? com.google.cloud.discoveryengine.v1beta.PanelInfo.getDefaultInstance()
4426             : panel_;
4427       } else {
4428         return panelBuilder_.getMessage();
4429       }
4430     }
4431     /**
4432      *
4433      *
4434      * <pre>
4435      * Panel metadata associated with this user event.
4436      * </pre>
4437      *
4438      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4439      */
setPanel(com.google.cloud.discoveryengine.v1beta.PanelInfo value)4440     public Builder setPanel(com.google.cloud.discoveryengine.v1beta.PanelInfo value) {
4441       if (panelBuilder_ == null) {
4442         if (value == null) {
4443           throw new NullPointerException();
4444         }
4445         panel_ = value;
4446       } else {
4447         panelBuilder_.setMessage(value);
4448       }
4449       bitField0_ |= 0x00000400;
4450       onChanged();
4451       return this;
4452     }
4453     /**
4454      *
4455      *
4456      * <pre>
4457      * Panel metadata associated with this user event.
4458      * </pre>
4459      *
4460      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4461      */
setPanel( com.google.cloud.discoveryengine.v1beta.PanelInfo.Builder builderForValue)4462     public Builder setPanel(
4463         com.google.cloud.discoveryengine.v1beta.PanelInfo.Builder builderForValue) {
4464       if (panelBuilder_ == null) {
4465         panel_ = builderForValue.build();
4466       } else {
4467         panelBuilder_.setMessage(builderForValue.build());
4468       }
4469       bitField0_ |= 0x00000400;
4470       onChanged();
4471       return this;
4472     }
4473     /**
4474      *
4475      *
4476      * <pre>
4477      * Panel metadata associated with this user event.
4478      * </pre>
4479      *
4480      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4481      */
mergePanel(com.google.cloud.discoveryengine.v1beta.PanelInfo value)4482     public Builder mergePanel(com.google.cloud.discoveryengine.v1beta.PanelInfo value) {
4483       if (panelBuilder_ == null) {
4484         if (((bitField0_ & 0x00000400) != 0)
4485             && panel_ != null
4486             && panel_ != com.google.cloud.discoveryengine.v1beta.PanelInfo.getDefaultInstance()) {
4487           getPanelBuilder().mergeFrom(value);
4488         } else {
4489           panel_ = value;
4490         }
4491       } else {
4492         panelBuilder_.mergeFrom(value);
4493       }
4494       bitField0_ |= 0x00000400;
4495       onChanged();
4496       return this;
4497     }
4498     /**
4499      *
4500      *
4501      * <pre>
4502      * Panel metadata associated with this user event.
4503      * </pre>
4504      *
4505      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4506      */
clearPanel()4507     public Builder clearPanel() {
4508       bitField0_ = (bitField0_ & ~0x00000400);
4509       panel_ = null;
4510       if (panelBuilder_ != null) {
4511         panelBuilder_.dispose();
4512         panelBuilder_ = null;
4513       }
4514       onChanged();
4515       return this;
4516     }
4517     /**
4518      *
4519      *
4520      * <pre>
4521      * Panel metadata associated with this user event.
4522      * </pre>
4523      *
4524      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4525      */
getPanelBuilder()4526     public com.google.cloud.discoveryengine.v1beta.PanelInfo.Builder getPanelBuilder() {
4527       bitField0_ |= 0x00000400;
4528       onChanged();
4529       return getPanelFieldBuilder().getBuilder();
4530     }
4531     /**
4532      *
4533      *
4534      * <pre>
4535      * Panel metadata associated with this user event.
4536      * </pre>
4537      *
4538      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4539      */
getPanelOrBuilder()4540     public com.google.cloud.discoveryengine.v1beta.PanelInfoOrBuilder getPanelOrBuilder() {
4541       if (panelBuilder_ != null) {
4542         return panelBuilder_.getMessageOrBuilder();
4543       } else {
4544         return panel_ == null
4545             ? com.google.cloud.discoveryengine.v1beta.PanelInfo.getDefaultInstance()
4546             : panel_;
4547       }
4548     }
4549     /**
4550      *
4551      *
4552      * <pre>
4553      * Panel metadata associated with this user event.
4554      * </pre>
4555      *
4556      * <code>.google.cloud.discoveryengine.v1beta.PanelInfo panel = 11;</code>
4557      */
4558     private com.google.protobuf.SingleFieldBuilderV3<
4559             com.google.cloud.discoveryengine.v1beta.PanelInfo,
4560             com.google.cloud.discoveryengine.v1beta.PanelInfo.Builder,
4561             com.google.cloud.discoveryengine.v1beta.PanelInfoOrBuilder>
getPanelFieldBuilder()4562         getPanelFieldBuilder() {
4563       if (panelBuilder_ == null) {
4564         panelBuilder_ =
4565             new com.google.protobuf.SingleFieldBuilderV3<
4566                 com.google.cloud.discoveryengine.v1beta.PanelInfo,
4567                 com.google.cloud.discoveryengine.v1beta.PanelInfo.Builder,
4568                 com.google.cloud.discoveryengine.v1beta.PanelInfoOrBuilder>(
4569                 getPanel(), getParentForChildren(), isClean());
4570         panel_ = null;
4571       }
4572       return panelBuilder_;
4573     }
4574 
4575     private com.google.cloud.discoveryengine.v1beta.SearchInfo searchInfo_;
4576     private com.google.protobuf.SingleFieldBuilderV3<
4577             com.google.cloud.discoveryengine.v1beta.SearchInfo,
4578             com.google.cloud.discoveryengine.v1beta.SearchInfo.Builder,
4579             com.google.cloud.discoveryengine.v1beta.SearchInfoOrBuilder>
4580         searchInfoBuilder_;
4581     /**
4582      *
4583      *
4584      * <pre>
4585      * Search API details related to the event.
4586      * This field should be set for `search` event.
4587      * </pre>
4588      *
4589      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4590      *
4591      * @return Whether the searchInfo field is set.
4592      */
hasSearchInfo()4593     public boolean hasSearchInfo() {
4594       return ((bitField0_ & 0x00000800) != 0);
4595     }
4596     /**
4597      *
4598      *
4599      * <pre>
4600      * Search API details related to the event.
4601      * This field should be set for `search` event.
4602      * </pre>
4603      *
4604      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4605      *
4606      * @return The searchInfo.
4607      */
getSearchInfo()4608     public com.google.cloud.discoveryengine.v1beta.SearchInfo getSearchInfo() {
4609       if (searchInfoBuilder_ == null) {
4610         return searchInfo_ == null
4611             ? com.google.cloud.discoveryengine.v1beta.SearchInfo.getDefaultInstance()
4612             : searchInfo_;
4613       } else {
4614         return searchInfoBuilder_.getMessage();
4615       }
4616     }
4617     /**
4618      *
4619      *
4620      * <pre>
4621      * Search API details related to the event.
4622      * This field should be set for `search` event.
4623      * </pre>
4624      *
4625      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4626      */
setSearchInfo(com.google.cloud.discoveryengine.v1beta.SearchInfo value)4627     public Builder setSearchInfo(com.google.cloud.discoveryengine.v1beta.SearchInfo value) {
4628       if (searchInfoBuilder_ == null) {
4629         if (value == null) {
4630           throw new NullPointerException();
4631         }
4632         searchInfo_ = value;
4633       } else {
4634         searchInfoBuilder_.setMessage(value);
4635       }
4636       bitField0_ |= 0x00000800;
4637       onChanged();
4638       return this;
4639     }
4640     /**
4641      *
4642      *
4643      * <pre>
4644      * Search API details related to the event.
4645      * This field should be set for `search` event.
4646      * </pre>
4647      *
4648      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4649      */
setSearchInfo( com.google.cloud.discoveryengine.v1beta.SearchInfo.Builder builderForValue)4650     public Builder setSearchInfo(
4651         com.google.cloud.discoveryengine.v1beta.SearchInfo.Builder builderForValue) {
4652       if (searchInfoBuilder_ == null) {
4653         searchInfo_ = builderForValue.build();
4654       } else {
4655         searchInfoBuilder_.setMessage(builderForValue.build());
4656       }
4657       bitField0_ |= 0x00000800;
4658       onChanged();
4659       return this;
4660     }
4661     /**
4662      *
4663      *
4664      * <pre>
4665      * Search API details related to the event.
4666      * This field should be set for `search` event.
4667      * </pre>
4668      *
4669      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4670      */
mergeSearchInfo(com.google.cloud.discoveryengine.v1beta.SearchInfo value)4671     public Builder mergeSearchInfo(com.google.cloud.discoveryengine.v1beta.SearchInfo value) {
4672       if (searchInfoBuilder_ == null) {
4673         if (((bitField0_ & 0x00000800) != 0)
4674             && searchInfo_ != null
4675             && searchInfo_
4676                 != com.google.cloud.discoveryengine.v1beta.SearchInfo.getDefaultInstance()) {
4677           getSearchInfoBuilder().mergeFrom(value);
4678         } else {
4679           searchInfo_ = value;
4680         }
4681       } else {
4682         searchInfoBuilder_.mergeFrom(value);
4683       }
4684       bitField0_ |= 0x00000800;
4685       onChanged();
4686       return this;
4687     }
4688     /**
4689      *
4690      *
4691      * <pre>
4692      * Search API details related to the event.
4693      * This field should be set for `search` event.
4694      * </pre>
4695      *
4696      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4697      */
clearSearchInfo()4698     public Builder clearSearchInfo() {
4699       bitField0_ = (bitField0_ & ~0x00000800);
4700       searchInfo_ = null;
4701       if (searchInfoBuilder_ != null) {
4702         searchInfoBuilder_.dispose();
4703         searchInfoBuilder_ = null;
4704       }
4705       onChanged();
4706       return this;
4707     }
4708     /**
4709      *
4710      *
4711      * <pre>
4712      * Search API details related to the event.
4713      * This field should be set for `search` event.
4714      * </pre>
4715      *
4716      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4717      */
getSearchInfoBuilder()4718     public com.google.cloud.discoveryengine.v1beta.SearchInfo.Builder getSearchInfoBuilder() {
4719       bitField0_ |= 0x00000800;
4720       onChanged();
4721       return getSearchInfoFieldBuilder().getBuilder();
4722     }
4723     /**
4724      *
4725      *
4726      * <pre>
4727      * Search API details related to the event.
4728      * This field should be set for `search` event.
4729      * </pre>
4730      *
4731      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4732      */
getSearchInfoOrBuilder()4733     public com.google.cloud.discoveryengine.v1beta.SearchInfoOrBuilder getSearchInfoOrBuilder() {
4734       if (searchInfoBuilder_ != null) {
4735         return searchInfoBuilder_.getMessageOrBuilder();
4736       } else {
4737         return searchInfo_ == null
4738             ? com.google.cloud.discoveryengine.v1beta.SearchInfo.getDefaultInstance()
4739             : searchInfo_;
4740       }
4741     }
4742     /**
4743      *
4744      *
4745      * <pre>
4746      * Search API details related to the event.
4747      * This field should be set for `search` event.
4748      * </pre>
4749      *
4750      * <code>.google.cloud.discoveryengine.v1beta.SearchInfo search_info = 12;</code>
4751      */
4752     private com.google.protobuf.SingleFieldBuilderV3<
4753             com.google.cloud.discoveryengine.v1beta.SearchInfo,
4754             com.google.cloud.discoveryengine.v1beta.SearchInfo.Builder,
4755             com.google.cloud.discoveryengine.v1beta.SearchInfoOrBuilder>
getSearchInfoFieldBuilder()4756         getSearchInfoFieldBuilder() {
4757       if (searchInfoBuilder_ == null) {
4758         searchInfoBuilder_ =
4759             new com.google.protobuf.SingleFieldBuilderV3<
4760                 com.google.cloud.discoveryengine.v1beta.SearchInfo,
4761                 com.google.cloud.discoveryengine.v1beta.SearchInfo.Builder,
4762                 com.google.cloud.discoveryengine.v1beta.SearchInfoOrBuilder>(
4763                 getSearchInfo(), getParentForChildren(), isClean());
4764         searchInfo_ = null;
4765       }
4766       return searchInfoBuilder_;
4767     }
4768 
4769     private com.google.cloud.discoveryengine.v1beta.CompletionInfo completionInfo_;
4770     private com.google.protobuf.SingleFieldBuilderV3<
4771             com.google.cloud.discoveryengine.v1beta.CompletionInfo,
4772             com.google.cloud.discoveryengine.v1beta.CompletionInfo.Builder,
4773             com.google.cloud.discoveryengine.v1beta.CompletionInfoOrBuilder>
4774         completionInfoBuilder_;
4775     /**
4776      *
4777      *
4778      * <pre>
4779      * CompleteQuery API details related to the event.
4780      * This field should be set for `search` event when autocomplete function is
4781      * enabled and the user clicks a suggestion for search.
4782      * </pre>
4783      *
4784      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4785      *
4786      * @return Whether the completionInfo field is set.
4787      */
hasCompletionInfo()4788     public boolean hasCompletionInfo() {
4789       return ((bitField0_ & 0x00001000) != 0);
4790     }
4791     /**
4792      *
4793      *
4794      * <pre>
4795      * CompleteQuery API details related to the event.
4796      * This field should be set for `search` event when autocomplete function is
4797      * enabled and the user clicks a suggestion for search.
4798      * </pre>
4799      *
4800      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4801      *
4802      * @return The completionInfo.
4803      */
getCompletionInfo()4804     public com.google.cloud.discoveryengine.v1beta.CompletionInfo getCompletionInfo() {
4805       if (completionInfoBuilder_ == null) {
4806         return completionInfo_ == null
4807             ? com.google.cloud.discoveryengine.v1beta.CompletionInfo.getDefaultInstance()
4808             : completionInfo_;
4809       } else {
4810         return completionInfoBuilder_.getMessage();
4811       }
4812     }
4813     /**
4814      *
4815      *
4816      * <pre>
4817      * CompleteQuery API details related to the event.
4818      * This field should be set for `search` event when autocomplete function is
4819      * enabled and the user clicks a suggestion for search.
4820      * </pre>
4821      *
4822      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4823      */
setCompletionInfo(com.google.cloud.discoveryengine.v1beta.CompletionInfo value)4824     public Builder setCompletionInfo(com.google.cloud.discoveryengine.v1beta.CompletionInfo value) {
4825       if (completionInfoBuilder_ == null) {
4826         if (value == null) {
4827           throw new NullPointerException();
4828         }
4829         completionInfo_ = value;
4830       } else {
4831         completionInfoBuilder_.setMessage(value);
4832       }
4833       bitField0_ |= 0x00001000;
4834       onChanged();
4835       return this;
4836     }
4837     /**
4838      *
4839      *
4840      * <pre>
4841      * CompleteQuery API details related to the event.
4842      * This field should be set for `search` event when autocomplete function is
4843      * enabled and the user clicks a suggestion for search.
4844      * </pre>
4845      *
4846      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4847      */
setCompletionInfo( com.google.cloud.discoveryengine.v1beta.CompletionInfo.Builder builderForValue)4848     public Builder setCompletionInfo(
4849         com.google.cloud.discoveryengine.v1beta.CompletionInfo.Builder builderForValue) {
4850       if (completionInfoBuilder_ == null) {
4851         completionInfo_ = builderForValue.build();
4852       } else {
4853         completionInfoBuilder_.setMessage(builderForValue.build());
4854       }
4855       bitField0_ |= 0x00001000;
4856       onChanged();
4857       return this;
4858     }
4859     /**
4860      *
4861      *
4862      * <pre>
4863      * CompleteQuery API details related to the event.
4864      * This field should be set for `search` event when autocomplete function is
4865      * enabled and the user clicks a suggestion for search.
4866      * </pre>
4867      *
4868      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4869      */
mergeCompletionInfo( com.google.cloud.discoveryengine.v1beta.CompletionInfo value)4870     public Builder mergeCompletionInfo(
4871         com.google.cloud.discoveryengine.v1beta.CompletionInfo value) {
4872       if (completionInfoBuilder_ == null) {
4873         if (((bitField0_ & 0x00001000) != 0)
4874             && completionInfo_ != null
4875             && completionInfo_
4876                 != com.google.cloud.discoveryengine.v1beta.CompletionInfo.getDefaultInstance()) {
4877           getCompletionInfoBuilder().mergeFrom(value);
4878         } else {
4879           completionInfo_ = value;
4880         }
4881       } else {
4882         completionInfoBuilder_.mergeFrom(value);
4883       }
4884       bitField0_ |= 0x00001000;
4885       onChanged();
4886       return this;
4887     }
4888     /**
4889      *
4890      *
4891      * <pre>
4892      * CompleteQuery API details related to the event.
4893      * This field should be set for `search` event when autocomplete function is
4894      * enabled and the user clicks a suggestion for search.
4895      * </pre>
4896      *
4897      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4898      */
clearCompletionInfo()4899     public Builder clearCompletionInfo() {
4900       bitField0_ = (bitField0_ & ~0x00001000);
4901       completionInfo_ = null;
4902       if (completionInfoBuilder_ != null) {
4903         completionInfoBuilder_.dispose();
4904         completionInfoBuilder_ = null;
4905       }
4906       onChanged();
4907       return this;
4908     }
4909     /**
4910      *
4911      *
4912      * <pre>
4913      * CompleteQuery API details related to the event.
4914      * This field should be set for `search` event when autocomplete function is
4915      * enabled and the user clicks a suggestion for search.
4916      * </pre>
4917      *
4918      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4919      */
4920     public com.google.cloud.discoveryengine.v1beta.CompletionInfo.Builder
getCompletionInfoBuilder()4921         getCompletionInfoBuilder() {
4922       bitField0_ |= 0x00001000;
4923       onChanged();
4924       return getCompletionInfoFieldBuilder().getBuilder();
4925     }
4926     /**
4927      *
4928      *
4929      * <pre>
4930      * CompleteQuery API details related to the event.
4931      * This field should be set for `search` event when autocomplete function is
4932      * enabled and the user clicks a suggestion for search.
4933      * </pre>
4934      *
4935      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4936      */
4937     public com.google.cloud.discoveryengine.v1beta.CompletionInfoOrBuilder
getCompletionInfoOrBuilder()4938         getCompletionInfoOrBuilder() {
4939       if (completionInfoBuilder_ != null) {
4940         return completionInfoBuilder_.getMessageOrBuilder();
4941       } else {
4942         return completionInfo_ == null
4943             ? com.google.cloud.discoveryengine.v1beta.CompletionInfo.getDefaultInstance()
4944             : completionInfo_;
4945       }
4946     }
4947     /**
4948      *
4949      *
4950      * <pre>
4951      * CompleteQuery API details related to the event.
4952      * This field should be set for `search` event when autocomplete function is
4953      * enabled and the user clicks a suggestion for search.
4954      * </pre>
4955      *
4956      * <code>.google.cloud.discoveryengine.v1beta.CompletionInfo completion_info = 13;</code>
4957      */
4958     private com.google.protobuf.SingleFieldBuilderV3<
4959             com.google.cloud.discoveryengine.v1beta.CompletionInfo,
4960             com.google.cloud.discoveryengine.v1beta.CompletionInfo.Builder,
4961             com.google.cloud.discoveryengine.v1beta.CompletionInfoOrBuilder>
getCompletionInfoFieldBuilder()4962         getCompletionInfoFieldBuilder() {
4963       if (completionInfoBuilder_ == null) {
4964         completionInfoBuilder_ =
4965             new com.google.protobuf.SingleFieldBuilderV3<
4966                 com.google.cloud.discoveryengine.v1beta.CompletionInfo,
4967                 com.google.cloud.discoveryengine.v1beta.CompletionInfo.Builder,
4968                 com.google.cloud.discoveryengine.v1beta.CompletionInfoOrBuilder>(
4969                 getCompletionInfo(), getParentForChildren(), isClean());
4970         completionInfo_ = null;
4971       }
4972       return completionInfoBuilder_;
4973     }
4974 
4975     private com.google.cloud.discoveryengine.v1beta.TransactionInfo transactionInfo_;
4976     private com.google.protobuf.SingleFieldBuilderV3<
4977             com.google.cloud.discoveryengine.v1beta.TransactionInfo,
4978             com.google.cloud.discoveryengine.v1beta.TransactionInfo.Builder,
4979             com.google.cloud.discoveryengine.v1beta.TransactionInfoOrBuilder>
4980         transactionInfoBuilder_;
4981     /**
4982      *
4983      *
4984      * <pre>
4985      * The transaction metadata (if any) associated with this user event.
4986      * </pre>
4987      *
4988      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
4989      *
4990      * @return Whether the transactionInfo field is set.
4991      */
hasTransactionInfo()4992     public boolean hasTransactionInfo() {
4993       return ((bitField0_ & 0x00002000) != 0);
4994     }
4995     /**
4996      *
4997      *
4998      * <pre>
4999      * The transaction metadata (if any) associated with this user event.
5000      * </pre>
5001      *
5002      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5003      *
5004      * @return The transactionInfo.
5005      */
getTransactionInfo()5006     public com.google.cloud.discoveryengine.v1beta.TransactionInfo getTransactionInfo() {
5007       if (transactionInfoBuilder_ == null) {
5008         return transactionInfo_ == null
5009             ? com.google.cloud.discoveryengine.v1beta.TransactionInfo.getDefaultInstance()
5010             : transactionInfo_;
5011       } else {
5012         return transactionInfoBuilder_.getMessage();
5013       }
5014     }
5015     /**
5016      *
5017      *
5018      * <pre>
5019      * The transaction metadata (if any) associated with this user event.
5020      * </pre>
5021      *
5022      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5023      */
setTransactionInfo( com.google.cloud.discoveryengine.v1beta.TransactionInfo value)5024     public Builder setTransactionInfo(
5025         com.google.cloud.discoveryengine.v1beta.TransactionInfo value) {
5026       if (transactionInfoBuilder_ == null) {
5027         if (value == null) {
5028           throw new NullPointerException();
5029         }
5030         transactionInfo_ = value;
5031       } else {
5032         transactionInfoBuilder_.setMessage(value);
5033       }
5034       bitField0_ |= 0x00002000;
5035       onChanged();
5036       return this;
5037     }
5038     /**
5039      *
5040      *
5041      * <pre>
5042      * The transaction metadata (if any) associated with this user event.
5043      * </pre>
5044      *
5045      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5046      */
setTransactionInfo( com.google.cloud.discoveryengine.v1beta.TransactionInfo.Builder builderForValue)5047     public Builder setTransactionInfo(
5048         com.google.cloud.discoveryengine.v1beta.TransactionInfo.Builder builderForValue) {
5049       if (transactionInfoBuilder_ == null) {
5050         transactionInfo_ = builderForValue.build();
5051       } else {
5052         transactionInfoBuilder_.setMessage(builderForValue.build());
5053       }
5054       bitField0_ |= 0x00002000;
5055       onChanged();
5056       return this;
5057     }
5058     /**
5059      *
5060      *
5061      * <pre>
5062      * The transaction metadata (if any) associated with this user event.
5063      * </pre>
5064      *
5065      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5066      */
mergeTransactionInfo( com.google.cloud.discoveryengine.v1beta.TransactionInfo value)5067     public Builder mergeTransactionInfo(
5068         com.google.cloud.discoveryengine.v1beta.TransactionInfo value) {
5069       if (transactionInfoBuilder_ == null) {
5070         if (((bitField0_ & 0x00002000) != 0)
5071             && transactionInfo_ != null
5072             && transactionInfo_
5073                 != com.google.cloud.discoveryengine.v1beta.TransactionInfo.getDefaultInstance()) {
5074           getTransactionInfoBuilder().mergeFrom(value);
5075         } else {
5076           transactionInfo_ = value;
5077         }
5078       } else {
5079         transactionInfoBuilder_.mergeFrom(value);
5080       }
5081       bitField0_ |= 0x00002000;
5082       onChanged();
5083       return this;
5084     }
5085     /**
5086      *
5087      *
5088      * <pre>
5089      * The transaction metadata (if any) associated with this user event.
5090      * </pre>
5091      *
5092      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5093      */
clearTransactionInfo()5094     public Builder clearTransactionInfo() {
5095       bitField0_ = (bitField0_ & ~0x00002000);
5096       transactionInfo_ = null;
5097       if (transactionInfoBuilder_ != null) {
5098         transactionInfoBuilder_.dispose();
5099         transactionInfoBuilder_ = null;
5100       }
5101       onChanged();
5102       return this;
5103     }
5104     /**
5105      *
5106      *
5107      * <pre>
5108      * The transaction metadata (if any) associated with this user event.
5109      * </pre>
5110      *
5111      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5112      */
5113     public com.google.cloud.discoveryengine.v1beta.TransactionInfo.Builder
getTransactionInfoBuilder()5114         getTransactionInfoBuilder() {
5115       bitField0_ |= 0x00002000;
5116       onChanged();
5117       return getTransactionInfoFieldBuilder().getBuilder();
5118     }
5119     /**
5120      *
5121      *
5122      * <pre>
5123      * The transaction metadata (if any) associated with this user event.
5124      * </pre>
5125      *
5126      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5127      */
5128     public com.google.cloud.discoveryengine.v1beta.TransactionInfoOrBuilder
getTransactionInfoOrBuilder()5129         getTransactionInfoOrBuilder() {
5130       if (transactionInfoBuilder_ != null) {
5131         return transactionInfoBuilder_.getMessageOrBuilder();
5132       } else {
5133         return transactionInfo_ == null
5134             ? com.google.cloud.discoveryengine.v1beta.TransactionInfo.getDefaultInstance()
5135             : transactionInfo_;
5136       }
5137     }
5138     /**
5139      *
5140      *
5141      * <pre>
5142      * The transaction metadata (if any) associated with this user event.
5143      * </pre>
5144      *
5145      * <code>.google.cloud.discoveryengine.v1beta.TransactionInfo transaction_info = 14;</code>
5146      */
5147     private com.google.protobuf.SingleFieldBuilderV3<
5148             com.google.cloud.discoveryengine.v1beta.TransactionInfo,
5149             com.google.cloud.discoveryengine.v1beta.TransactionInfo.Builder,
5150             com.google.cloud.discoveryengine.v1beta.TransactionInfoOrBuilder>
getTransactionInfoFieldBuilder()5151         getTransactionInfoFieldBuilder() {
5152       if (transactionInfoBuilder_ == null) {
5153         transactionInfoBuilder_ =
5154             new com.google.protobuf.SingleFieldBuilderV3<
5155                 com.google.cloud.discoveryengine.v1beta.TransactionInfo,
5156                 com.google.cloud.discoveryengine.v1beta.TransactionInfo.Builder,
5157                 com.google.cloud.discoveryengine.v1beta.TransactionInfoOrBuilder>(
5158                 getTransactionInfo(), getParentForChildren(), isClean());
5159         transactionInfo_ = null;
5160       }
5161       return transactionInfoBuilder_;
5162     }
5163 
5164     private com.google.protobuf.LazyStringList tagIds_ =
5165         com.google.protobuf.LazyStringArrayList.EMPTY;
5166 
ensureTagIdsIsMutable()5167     private void ensureTagIdsIsMutable() {
5168       if (!((bitField0_ & 0x00004000) != 0)) {
5169         tagIds_ = new com.google.protobuf.LazyStringArrayList(tagIds_);
5170         bitField0_ |= 0x00004000;
5171       }
5172     }
5173     /**
5174      *
5175      *
5176      * <pre>
5177      * A list of identifiers for the independent experiment groups this user event
5178      * belongs to. This is used to distinguish between user events associated with
5179      * different experiment setups on the customer end.
5180      * </pre>
5181      *
5182      * <code>repeated string tag_ids = 15;</code>
5183      *
5184      * @return A list containing the tagIds.
5185      */
getTagIdsList()5186     public com.google.protobuf.ProtocolStringList getTagIdsList() {
5187       return tagIds_.getUnmodifiableView();
5188     }
5189     /**
5190      *
5191      *
5192      * <pre>
5193      * A list of identifiers for the independent experiment groups this user event
5194      * belongs to. This is used to distinguish between user events associated with
5195      * different experiment setups on the customer end.
5196      * </pre>
5197      *
5198      * <code>repeated string tag_ids = 15;</code>
5199      *
5200      * @return The count of tagIds.
5201      */
getTagIdsCount()5202     public int getTagIdsCount() {
5203       return tagIds_.size();
5204     }
5205     /**
5206      *
5207      *
5208      * <pre>
5209      * A list of identifiers for the independent experiment groups this user event
5210      * belongs to. This is used to distinguish between user events associated with
5211      * different experiment setups on the customer end.
5212      * </pre>
5213      *
5214      * <code>repeated string tag_ids = 15;</code>
5215      *
5216      * @param index The index of the element to return.
5217      * @return The tagIds at the given index.
5218      */
getTagIds(int index)5219     public java.lang.String getTagIds(int index) {
5220       return tagIds_.get(index);
5221     }
5222     /**
5223      *
5224      *
5225      * <pre>
5226      * A list of identifiers for the independent experiment groups this user event
5227      * belongs to. This is used to distinguish between user events associated with
5228      * different experiment setups on the customer end.
5229      * </pre>
5230      *
5231      * <code>repeated string tag_ids = 15;</code>
5232      *
5233      * @param index The index of the value to return.
5234      * @return The bytes of the tagIds at the given index.
5235      */
getTagIdsBytes(int index)5236     public com.google.protobuf.ByteString getTagIdsBytes(int index) {
5237       return tagIds_.getByteString(index);
5238     }
5239     /**
5240      *
5241      *
5242      * <pre>
5243      * A list of identifiers for the independent experiment groups this user event
5244      * belongs to. This is used to distinguish between user events associated with
5245      * different experiment setups on the customer end.
5246      * </pre>
5247      *
5248      * <code>repeated string tag_ids = 15;</code>
5249      *
5250      * @param index The index to set the value at.
5251      * @param value The tagIds to set.
5252      * @return This builder for chaining.
5253      */
setTagIds(int index, java.lang.String value)5254     public Builder setTagIds(int index, java.lang.String value) {
5255       if (value == null) {
5256         throw new NullPointerException();
5257       }
5258       ensureTagIdsIsMutable();
5259       tagIds_.set(index, value);
5260       onChanged();
5261       return this;
5262     }
5263     /**
5264      *
5265      *
5266      * <pre>
5267      * A list of identifiers for the independent experiment groups this user event
5268      * belongs to. This is used to distinguish between user events associated with
5269      * different experiment setups on the customer end.
5270      * </pre>
5271      *
5272      * <code>repeated string tag_ids = 15;</code>
5273      *
5274      * @param value The tagIds to add.
5275      * @return This builder for chaining.
5276      */
addTagIds(java.lang.String value)5277     public Builder addTagIds(java.lang.String value) {
5278       if (value == null) {
5279         throw new NullPointerException();
5280       }
5281       ensureTagIdsIsMutable();
5282       tagIds_.add(value);
5283       onChanged();
5284       return this;
5285     }
5286     /**
5287      *
5288      *
5289      * <pre>
5290      * A list of identifiers for the independent experiment groups this user event
5291      * belongs to. This is used to distinguish between user events associated with
5292      * different experiment setups on the customer end.
5293      * </pre>
5294      *
5295      * <code>repeated string tag_ids = 15;</code>
5296      *
5297      * @param values The tagIds to add.
5298      * @return This builder for chaining.
5299      */
addAllTagIds(java.lang.Iterable<java.lang.String> values)5300     public Builder addAllTagIds(java.lang.Iterable<java.lang.String> values) {
5301       ensureTagIdsIsMutable();
5302       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, tagIds_);
5303       onChanged();
5304       return this;
5305     }
5306     /**
5307      *
5308      *
5309      * <pre>
5310      * A list of identifiers for the independent experiment groups this user event
5311      * belongs to. This is used to distinguish between user events associated with
5312      * different experiment setups on the customer end.
5313      * </pre>
5314      *
5315      * <code>repeated string tag_ids = 15;</code>
5316      *
5317      * @return This builder for chaining.
5318      */
clearTagIds()5319     public Builder clearTagIds() {
5320       tagIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
5321       bitField0_ = (bitField0_ & ~0x00004000);
5322       onChanged();
5323       return this;
5324     }
5325     /**
5326      *
5327      *
5328      * <pre>
5329      * A list of identifiers for the independent experiment groups this user event
5330      * belongs to. This is used to distinguish between user events associated with
5331      * different experiment setups on the customer end.
5332      * </pre>
5333      *
5334      * <code>repeated string tag_ids = 15;</code>
5335      *
5336      * @param value The bytes of the tagIds to add.
5337      * @return This builder for chaining.
5338      */
addTagIdsBytes(com.google.protobuf.ByteString value)5339     public Builder addTagIdsBytes(com.google.protobuf.ByteString value) {
5340       if (value == null) {
5341         throw new NullPointerException();
5342       }
5343       checkByteStringIsUtf8(value);
5344       ensureTagIdsIsMutable();
5345       tagIds_.add(value);
5346       onChanged();
5347       return this;
5348     }
5349 
5350     private com.google.protobuf.LazyStringList promotionIds_ =
5351         com.google.protobuf.LazyStringArrayList.EMPTY;
5352 
ensurePromotionIdsIsMutable()5353     private void ensurePromotionIdsIsMutable() {
5354       if (!((bitField0_ & 0x00008000) != 0)) {
5355         promotionIds_ = new com.google.protobuf.LazyStringArrayList(promotionIds_);
5356         bitField0_ |= 0x00008000;
5357       }
5358     }
5359     /**
5360      *
5361      *
5362      * <pre>
5363      * The promotion IDs if this is an event associated with promotions.
5364      * Currently, this field is restricted to at most one ID.
5365      * </pre>
5366      *
5367      * <code>repeated string promotion_ids = 16;</code>
5368      *
5369      * @return A list containing the promotionIds.
5370      */
getPromotionIdsList()5371     public com.google.protobuf.ProtocolStringList getPromotionIdsList() {
5372       return promotionIds_.getUnmodifiableView();
5373     }
5374     /**
5375      *
5376      *
5377      * <pre>
5378      * The promotion IDs if this is an event associated with promotions.
5379      * Currently, this field is restricted to at most one ID.
5380      * </pre>
5381      *
5382      * <code>repeated string promotion_ids = 16;</code>
5383      *
5384      * @return The count of promotionIds.
5385      */
getPromotionIdsCount()5386     public int getPromotionIdsCount() {
5387       return promotionIds_.size();
5388     }
5389     /**
5390      *
5391      *
5392      * <pre>
5393      * The promotion IDs if this is an event associated with promotions.
5394      * Currently, this field is restricted to at most one ID.
5395      * </pre>
5396      *
5397      * <code>repeated string promotion_ids = 16;</code>
5398      *
5399      * @param index The index of the element to return.
5400      * @return The promotionIds at the given index.
5401      */
getPromotionIds(int index)5402     public java.lang.String getPromotionIds(int index) {
5403       return promotionIds_.get(index);
5404     }
5405     /**
5406      *
5407      *
5408      * <pre>
5409      * The promotion IDs if this is an event associated with promotions.
5410      * Currently, this field is restricted to at most one ID.
5411      * </pre>
5412      *
5413      * <code>repeated string promotion_ids = 16;</code>
5414      *
5415      * @param index The index of the value to return.
5416      * @return The bytes of the promotionIds at the given index.
5417      */
getPromotionIdsBytes(int index)5418     public com.google.protobuf.ByteString getPromotionIdsBytes(int index) {
5419       return promotionIds_.getByteString(index);
5420     }
5421     /**
5422      *
5423      *
5424      * <pre>
5425      * The promotion IDs if this is an event associated with promotions.
5426      * Currently, this field is restricted to at most one ID.
5427      * </pre>
5428      *
5429      * <code>repeated string promotion_ids = 16;</code>
5430      *
5431      * @param index The index to set the value at.
5432      * @param value The promotionIds to set.
5433      * @return This builder for chaining.
5434      */
setPromotionIds(int index, java.lang.String value)5435     public Builder setPromotionIds(int index, java.lang.String value) {
5436       if (value == null) {
5437         throw new NullPointerException();
5438       }
5439       ensurePromotionIdsIsMutable();
5440       promotionIds_.set(index, value);
5441       onChanged();
5442       return this;
5443     }
5444     /**
5445      *
5446      *
5447      * <pre>
5448      * The promotion IDs if this is an event associated with promotions.
5449      * Currently, this field is restricted to at most one ID.
5450      * </pre>
5451      *
5452      * <code>repeated string promotion_ids = 16;</code>
5453      *
5454      * @param value The promotionIds to add.
5455      * @return This builder for chaining.
5456      */
addPromotionIds(java.lang.String value)5457     public Builder addPromotionIds(java.lang.String value) {
5458       if (value == null) {
5459         throw new NullPointerException();
5460       }
5461       ensurePromotionIdsIsMutable();
5462       promotionIds_.add(value);
5463       onChanged();
5464       return this;
5465     }
5466     /**
5467      *
5468      *
5469      * <pre>
5470      * The promotion IDs if this is an event associated with promotions.
5471      * Currently, this field is restricted to at most one ID.
5472      * </pre>
5473      *
5474      * <code>repeated string promotion_ids = 16;</code>
5475      *
5476      * @param values The promotionIds to add.
5477      * @return This builder for chaining.
5478      */
addAllPromotionIds(java.lang.Iterable<java.lang.String> values)5479     public Builder addAllPromotionIds(java.lang.Iterable<java.lang.String> values) {
5480       ensurePromotionIdsIsMutable();
5481       com.google.protobuf.AbstractMessageLite.Builder.addAll(values, promotionIds_);
5482       onChanged();
5483       return this;
5484     }
5485     /**
5486      *
5487      *
5488      * <pre>
5489      * The promotion IDs if this is an event associated with promotions.
5490      * Currently, this field is restricted to at most one ID.
5491      * </pre>
5492      *
5493      * <code>repeated string promotion_ids = 16;</code>
5494      *
5495      * @return This builder for chaining.
5496      */
clearPromotionIds()5497     public Builder clearPromotionIds() {
5498       promotionIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
5499       bitField0_ = (bitField0_ & ~0x00008000);
5500       onChanged();
5501       return this;
5502     }
5503     /**
5504      *
5505      *
5506      * <pre>
5507      * The promotion IDs if this is an event associated with promotions.
5508      * Currently, this field is restricted to at most one ID.
5509      * </pre>
5510      *
5511      * <code>repeated string promotion_ids = 16;</code>
5512      *
5513      * @param value The bytes of the promotionIds to add.
5514      * @return This builder for chaining.
5515      */
addPromotionIdsBytes(com.google.protobuf.ByteString value)5516     public Builder addPromotionIdsBytes(com.google.protobuf.ByteString value) {
5517       if (value == null) {
5518         throw new NullPointerException();
5519       }
5520       checkByteStringIsUtf8(value);
5521       ensurePromotionIdsIsMutable();
5522       promotionIds_.add(value);
5523       onChanged();
5524       return this;
5525     }
5526 
5527     private com.google.protobuf.MapField<
5528             java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
5529         attributes_;
5530 
5531     private com.google.protobuf.MapField<
5532             java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
internalGetAttributes()5533         internalGetAttributes() {
5534       if (attributes_ == null) {
5535         return com.google.protobuf.MapField.emptyMapField(
5536             AttributesDefaultEntryHolder.defaultEntry);
5537       }
5538       return attributes_;
5539     }
5540 
5541     private com.google.protobuf.MapField<
5542             java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
internalGetMutableAttributes()5543         internalGetMutableAttributes() {
5544       if (attributes_ == null) {
5545         attributes_ =
5546             com.google.protobuf.MapField.newMapField(AttributesDefaultEntryHolder.defaultEntry);
5547       }
5548       if (!attributes_.isMutable()) {
5549         attributes_ = attributes_.copy();
5550       }
5551       bitField0_ |= 0x00010000;
5552       onChanged();
5553       return attributes_;
5554     }
5555 
getAttributesCount()5556     public int getAttributesCount() {
5557       return internalGetAttributes().getMap().size();
5558     }
5559     /**
5560      *
5561      *
5562      * <pre>
5563      * Extra user event features to include in the recommendation model.
5564      * These attributes must NOT contain data that needs to be parsed or processed
5565      * further, e.g. JSON or other encodings.
5566      * If you provide custom attributes for ingested user events, also include
5567      * them in the user events that you associate with prediction requests. Custom
5568      * attribute formatting must be consistent between imported events and events
5569      * provided with prediction requests. This lets the Discovery Engine API use
5570      * those custom attributes when training models and serving predictions, which
5571      * helps improve recommendation quality.
5572      * This field needs to pass all below criteria, otherwise an
5573      * `INVALID_ARGUMENT` error is returned:
5574      * * The key must be a UTF-8 encoded string with a length limit of 5,000
5575      *   characters.
5576      * * For text attributes, at most 400 values are allowed. Empty values are not
5577      *   allowed. Each value must be a UTF-8 encoded string with a length limit of
5578      *   256 characters.
5579      * * For number attributes, at most 400 values are allowed.
5580      * For product recommendations, an example of extra user information is
5581      * ` traffic_channel`, which is how a user arrives at the site. Users can
5582      * arrive
5583      * at the site by coming to the site directly, coming through Google
5584      * search, or in other ways.
5585      * </pre>
5586      *
5587      * <code>
5588      * map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
5589      * </code>
5590      */
5591     @java.lang.Override
containsAttributes(java.lang.String key)5592     public boolean containsAttributes(java.lang.String key) {
5593       if (key == null) {
5594         throw new NullPointerException("map key");
5595       }
5596       return internalGetAttributes().getMap().containsKey(key);
5597     }
5598     /** Use {@link #getAttributesMap()} instead. */
5599     @java.lang.Override
5600     @java.lang.Deprecated
5601     public java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
getAttributes()5602         getAttributes() {
5603       return getAttributesMap();
5604     }
5605     /**
5606      *
5607      *
5608      * <pre>
5609      * Extra user event features to include in the recommendation model.
5610      * These attributes must NOT contain data that needs to be parsed or processed
5611      * further, e.g. JSON or other encodings.
5612      * If you provide custom attributes for ingested user events, also include
5613      * them in the user events that you associate with prediction requests. Custom
5614      * attribute formatting must be consistent between imported events and events
5615      * provided with prediction requests. This lets the Discovery Engine API use
5616      * those custom attributes when training models and serving predictions, which
5617      * helps improve recommendation quality.
5618      * This field needs to pass all below criteria, otherwise an
5619      * `INVALID_ARGUMENT` error is returned:
5620      * * The key must be a UTF-8 encoded string with a length limit of 5,000
5621      *   characters.
5622      * * For text attributes, at most 400 values are allowed. Empty values are not
5623      *   allowed. Each value must be a UTF-8 encoded string with a length limit of
5624      *   256 characters.
5625      * * For number attributes, at most 400 values are allowed.
5626      * For product recommendations, an example of extra user information is
5627      * ` traffic_channel`, which is how a user arrives at the site. Users can
5628      * arrive
5629      * at the site by coming to the site directly, coming through Google
5630      * search, or in other ways.
5631      * </pre>
5632      *
5633      * <code>
5634      * map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
5635      * </code>
5636      */
5637     @java.lang.Override
5638     public java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
getAttributesMap()5639         getAttributesMap() {
5640       return internalGetAttributes().getMap();
5641     }
5642     /**
5643      *
5644      *
5645      * <pre>
5646      * Extra user event features to include in the recommendation model.
5647      * These attributes must NOT contain data that needs to be parsed or processed
5648      * further, e.g. JSON or other encodings.
5649      * If you provide custom attributes for ingested user events, also include
5650      * them in the user events that you associate with prediction requests. Custom
5651      * attribute formatting must be consistent between imported events and events
5652      * provided with prediction requests. This lets the Discovery Engine API use
5653      * those custom attributes when training models and serving predictions, which
5654      * helps improve recommendation quality.
5655      * This field needs to pass all below criteria, otherwise an
5656      * `INVALID_ARGUMENT` error is returned:
5657      * * The key must be a UTF-8 encoded string with a length limit of 5,000
5658      *   characters.
5659      * * For text attributes, at most 400 values are allowed. Empty values are not
5660      *   allowed. Each value must be a UTF-8 encoded string with a length limit of
5661      *   256 characters.
5662      * * For number attributes, at most 400 values are allowed.
5663      * For product recommendations, an example of extra user information is
5664      * ` traffic_channel`, which is how a user arrives at the site. Users can
5665      * arrive
5666      * at the site by coming to the site directly, coming through Google
5667      * search, or in other ways.
5668      * </pre>
5669      *
5670      * <code>
5671      * map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
5672      * </code>
5673      */
5674     @java.lang.Override
5675     public /* nullable */ com.google.cloud.discoveryengine.v1beta.CustomAttribute
getAttributesOrDefault( java.lang.String key, com.google.cloud.discoveryengine.v1beta.CustomAttribute defaultValue)5676         getAttributesOrDefault(
5677             java.lang.String key,
5678             /* nullable */
5679             com.google.cloud.discoveryengine.v1beta.CustomAttribute defaultValue) {
5680       if (key == null) {
5681         throw new NullPointerException("map key");
5682       }
5683       java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute> map =
5684           internalGetAttributes().getMap();
5685       return map.containsKey(key) ? map.get(key) : defaultValue;
5686     }
5687     /**
5688      *
5689      *
5690      * <pre>
5691      * Extra user event features to include in the recommendation model.
5692      * These attributes must NOT contain data that needs to be parsed or processed
5693      * further, e.g. JSON or other encodings.
5694      * If you provide custom attributes for ingested user events, also include
5695      * them in the user events that you associate with prediction requests. Custom
5696      * attribute formatting must be consistent between imported events and events
5697      * provided with prediction requests. This lets the Discovery Engine API use
5698      * those custom attributes when training models and serving predictions, which
5699      * helps improve recommendation quality.
5700      * This field needs to pass all below criteria, otherwise an
5701      * `INVALID_ARGUMENT` error is returned:
5702      * * The key must be a UTF-8 encoded string with a length limit of 5,000
5703      *   characters.
5704      * * For text attributes, at most 400 values are allowed. Empty values are not
5705      *   allowed. Each value must be a UTF-8 encoded string with a length limit of
5706      *   256 characters.
5707      * * For number attributes, at most 400 values are allowed.
5708      * For product recommendations, an example of extra user information is
5709      * ` traffic_channel`, which is how a user arrives at the site. Users can
5710      * arrive
5711      * at the site by coming to the site directly, coming through Google
5712      * search, or in other ways.
5713      * </pre>
5714      *
5715      * <code>
5716      * map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
5717      * </code>
5718      */
5719     @java.lang.Override
getAttributesOrThrow( java.lang.String key)5720     public com.google.cloud.discoveryengine.v1beta.CustomAttribute getAttributesOrThrow(
5721         java.lang.String key) {
5722       if (key == null) {
5723         throw new NullPointerException("map key");
5724       }
5725       java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute> map =
5726           internalGetAttributes().getMap();
5727       if (!map.containsKey(key)) {
5728         throw new java.lang.IllegalArgumentException();
5729       }
5730       return map.get(key);
5731     }
5732 
clearAttributes()5733     public Builder clearAttributes() {
5734       bitField0_ = (bitField0_ & ~0x00010000);
5735       internalGetMutableAttributes().getMutableMap().clear();
5736       return this;
5737     }
5738     /**
5739      *
5740      *
5741      * <pre>
5742      * Extra user event features to include in the recommendation model.
5743      * These attributes must NOT contain data that needs to be parsed or processed
5744      * further, e.g. JSON or other encodings.
5745      * If you provide custom attributes for ingested user events, also include
5746      * them in the user events that you associate with prediction requests. Custom
5747      * attribute formatting must be consistent between imported events and events
5748      * provided with prediction requests. This lets the Discovery Engine API use
5749      * those custom attributes when training models and serving predictions, which
5750      * helps improve recommendation quality.
5751      * This field needs to pass all below criteria, otherwise an
5752      * `INVALID_ARGUMENT` error is returned:
5753      * * The key must be a UTF-8 encoded string with a length limit of 5,000
5754      *   characters.
5755      * * For text attributes, at most 400 values are allowed. Empty values are not
5756      *   allowed. Each value must be a UTF-8 encoded string with a length limit of
5757      *   256 characters.
5758      * * For number attributes, at most 400 values are allowed.
5759      * For product recommendations, an example of extra user information is
5760      * ` traffic_channel`, which is how a user arrives at the site. Users can
5761      * arrive
5762      * at the site by coming to the site directly, coming through Google
5763      * search, or in other ways.
5764      * </pre>
5765      *
5766      * <code>
5767      * map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
5768      * </code>
5769      */
removeAttributes(java.lang.String key)5770     public Builder removeAttributes(java.lang.String key) {
5771       if (key == null) {
5772         throw new NullPointerException("map key");
5773       }
5774       internalGetMutableAttributes().getMutableMap().remove(key);
5775       return this;
5776     }
5777     /** Use alternate mutation accessors instead. */
5778     @java.lang.Deprecated
5779     public java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
getMutableAttributes()5780         getMutableAttributes() {
5781       bitField0_ |= 0x00010000;
5782       return internalGetMutableAttributes().getMutableMap();
5783     }
5784     /**
5785      *
5786      *
5787      * <pre>
5788      * Extra user event features to include in the recommendation model.
5789      * These attributes must NOT contain data that needs to be parsed or processed
5790      * further, e.g. JSON or other encodings.
5791      * If you provide custom attributes for ingested user events, also include
5792      * them in the user events that you associate with prediction requests. Custom
5793      * attribute formatting must be consistent between imported events and events
5794      * provided with prediction requests. This lets the Discovery Engine API use
5795      * those custom attributes when training models and serving predictions, which
5796      * helps improve recommendation quality.
5797      * This field needs to pass all below criteria, otherwise an
5798      * `INVALID_ARGUMENT` error is returned:
5799      * * The key must be a UTF-8 encoded string with a length limit of 5,000
5800      *   characters.
5801      * * For text attributes, at most 400 values are allowed. Empty values are not
5802      *   allowed. Each value must be a UTF-8 encoded string with a length limit of
5803      *   256 characters.
5804      * * For number attributes, at most 400 values are allowed.
5805      * For product recommendations, an example of extra user information is
5806      * ` traffic_channel`, which is how a user arrives at the site. Users can
5807      * arrive
5808      * at the site by coming to the site directly, coming through Google
5809      * search, or in other ways.
5810      * </pre>
5811      *
5812      * <code>
5813      * map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
5814      * </code>
5815      */
putAttributes( java.lang.String key, com.google.cloud.discoveryengine.v1beta.CustomAttribute value)5816     public Builder putAttributes(
5817         java.lang.String key, com.google.cloud.discoveryengine.v1beta.CustomAttribute value) {
5818       if (key == null) {
5819         throw new NullPointerException("map key");
5820       }
5821       if (value == null) {
5822         throw new NullPointerException("map value");
5823       }
5824       internalGetMutableAttributes().getMutableMap().put(key, value);
5825       bitField0_ |= 0x00010000;
5826       return this;
5827     }
5828     /**
5829      *
5830      *
5831      * <pre>
5832      * Extra user event features to include in the recommendation model.
5833      * These attributes must NOT contain data that needs to be parsed or processed
5834      * further, e.g. JSON or other encodings.
5835      * If you provide custom attributes for ingested user events, also include
5836      * them in the user events that you associate with prediction requests. Custom
5837      * attribute formatting must be consistent between imported events and events
5838      * provided with prediction requests. This lets the Discovery Engine API use
5839      * those custom attributes when training models and serving predictions, which
5840      * helps improve recommendation quality.
5841      * This field needs to pass all below criteria, otherwise an
5842      * `INVALID_ARGUMENT` error is returned:
5843      * * The key must be a UTF-8 encoded string with a length limit of 5,000
5844      *   characters.
5845      * * For text attributes, at most 400 values are allowed. Empty values are not
5846      *   allowed. Each value must be a UTF-8 encoded string with a length limit of
5847      *   256 characters.
5848      * * For number attributes, at most 400 values are allowed.
5849      * For product recommendations, an example of extra user information is
5850      * ` traffic_channel`, which is how a user arrives at the site. Users can
5851      * arrive
5852      * at the site by coming to the site directly, coming through Google
5853      * search, or in other ways.
5854      * </pre>
5855      *
5856      * <code>
5857      * map&lt;string, .google.cloud.discoveryengine.v1beta.CustomAttribute&gt; attributes = 17;
5858      * </code>
5859      */
putAllAttributes( java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute> values)5860     public Builder putAllAttributes(
5861         java.util.Map<java.lang.String, com.google.cloud.discoveryengine.v1beta.CustomAttribute>
5862             values) {
5863       internalGetMutableAttributes().getMutableMap().putAll(values);
5864       bitField0_ |= 0x00010000;
5865       return this;
5866     }
5867 
5868     private com.google.cloud.discoveryengine.v1beta.MediaInfo mediaInfo_;
5869     private com.google.protobuf.SingleFieldBuilderV3<
5870             com.google.cloud.discoveryengine.v1beta.MediaInfo,
5871             com.google.cloud.discoveryengine.v1beta.MediaInfo.Builder,
5872             com.google.cloud.discoveryengine.v1beta.MediaInfoOrBuilder>
5873         mediaInfoBuilder_;
5874     /**
5875      *
5876      *
5877      * <pre>
5878      * Media-specific info.
5879      * </pre>
5880      *
5881      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
5882      *
5883      * @return Whether the mediaInfo field is set.
5884      */
hasMediaInfo()5885     public boolean hasMediaInfo() {
5886       return ((bitField0_ & 0x00020000) != 0);
5887     }
5888     /**
5889      *
5890      *
5891      * <pre>
5892      * Media-specific info.
5893      * </pre>
5894      *
5895      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
5896      *
5897      * @return The mediaInfo.
5898      */
getMediaInfo()5899     public com.google.cloud.discoveryengine.v1beta.MediaInfo getMediaInfo() {
5900       if (mediaInfoBuilder_ == null) {
5901         return mediaInfo_ == null
5902             ? com.google.cloud.discoveryengine.v1beta.MediaInfo.getDefaultInstance()
5903             : mediaInfo_;
5904       } else {
5905         return mediaInfoBuilder_.getMessage();
5906       }
5907     }
5908     /**
5909      *
5910      *
5911      * <pre>
5912      * Media-specific info.
5913      * </pre>
5914      *
5915      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
5916      */
setMediaInfo(com.google.cloud.discoveryengine.v1beta.MediaInfo value)5917     public Builder setMediaInfo(com.google.cloud.discoveryengine.v1beta.MediaInfo value) {
5918       if (mediaInfoBuilder_ == null) {
5919         if (value == null) {
5920           throw new NullPointerException();
5921         }
5922         mediaInfo_ = value;
5923       } else {
5924         mediaInfoBuilder_.setMessage(value);
5925       }
5926       bitField0_ |= 0x00020000;
5927       onChanged();
5928       return this;
5929     }
5930     /**
5931      *
5932      *
5933      * <pre>
5934      * Media-specific info.
5935      * </pre>
5936      *
5937      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
5938      */
setMediaInfo( com.google.cloud.discoveryengine.v1beta.MediaInfo.Builder builderForValue)5939     public Builder setMediaInfo(
5940         com.google.cloud.discoveryengine.v1beta.MediaInfo.Builder builderForValue) {
5941       if (mediaInfoBuilder_ == null) {
5942         mediaInfo_ = builderForValue.build();
5943       } else {
5944         mediaInfoBuilder_.setMessage(builderForValue.build());
5945       }
5946       bitField0_ |= 0x00020000;
5947       onChanged();
5948       return this;
5949     }
5950     /**
5951      *
5952      *
5953      * <pre>
5954      * Media-specific info.
5955      * </pre>
5956      *
5957      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
5958      */
mergeMediaInfo(com.google.cloud.discoveryengine.v1beta.MediaInfo value)5959     public Builder mergeMediaInfo(com.google.cloud.discoveryengine.v1beta.MediaInfo value) {
5960       if (mediaInfoBuilder_ == null) {
5961         if (((bitField0_ & 0x00020000) != 0)
5962             && mediaInfo_ != null
5963             && mediaInfo_
5964                 != com.google.cloud.discoveryengine.v1beta.MediaInfo.getDefaultInstance()) {
5965           getMediaInfoBuilder().mergeFrom(value);
5966         } else {
5967           mediaInfo_ = value;
5968         }
5969       } else {
5970         mediaInfoBuilder_.mergeFrom(value);
5971       }
5972       bitField0_ |= 0x00020000;
5973       onChanged();
5974       return this;
5975     }
5976     /**
5977      *
5978      *
5979      * <pre>
5980      * Media-specific info.
5981      * </pre>
5982      *
5983      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
5984      */
clearMediaInfo()5985     public Builder clearMediaInfo() {
5986       bitField0_ = (bitField0_ & ~0x00020000);
5987       mediaInfo_ = null;
5988       if (mediaInfoBuilder_ != null) {
5989         mediaInfoBuilder_.dispose();
5990         mediaInfoBuilder_ = null;
5991       }
5992       onChanged();
5993       return this;
5994     }
5995     /**
5996      *
5997      *
5998      * <pre>
5999      * Media-specific info.
6000      * </pre>
6001      *
6002      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
6003      */
getMediaInfoBuilder()6004     public com.google.cloud.discoveryengine.v1beta.MediaInfo.Builder getMediaInfoBuilder() {
6005       bitField0_ |= 0x00020000;
6006       onChanged();
6007       return getMediaInfoFieldBuilder().getBuilder();
6008     }
6009     /**
6010      *
6011      *
6012      * <pre>
6013      * Media-specific info.
6014      * </pre>
6015      *
6016      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
6017      */
getMediaInfoOrBuilder()6018     public com.google.cloud.discoveryengine.v1beta.MediaInfoOrBuilder getMediaInfoOrBuilder() {
6019       if (mediaInfoBuilder_ != null) {
6020         return mediaInfoBuilder_.getMessageOrBuilder();
6021       } else {
6022         return mediaInfo_ == null
6023             ? com.google.cloud.discoveryengine.v1beta.MediaInfo.getDefaultInstance()
6024             : mediaInfo_;
6025       }
6026     }
6027     /**
6028      *
6029      *
6030      * <pre>
6031      * Media-specific info.
6032      * </pre>
6033      *
6034      * <code>.google.cloud.discoveryengine.v1beta.MediaInfo media_info = 18;</code>
6035      */
6036     private com.google.protobuf.SingleFieldBuilderV3<
6037             com.google.cloud.discoveryengine.v1beta.MediaInfo,
6038             com.google.cloud.discoveryengine.v1beta.MediaInfo.Builder,
6039             com.google.cloud.discoveryengine.v1beta.MediaInfoOrBuilder>
getMediaInfoFieldBuilder()6040         getMediaInfoFieldBuilder() {
6041       if (mediaInfoBuilder_ == null) {
6042         mediaInfoBuilder_ =
6043             new com.google.protobuf.SingleFieldBuilderV3<
6044                 com.google.cloud.discoveryengine.v1beta.MediaInfo,
6045                 com.google.cloud.discoveryengine.v1beta.MediaInfo.Builder,
6046                 com.google.cloud.discoveryengine.v1beta.MediaInfoOrBuilder>(
6047                 getMediaInfo(), getParentForChildren(), isClean());
6048         mediaInfo_ = null;
6049       }
6050       return mediaInfoBuilder_;
6051     }
6052 
6053     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)6054     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
6055       return super.setUnknownFields(unknownFields);
6056     }
6057 
6058     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)6059     public final Builder mergeUnknownFields(
6060         final com.google.protobuf.UnknownFieldSet unknownFields) {
6061       return super.mergeUnknownFields(unknownFields);
6062     }
6063 
6064     // @@protoc_insertion_point(builder_scope:google.cloud.discoveryengine.v1beta.UserEvent)
6065   }
6066 
6067   // @@protoc_insertion_point(class_scope:google.cloud.discoveryengine.v1beta.UserEvent)
6068   private static final com.google.cloud.discoveryengine.v1beta.UserEvent DEFAULT_INSTANCE;
6069 
6070   static {
6071     DEFAULT_INSTANCE = new com.google.cloud.discoveryengine.v1beta.UserEvent();
6072   }
6073 
getDefaultInstance()6074   public static com.google.cloud.discoveryengine.v1beta.UserEvent getDefaultInstance() {
6075     return DEFAULT_INSTANCE;
6076   }
6077 
6078   private static final com.google.protobuf.Parser<UserEvent> PARSER =
6079       new com.google.protobuf.AbstractParser<UserEvent>() {
6080         @java.lang.Override
6081         public UserEvent parsePartialFrom(
6082             com.google.protobuf.CodedInputStream input,
6083             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6084             throws com.google.protobuf.InvalidProtocolBufferException {
6085           Builder builder = newBuilder();
6086           try {
6087             builder.mergeFrom(input, extensionRegistry);
6088           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
6089             throw e.setUnfinishedMessage(builder.buildPartial());
6090           } catch (com.google.protobuf.UninitializedMessageException e) {
6091             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
6092           } catch (java.io.IOException e) {
6093             throw new com.google.protobuf.InvalidProtocolBufferException(e)
6094                 .setUnfinishedMessage(builder.buildPartial());
6095           }
6096           return builder.buildPartial();
6097         }
6098       };
6099 
parser()6100   public static com.google.protobuf.Parser<UserEvent> parser() {
6101     return PARSER;
6102   }
6103 
6104   @java.lang.Override
getParserForType()6105   public com.google.protobuf.Parser<UserEvent> getParserForType() {
6106     return PARSER;
6107   }
6108 
6109   @java.lang.Override
getDefaultInstanceForType()6110   public com.google.cloud.discoveryengine.v1beta.UserEvent getDefaultInstanceForType() {
6111     return DEFAULT_INSTANCE;
6112   }
6113 }
6114