• 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/compute/v1/compute.proto
18 
19 package com.google.cloud.compute.v1;
20 
21 /**
22  *
23  *
24  * <pre>
25  * Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service.
26  * </pre>
27  *
28  * Protobuf type {@code google.cloud.compute.v1.OutlierDetection}
29  */
30 public final class OutlierDetection extends com.google.protobuf.GeneratedMessageV3
31     implements
32     // @@protoc_insertion_point(message_implements:google.cloud.compute.v1.OutlierDetection)
33     OutlierDetectionOrBuilder {
34   private static final long serialVersionUID = 0L;
35   // Use OutlierDetection.newBuilder() to construct.
OutlierDetection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)36   private OutlierDetection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
37     super(builder);
38   }
39 
OutlierDetection()40   private OutlierDetection() {}
41 
42   @java.lang.Override
43   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)44   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
45     return new OutlierDetection();
46   }
47 
48   @java.lang.Override
getUnknownFields()49   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
50     return this.unknownFields;
51   }
52 
getDescriptor()53   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
54     return com.google.cloud.compute.v1.Compute
55         .internal_static_google_cloud_compute_v1_OutlierDetection_descriptor;
56   }
57 
58   @java.lang.Override
59   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()60       internalGetFieldAccessorTable() {
61     return com.google.cloud.compute.v1.Compute
62         .internal_static_google_cloud_compute_v1_OutlierDetection_fieldAccessorTable
63         .ensureFieldAccessorsInitialized(
64             com.google.cloud.compute.v1.OutlierDetection.class,
65             com.google.cloud.compute.v1.OutlierDetection.Builder.class);
66   }
67 
68   private int bitField0_;
69   public static final int BASE_EJECTION_TIME_FIELD_NUMBER = 80997255;
70   private com.google.cloud.compute.v1.Duration baseEjectionTime_;
71   /**
72    *
73    *
74    * <pre>
75    * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
76    * </pre>
77    *
78    * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
79    *
80    * @return Whether the baseEjectionTime field is set.
81    */
82   @java.lang.Override
hasBaseEjectionTime()83   public boolean hasBaseEjectionTime() {
84     return ((bitField0_ & 0x00000001) != 0);
85   }
86   /**
87    *
88    *
89    * <pre>
90    * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
91    * </pre>
92    *
93    * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
94    *
95    * @return The baseEjectionTime.
96    */
97   @java.lang.Override
getBaseEjectionTime()98   public com.google.cloud.compute.v1.Duration getBaseEjectionTime() {
99     return baseEjectionTime_ == null
100         ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
101         : baseEjectionTime_;
102   }
103   /**
104    *
105    *
106    * <pre>
107    * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
108    * </pre>
109    *
110    * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
111    */
112   @java.lang.Override
getBaseEjectionTimeOrBuilder()113   public com.google.cloud.compute.v1.DurationOrBuilder getBaseEjectionTimeOrBuilder() {
114     return baseEjectionTime_ == null
115         ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
116         : baseEjectionTime_;
117   }
118 
119   public static final int CONSECUTIVE_ERRORS_FIELD_NUMBER = 387193248;
120   private int consecutiveErrors_ = 0;
121   /**
122    *
123    *
124    * <pre>
125    * Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
126    * </pre>
127    *
128    * <code>optional int32 consecutive_errors = 387193248;</code>
129    *
130    * @return Whether the consecutiveErrors field is set.
131    */
132   @java.lang.Override
hasConsecutiveErrors()133   public boolean hasConsecutiveErrors() {
134     return ((bitField0_ & 0x00000002) != 0);
135   }
136   /**
137    *
138    *
139    * <pre>
140    * Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
141    * </pre>
142    *
143    * <code>optional int32 consecutive_errors = 387193248;</code>
144    *
145    * @return The consecutiveErrors.
146    */
147   @java.lang.Override
getConsecutiveErrors()148   public int getConsecutiveErrors() {
149     return consecutiveErrors_;
150   }
151 
152   public static final int CONSECUTIVE_GATEWAY_FAILURE_FIELD_NUMBER = 417504250;
153   private int consecutiveGatewayFailure_ = 0;
154   /**
155    *
156    *
157    * <pre>
158    * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
159    * </pre>
160    *
161    * <code>optional int32 consecutive_gateway_failure = 417504250;</code>
162    *
163    * @return Whether the consecutiveGatewayFailure field is set.
164    */
165   @java.lang.Override
hasConsecutiveGatewayFailure()166   public boolean hasConsecutiveGatewayFailure() {
167     return ((bitField0_ & 0x00000004) != 0);
168   }
169   /**
170    *
171    *
172    * <pre>
173    * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
174    * </pre>
175    *
176    * <code>optional int32 consecutive_gateway_failure = 417504250;</code>
177    *
178    * @return The consecutiveGatewayFailure.
179    */
180   @java.lang.Override
getConsecutiveGatewayFailure()181   public int getConsecutiveGatewayFailure() {
182     return consecutiveGatewayFailure_;
183   }
184 
185   public static final int ENFORCING_CONSECUTIVE_ERRORS_FIELD_NUMBER = 213133760;
186   private int enforcingConsecutiveErrors_ = 0;
187   /**
188    *
189    *
190    * <pre>
191    * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
192    * </pre>
193    *
194    * <code>optional int32 enforcing_consecutive_errors = 213133760;</code>
195    *
196    * @return Whether the enforcingConsecutiveErrors field is set.
197    */
198   @java.lang.Override
hasEnforcingConsecutiveErrors()199   public boolean hasEnforcingConsecutiveErrors() {
200     return ((bitField0_ & 0x00000008) != 0);
201   }
202   /**
203    *
204    *
205    * <pre>
206    * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
207    * </pre>
208    *
209    * <code>optional int32 enforcing_consecutive_errors = 213133760;</code>
210    *
211    * @return The enforcingConsecutiveErrors.
212    */
213   @java.lang.Override
getEnforcingConsecutiveErrors()214   public int getEnforcingConsecutiveErrors() {
215     return enforcingConsecutiveErrors_;
216   }
217 
218   public static final int ENFORCING_CONSECUTIVE_GATEWAY_FAILURE_FIELD_NUMBER = 394440666;
219   private int enforcingConsecutiveGatewayFailure_ = 0;
220   /**
221    *
222    *
223    * <pre>
224    * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
225    * </pre>
226    *
227    * <code>optional int32 enforcing_consecutive_gateway_failure = 394440666;</code>
228    *
229    * @return Whether the enforcingConsecutiveGatewayFailure field is set.
230    */
231   @java.lang.Override
hasEnforcingConsecutiveGatewayFailure()232   public boolean hasEnforcingConsecutiveGatewayFailure() {
233     return ((bitField0_ & 0x00000010) != 0);
234   }
235   /**
236    *
237    *
238    * <pre>
239    * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
240    * </pre>
241    *
242    * <code>optional int32 enforcing_consecutive_gateway_failure = 394440666;</code>
243    *
244    * @return The enforcingConsecutiveGatewayFailure.
245    */
246   @java.lang.Override
getEnforcingConsecutiveGatewayFailure()247   public int getEnforcingConsecutiveGatewayFailure() {
248     return enforcingConsecutiveGatewayFailure_;
249   }
250 
251   public static final int ENFORCING_SUCCESS_RATE_FIELD_NUMBER = 194508732;
252   private int enforcingSuccessRate_ = 0;
253   /**
254    *
255    *
256    * <pre>
257    * The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
258    * </pre>
259    *
260    * <code>optional int32 enforcing_success_rate = 194508732;</code>
261    *
262    * @return Whether the enforcingSuccessRate field is set.
263    */
264   @java.lang.Override
hasEnforcingSuccessRate()265   public boolean hasEnforcingSuccessRate() {
266     return ((bitField0_ & 0x00000020) != 0);
267   }
268   /**
269    *
270    *
271    * <pre>
272    * The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
273    * </pre>
274    *
275    * <code>optional int32 enforcing_success_rate = 194508732;</code>
276    *
277    * @return The enforcingSuccessRate.
278    */
279   @java.lang.Override
getEnforcingSuccessRate()280   public int getEnforcingSuccessRate() {
281     return enforcingSuccessRate_;
282   }
283 
284   public static final int INTERVAL_FIELD_NUMBER = 33547461;
285   private com.google.cloud.compute.v1.Duration interval_;
286   /**
287    *
288    *
289    * <pre>
290    * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
291    * </pre>
292    *
293    * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
294    *
295    * @return Whether the interval field is set.
296    */
297   @java.lang.Override
hasInterval()298   public boolean hasInterval() {
299     return ((bitField0_ & 0x00000040) != 0);
300   }
301   /**
302    *
303    *
304    * <pre>
305    * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
306    * </pre>
307    *
308    * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
309    *
310    * @return The interval.
311    */
312   @java.lang.Override
getInterval()313   public com.google.cloud.compute.v1.Duration getInterval() {
314     return interval_ == null
315         ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
316         : interval_;
317   }
318   /**
319    *
320    *
321    * <pre>
322    * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
323    * </pre>
324    *
325    * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
326    */
327   @java.lang.Override
getIntervalOrBuilder()328   public com.google.cloud.compute.v1.DurationOrBuilder getIntervalOrBuilder() {
329     return interval_ == null
330         ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
331         : interval_;
332   }
333 
334   public static final int MAX_EJECTION_PERCENT_FIELD_NUMBER = 18436888;
335   private int maxEjectionPercent_ = 0;
336   /**
337    *
338    *
339    * <pre>
340    * Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.
341    * </pre>
342    *
343    * <code>optional int32 max_ejection_percent = 18436888;</code>
344    *
345    * @return Whether the maxEjectionPercent field is set.
346    */
347   @java.lang.Override
hasMaxEjectionPercent()348   public boolean hasMaxEjectionPercent() {
349     return ((bitField0_ & 0x00000080) != 0);
350   }
351   /**
352    *
353    *
354    * <pre>
355    * Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.
356    * </pre>
357    *
358    * <code>optional int32 max_ejection_percent = 18436888;</code>
359    *
360    * @return The maxEjectionPercent.
361    */
362   @java.lang.Override
getMaxEjectionPercent()363   public int getMaxEjectionPercent() {
364     return maxEjectionPercent_;
365   }
366 
367   public static final int SUCCESS_RATE_MINIMUM_HOSTS_FIELD_NUMBER = 525766903;
368   private int successRateMinimumHosts_ = 0;
369   /**
370    *
371    *
372    * <pre>
373    * The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.
374    * </pre>
375    *
376    * <code>optional int32 success_rate_minimum_hosts = 525766903;</code>
377    *
378    * @return Whether the successRateMinimumHosts field is set.
379    */
380   @java.lang.Override
hasSuccessRateMinimumHosts()381   public boolean hasSuccessRateMinimumHosts() {
382     return ((bitField0_ & 0x00000100) != 0);
383   }
384   /**
385    *
386    *
387    * <pre>
388    * The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.
389    * </pre>
390    *
391    * <code>optional int32 success_rate_minimum_hosts = 525766903;</code>
392    *
393    * @return The successRateMinimumHosts.
394    */
395   @java.lang.Override
getSuccessRateMinimumHosts()396   public int getSuccessRateMinimumHosts() {
397     return successRateMinimumHosts_;
398   }
399 
400   public static final int SUCCESS_RATE_REQUEST_VOLUME_FIELD_NUMBER = 281425357;
401   private int successRateRequestVolume_ = 0;
402   /**
403    *
404    *
405    * <pre>
406    * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.
407    * </pre>
408    *
409    * <code>optional int32 success_rate_request_volume = 281425357;</code>
410    *
411    * @return Whether the successRateRequestVolume field is set.
412    */
413   @java.lang.Override
hasSuccessRateRequestVolume()414   public boolean hasSuccessRateRequestVolume() {
415     return ((bitField0_ & 0x00000200) != 0);
416   }
417   /**
418    *
419    *
420    * <pre>
421    * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.
422    * </pre>
423    *
424    * <code>optional int32 success_rate_request_volume = 281425357;</code>
425    *
426    * @return The successRateRequestVolume.
427    */
428   @java.lang.Override
getSuccessRateRequestVolume()429   public int getSuccessRateRequestVolume() {
430     return successRateRequestVolume_;
431   }
432 
433   public static final int SUCCESS_RATE_STDEV_FACTOR_FIELD_NUMBER = 174735773;
434   private int successRateStdevFactor_ = 0;
435   /**
436    *
437    *
438    * <pre>
439    * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.
440    * </pre>
441    *
442    * <code>optional int32 success_rate_stdev_factor = 174735773;</code>
443    *
444    * @return Whether the successRateStdevFactor field is set.
445    */
446   @java.lang.Override
hasSuccessRateStdevFactor()447   public boolean hasSuccessRateStdevFactor() {
448     return ((bitField0_ & 0x00000400) != 0);
449   }
450   /**
451    *
452    *
453    * <pre>
454    * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.
455    * </pre>
456    *
457    * <code>optional int32 success_rate_stdev_factor = 174735773;</code>
458    *
459    * @return The successRateStdevFactor.
460    */
461   @java.lang.Override
getSuccessRateStdevFactor()462   public int getSuccessRateStdevFactor() {
463     return successRateStdevFactor_;
464   }
465 
466   private byte memoizedIsInitialized = -1;
467 
468   @java.lang.Override
isInitialized()469   public final boolean isInitialized() {
470     byte isInitialized = memoizedIsInitialized;
471     if (isInitialized == 1) return true;
472     if (isInitialized == 0) return false;
473 
474     memoizedIsInitialized = 1;
475     return true;
476   }
477 
478   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)479   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
480     if (((bitField0_ & 0x00000080) != 0)) {
481       output.writeInt32(18436888, maxEjectionPercent_);
482     }
483     if (((bitField0_ & 0x00000040) != 0)) {
484       output.writeMessage(33547461, getInterval());
485     }
486     if (((bitField0_ & 0x00000001) != 0)) {
487       output.writeMessage(80997255, getBaseEjectionTime());
488     }
489     if (((bitField0_ & 0x00000400) != 0)) {
490       output.writeInt32(174735773, successRateStdevFactor_);
491     }
492     if (((bitField0_ & 0x00000020) != 0)) {
493       output.writeInt32(194508732, enforcingSuccessRate_);
494     }
495     if (((bitField0_ & 0x00000008) != 0)) {
496       output.writeInt32(213133760, enforcingConsecutiveErrors_);
497     }
498     if (((bitField0_ & 0x00000200) != 0)) {
499       output.writeInt32(281425357, successRateRequestVolume_);
500     }
501     if (((bitField0_ & 0x00000002) != 0)) {
502       output.writeInt32(387193248, consecutiveErrors_);
503     }
504     if (((bitField0_ & 0x00000010) != 0)) {
505       output.writeInt32(394440666, enforcingConsecutiveGatewayFailure_);
506     }
507     if (((bitField0_ & 0x00000004) != 0)) {
508       output.writeInt32(417504250, consecutiveGatewayFailure_);
509     }
510     if (((bitField0_ & 0x00000100) != 0)) {
511       output.writeInt32(525766903, successRateMinimumHosts_);
512     }
513     getUnknownFields().writeTo(output);
514   }
515 
516   @java.lang.Override
getSerializedSize()517   public int getSerializedSize() {
518     int size = memoizedSize;
519     if (size != -1) return size;
520 
521     size = 0;
522     if (((bitField0_ & 0x00000080) != 0)) {
523       size += com.google.protobuf.CodedOutputStream.computeInt32Size(18436888, maxEjectionPercent_);
524     }
525     if (((bitField0_ & 0x00000040) != 0)) {
526       size += com.google.protobuf.CodedOutputStream.computeMessageSize(33547461, getInterval());
527     }
528     if (((bitField0_ & 0x00000001) != 0)) {
529       size +=
530           com.google.protobuf.CodedOutputStream.computeMessageSize(80997255, getBaseEjectionTime());
531     }
532     if (((bitField0_ & 0x00000400) != 0)) {
533       size +=
534           com.google.protobuf.CodedOutputStream.computeInt32Size(
535               174735773, successRateStdevFactor_);
536     }
537     if (((bitField0_ & 0x00000020) != 0)) {
538       size +=
539           com.google.protobuf.CodedOutputStream.computeInt32Size(194508732, enforcingSuccessRate_);
540     }
541     if (((bitField0_ & 0x00000008) != 0)) {
542       size +=
543           com.google.protobuf.CodedOutputStream.computeInt32Size(
544               213133760, enforcingConsecutiveErrors_);
545     }
546     if (((bitField0_ & 0x00000200) != 0)) {
547       size +=
548           com.google.protobuf.CodedOutputStream.computeInt32Size(
549               281425357, successRateRequestVolume_);
550     }
551     if (((bitField0_ & 0x00000002) != 0)) {
552       size += com.google.protobuf.CodedOutputStream.computeInt32Size(387193248, consecutiveErrors_);
553     }
554     if (((bitField0_ & 0x00000010) != 0)) {
555       size +=
556           com.google.protobuf.CodedOutputStream.computeInt32Size(
557               394440666, enforcingConsecutiveGatewayFailure_);
558     }
559     if (((bitField0_ & 0x00000004) != 0)) {
560       size +=
561           com.google.protobuf.CodedOutputStream.computeInt32Size(
562               417504250, consecutiveGatewayFailure_);
563     }
564     if (((bitField0_ & 0x00000100) != 0)) {
565       size +=
566           com.google.protobuf.CodedOutputStream.computeInt32Size(
567               525766903, successRateMinimumHosts_);
568     }
569     size += getUnknownFields().getSerializedSize();
570     memoizedSize = size;
571     return size;
572   }
573 
574   @java.lang.Override
equals(final java.lang.Object obj)575   public boolean equals(final java.lang.Object obj) {
576     if (obj == this) {
577       return true;
578     }
579     if (!(obj instanceof com.google.cloud.compute.v1.OutlierDetection)) {
580       return super.equals(obj);
581     }
582     com.google.cloud.compute.v1.OutlierDetection other =
583         (com.google.cloud.compute.v1.OutlierDetection) obj;
584 
585     if (hasBaseEjectionTime() != other.hasBaseEjectionTime()) return false;
586     if (hasBaseEjectionTime()) {
587       if (!getBaseEjectionTime().equals(other.getBaseEjectionTime())) return false;
588     }
589     if (hasConsecutiveErrors() != other.hasConsecutiveErrors()) return false;
590     if (hasConsecutiveErrors()) {
591       if (getConsecutiveErrors() != other.getConsecutiveErrors()) return false;
592     }
593     if (hasConsecutiveGatewayFailure() != other.hasConsecutiveGatewayFailure()) return false;
594     if (hasConsecutiveGatewayFailure()) {
595       if (getConsecutiveGatewayFailure() != other.getConsecutiveGatewayFailure()) return false;
596     }
597     if (hasEnforcingConsecutiveErrors() != other.hasEnforcingConsecutiveErrors()) return false;
598     if (hasEnforcingConsecutiveErrors()) {
599       if (getEnforcingConsecutiveErrors() != other.getEnforcingConsecutiveErrors()) return false;
600     }
601     if (hasEnforcingConsecutiveGatewayFailure() != other.hasEnforcingConsecutiveGatewayFailure())
602       return false;
603     if (hasEnforcingConsecutiveGatewayFailure()) {
604       if (getEnforcingConsecutiveGatewayFailure() != other.getEnforcingConsecutiveGatewayFailure())
605         return false;
606     }
607     if (hasEnforcingSuccessRate() != other.hasEnforcingSuccessRate()) return false;
608     if (hasEnforcingSuccessRate()) {
609       if (getEnforcingSuccessRate() != other.getEnforcingSuccessRate()) return false;
610     }
611     if (hasInterval() != other.hasInterval()) return false;
612     if (hasInterval()) {
613       if (!getInterval().equals(other.getInterval())) return false;
614     }
615     if (hasMaxEjectionPercent() != other.hasMaxEjectionPercent()) return false;
616     if (hasMaxEjectionPercent()) {
617       if (getMaxEjectionPercent() != other.getMaxEjectionPercent()) return false;
618     }
619     if (hasSuccessRateMinimumHosts() != other.hasSuccessRateMinimumHosts()) return false;
620     if (hasSuccessRateMinimumHosts()) {
621       if (getSuccessRateMinimumHosts() != other.getSuccessRateMinimumHosts()) return false;
622     }
623     if (hasSuccessRateRequestVolume() != other.hasSuccessRateRequestVolume()) return false;
624     if (hasSuccessRateRequestVolume()) {
625       if (getSuccessRateRequestVolume() != other.getSuccessRateRequestVolume()) return false;
626     }
627     if (hasSuccessRateStdevFactor() != other.hasSuccessRateStdevFactor()) return false;
628     if (hasSuccessRateStdevFactor()) {
629       if (getSuccessRateStdevFactor() != other.getSuccessRateStdevFactor()) return false;
630     }
631     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
632     return true;
633   }
634 
635   @java.lang.Override
hashCode()636   public int hashCode() {
637     if (memoizedHashCode != 0) {
638       return memoizedHashCode;
639     }
640     int hash = 41;
641     hash = (19 * hash) + getDescriptor().hashCode();
642     if (hasBaseEjectionTime()) {
643       hash = (37 * hash) + BASE_EJECTION_TIME_FIELD_NUMBER;
644       hash = (53 * hash) + getBaseEjectionTime().hashCode();
645     }
646     if (hasConsecutiveErrors()) {
647       hash = (37 * hash) + CONSECUTIVE_ERRORS_FIELD_NUMBER;
648       hash = (53 * hash) + getConsecutiveErrors();
649     }
650     if (hasConsecutiveGatewayFailure()) {
651       hash = (37 * hash) + CONSECUTIVE_GATEWAY_FAILURE_FIELD_NUMBER;
652       hash = (53 * hash) + getConsecutiveGatewayFailure();
653     }
654     if (hasEnforcingConsecutiveErrors()) {
655       hash = (37 * hash) + ENFORCING_CONSECUTIVE_ERRORS_FIELD_NUMBER;
656       hash = (53 * hash) + getEnforcingConsecutiveErrors();
657     }
658     if (hasEnforcingConsecutiveGatewayFailure()) {
659       hash = (37 * hash) + ENFORCING_CONSECUTIVE_GATEWAY_FAILURE_FIELD_NUMBER;
660       hash = (53 * hash) + getEnforcingConsecutiveGatewayFailure();
661     }
662     if (hasEnforcingSuccessRate()) {
663       hash = (37 * hash) + ENFORCING_SUCCESS_RATE_FIELD_NUMBER;
664       hash = (53 * hash) + getEnforcingSuccessRate();
665     }
666     if (hasInterval()) {
667       hash = (37 * hash) + INTERVAL_FIELD_NUMBER;
668       hash = (53 * hash) + getInterval().hashCode();
669     }
670     if (hasMaxEjectionPercent()) {
671       hash = (37 * hash) + MAX_EJECTION_PERCENT_FIELD_NUMBER;
672       hash = (53 * hash) + getMaxEjectionPercent();
673     }
674     if (hasSuccessRateMinimumHosts()) {
675       hash = (37 * hash) + SUCCESS_RATE_MINIMUM_HOSTS_FIELD_NUMBER;
676       hash = (53 * hash) + getSuccessRateMinimumHosts();
677     }
678     if (hasSuccessRateRequestVolume()) {
679       hash = (37 * hash) + SUCCESS_RATE_REQUEST_VOLUME_FIELD_NUMBER;
680       hash = (53 * hash) + getSuccessRateRequestVolume();
681     }
682     if (hasSuccessRateStdevFactor()) {
683       hash = (37 * hash) + SUCCESS_RATE_STDEV_FACTOR_FIELD_NUMBER;
684       hash = (53 * hash) + getSuccessRateStdevFactor();
685     }
686     hash = (29 * hash) + getUnknownFields().hashCode();
687     memoizedHashCode = hash;
688     return hash;
689   }
690 
parseFrom(java.nio.ByteBuffer data)691   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(java.nio.ByteBuffer data)
692       throws com.google.protobuf.InvalidProtocolBufferException {
693     return PARSER.parseFrom(data);
694   }
695 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)696   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(
697       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
698       throws com.google.protobuf.InvalidProtocolBufferException {
699     return PARSER.parseFrom(data, extensionRegistry);
700   }
701 
parseFrom( com.google.protobuf.ByteString data)702   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(
703       com.google.protobuf.ByteString data)
704       throws com.google.protobuf.InvalidProtocolBufferException {
705     return PARSER.parseFrom(data);
706   }
707 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)708   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(
709       com.google.protobuf.ByteString data,
710       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
711       throws com.google.protobuf.InvalidProtocolBufferException {
712     return PARSER.parseFrom(data, extensionRegistry);
713   }
714 
parseFrom(byte[] data)715   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(byte[] data)
716       throws com.google.protobuf.InvalidProtocolBufferException {
717     return PARSER.parseFrom(data);
718   }
719 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)720   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(
721       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
722       throws com.google.protobuf.InvalidProtocolBufferException {
723     return PARSER.parseFrom(data, extensionRegistry);
724   }
725 
parseFrom(java.io.InputStream input)726   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(java.io.InputStream input)
727       throws java.io.IOException {
728     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
729   }
730 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)731   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(
732       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
733       throws java.io.IOException {
734     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
735         PARSER, input, extensionRegistry);
736   }
737 
parseDelimitedFrom( java.io.InputStream input)738   public static com.google.cloud.compute.v1.OutlierDetection parseDelimitedFrom(
739       java.io.InputStream input) throws java.io.IOException {
740     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
741   }
742 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)743   public static com.google.cloud.compute.v1.OutlierDetection parseDelimitedFrom(
744       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
745       throws java.io.IOException {
746     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
747         PARSER, input, extensionRegistry);
748   }
749 
parseFrom( com.google.protobuf.CodedInputStream input)750   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(
751       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
752     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
753   }
754 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)755   public static com.google.cloud.compute.v1.OutlierDetection parseFrom(
756       com.google.protobuf.CodedInputStream input,
757       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
758       throws java.io.IOException {
759     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
760         PARSER, input, extensionRegistry);
761   }
762 
763   @java.lang.Override
newBuilderForType()764   public Builder newBuilderForType() {
765     return newBuilder();
766   }
767 
newBuilder()768   public static Builder newBuilder() {
769     return DEFAULT_INSTANCE.toBuilder();
770   }
771 
newBuilder(com.google.cloud.compute.v1.OutlierDetection prototype)772   public static Builder newBuilder(com.google.cloud.compute.v1.OutlierDetection prototype) {
773     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
774   }
775 
776   @java.lang.Override
toBuilder()777   public Builder toBuilder() {
778     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
779   }
780 
781   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)782   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
783     Builder builder = new Builder(parent);
784     return builder;
785   }
786   /**
787    *
788    *
789    * <pre>
790    * Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service.
791    * </pre>
792    *
793    * Protobuf type {@code google.cloud.compute.v1.OutlierDetection}
794    */
795   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
796       implements
797       // @@protoc_insertion_point(builder_implements:google.cloud.compute.v1.OutlierDetection)
798       com.google.cloud.compute.v1.OutlierDetectionOrBuilder {
getDescriptor()799     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
800       return com.google.cloud.compute.v1.Compute
801           .internal_static_google_cloud_compute_v1_OutlierDetection_descriptor;
802     }
803 
804     @java.lang.Override
805     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()806         internalGetFieldAccessorTable() {
807       return com.google.cloud.compute.v1.Compute
808           .internal_static_google_cloud_compute_v1_OutlierDetection_fieldAccessorTable
809           .ensureFieldAccessorsInitialized(
810               com.google.cloud.compute.v1.OutlierDetection.class,
811               com.google.cloud.compute.v1.OutlierDetection.Builder.class);
812     }
813 
814     // Construct using com.google.cloud.compute.v1.OutlierDetection.newBuilder()
Builder()815     private Builder() {
816       maybeForceBuilderInitialization();
817     }
818 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)819     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
820       super(parent);
821       maybeForceBuilderInitialization();
822     }
823 
maybeForceBuilderInitialization()824     private void maybeForceBuilderInitialization() {
825       if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
826         getBaseEjectionTimeFieldBuilder();
827         getIntervalFieldBuilder();
828       }
829     }
830 
831     @java.lang.Override
clear()832     public Builder clear() {
833       super.clear();
834       bitField0_ = 0;
835       baseEjectionTime_ = null;
836       if (baseEjectionTimeBuilder_ != null) {
837         baseEjectionTimeBuilder_.dispose();
838         baseEjectionTimeBuilder_ = null;
839       }
840       consecutiveErrors_ = 0;
841       consecutiveGatewayFailure_ = 0;
842       enforcingConsecutiveErrors_ = 0;
843       enforcingConsecutiveGatewayFailure_ = 0;
844       enforcingSuccessRate_ = 0;
845       interval_ = null;
846       if (intervalBuilder_ != null) {
847         intervalBuilder_.dispose();
848         intervalBuilder_ = null;
849       }
850       maxEjectionPercent_ = 0;
851       successRateMinimumHosts_ = 0;
852       successRateRequestVolume_ = 0;
853       successRateStdevFactor_ = 0;
854       return this;
855     }
856 
857     @java.lang.Override
getDescriptorForType()858     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
859       return com.google.cloud.compute.v1.Compute
860           .internal_static_google_cloud_compute_v1_OutlierDetection_descriptor;
861     }
862 
863     @java.lang.Override
getDefaultInstanceForType()864     public com.google.cloud.compute.v1.OutlierDetection getDefaultInstanceForType() {
865       return com.google.cloud.compute.v1.OutlierDetection.getDefaultInstance();
866     }
867 
868     @java.lang.Override
build()869     public com.google.cloud.compute.v1.OutlierDetection build() {
870       com.google.cloud.compute.v1.OutlierDetection result = buildPartial();
871       if (!result.isInitialized()) {
872         throw newUninitializedMessageException(result);
873       }
874       return result;
875     }
876 
877     @java.lang.Override
buildPartial()878     public com.google.cloud.compute.v1.OutlierDetection buildPartial() {
879       com.google.cloud.compute.v1.OutlierDetection result =
880           new com.google.cloud.compute.v1.OutlierDetection(this);
881       if (bitField0_ != 0) {
882         buildPartial0(result);
883       }
884       onBuilt();
885       return result;
886     }
887 
buildPartial0(com.google.cloud.compute.v1.OutlierDetection result)888     private void buildPartial0(com.google.cloud.compute.v1.OutlierDetection result) {
889       int from_bitField0_ = bitField0_;
890       int to_bitField0_ = 0;
891       if (((from_bitField0_ & 0x00000001) != 0)) {
892         result.baseEjectionTime_ =
893             baseEjectionTimeBuilder_ == null ? baseEjectionTime_ : baseEjectionTimeBuilder_.build();
894         to_bitField0_ |= 0x00000001;
895       }
896       if (((from_bitField0_ & 0x00000002) != 0)) {
897         result.consecutiveErrors_ = consecutiveErrors_;
898         to_bitField0_ |= 0x00000002;
899       }
900       if (((from_bitField0_ & 0x00000004) != 0)) {
901         result.consecutiveGatewayFailure_ = consecutiveGatewayFailure_;
902         to_bitField0_ |= 0x00000004;
903       }
904       if (((from_bitField0_ & 0x00000008) != 0)) {
905         result.enforcingConsecutiveErrors_ = enforcingConsecutiveErrors_;
906         to_bitField0_ |= 0x00000008;
907       }
908       if (((from_bitField0_ & 0x00000010) != 0)) {
909         result.enforcingConsecutiveGatewayFailure_ = enforcingConsecutiveGatewayFailure_;
910         to_bitField0_ |= 0x00000010;
911       }
912       if (((from_bitField0_ & 0x00000020) != 0)) {
913         result.enforcingSuccessRate_ = enforcingSuccessRate_;
914         to_bitField0_ |= 0x00000020;
915       }
916       if (((from_bitField0_ & 0x00000040) != 0)) {
917         result.interval_ = intervalBuilder_ == null ? interval_ : intervalBuilder_.build();
918         to_bitField0_ |= 0x00000040;
919       }
920       if (((from_bitField0_ & 0x00000080) != 0)) {
921         result.maxEjectionPercent_ = maxEjectionPercent_;
922         to_bitField0_ |= 0x00000080;
923       }
924       if (((from_bitField0_ & 0x00000100) != 0)) {
925         result.successRateMinimumHosts_ = successRateMinimumHosts_;
926         to_bitField0_ |= 0x00000100;
927       }
928       if (((from_bitField0_ & 0x00000200) != 0)) {
929         result.successRateRequestVolume_ = successRateRequestVolume_;
930         to_bitField0_ |= 0x00000200;
931       }
932       if (((from_bitField0_ & 0x00000400) != 0)) {
933         result.successRateStdevFactor_ = successRateStdevFactor_;
934         to_bitField0_ |= 0x00000400;
935       }
936       result.bitField0_ |= to_bitField0_;
937     }
938 
939     @java.lang.Override
clone()940     public Builder clone() {
941       return super.clone();
942     }
943 
944     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)945     public Builder setField(
946         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
947       return super.setField(field, value);
948     }
949 
950     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)951     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
952       return super.clearField(field);
953     }
954 
955     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)956     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
957       return super.clearOneof(oneof);
958     }
959 
960     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)961     public Builder setRepeatedField(
962         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
963       return super.setRepeatedField(field, index, value);
964     }
965 
966     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)967     public Builder addRepeatedField(
968         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
969       return super.addRepeatedField(field, value);
970     }
971 
972     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)973     public Builder mergeFrom(com.google.protobuf.Message other) {
974       if (other instanceof com.google.cloud.compute.v1.OutlierDetection) {
975         return mergeFrom((com.google.cloud.compute.v1.OutlierDetection) other);
976       } else {
977         super.mergeFrom(other);
978         return this;
979       }
980     }
981 
mergeFrom(com.google.cloud.compute.v1.OutlierDetection other)982     public Builder mergeFrom(com.google.cloud.compute.v1.OutlierDetection other) {
983       if (other == com.google.cloud.compute.v1.OutlierDetection.getDefaultInstance()) return this;
984       if (other.hasBaseEjectionTime()) {
985         mergeBaseEjectionTime(other.getBaseEjectionTime());
986       }
987       if (other.hasConsecutiveErrors()) {
988         setConsecutiveErrors(other.getConsecutiveErrors());
989       }
990       if (other.hasConsecutiveGatewayFailure()) {
991         setConsecutiveGatewayFailure(other.getConsecutiveGatewayFailure());
992       }
993       if (other.hasEnforcingConsecutiveErrors()) {
994         setEnforcingConsecutiveErrors(other.getEnforcingConsecutiveErrors());
995       }
996       if (other.hasEnforcingConsecutiveGatewayFailure()) {
997         setEnforcingConsecutiveGatewayFailure(other.getEnforcingConsecutiveGatewayFailure());
998       }
999       if (other.hasEnforcingSuccessRate()) {
1000         setEnforcingSuccessRate(other.getEnforcingSuccessRate());
1001       }
1002       if (other.hasInterval()) {
1003         mergeInterval(other.getInterval());
1004       }
1005       if (other.hasMaxEjectionPercent()) {
1006         setMaxEjectionPercent(other.getMaxEjectionPercent());
1007       }
1008       if (other.hasSuccessRateMinimumHosts()) {
1009         setSuccessRateMinimumHosts(other.getSuccessRateMinimumHosts());
1010       }
1011       if (other.hasSuccessRateRequestVolume()) {
1012         setSuccessRateRequestVolume(other.getSuccessRateRequestVolume());
1013       }
1014       if (other.hasSuccessRateStdevFactor()) {
1015         setSuccessRateStdevFactor(other.getSuccessRateStdevFactor());
1016       }
1017       this.mergeUnknownFields(other.getUnknownFields());
1018       onChanged();
1019       return this;
1020     }
1021 
1022     @java.lang.Override
isInitialized()1023     public final boolean isInitialized() {
1024       return true;
1025     }
1026 
1027     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1028     public Builder mergeFrom(
1029         com.google.protobuf.CodedInputStream input,
1030         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1031         throws java.io.IOException {
1032       if (extensionRegistry == null) {
1033         throw new java.lang.NullPointerException();
1034       }
1035       try {
1036         boolean done = false;
1037         while (!done) {
1038           int tag = input.readTag();
1039           switch (tag) {
1040             case 0:
1041               done = true;
1042               break;
1043             case 147495104:
1044               {
1045                 maxEjectionPercent_ = input.readInt32();
1046                 bitField0_ |= 0x00000080;
1047                 break;
1048               } // case 147495104
1049             case 268379690:
1050               {
1051                 input.readMessage(getIntervalFieldBuilder().getBuilder(), extensionRegistry);
1052                 bitField0_ |= 0x00000040;
1053                 break;
1054               } // case 268379690
1055             case 647978042:
1056               {
1057                 input.readMessage(
1058                     getBaseEjectionTimeFieldBuilder().getBuilder(), extensionRegistry);
1059                 bitField0_ |= 0x00000001;
1060                 break;
1061               } // case 647978042
1062             case 1397886184:
1063               {
1064                 successRateStdevFactor_ = input.readInt32();
1065                 bitField0_ |= 0x00000400;
1066                 break;
1067               } // case 1397886184
1068             case 1556069856:
1069               {
1070                 enforcingSuccessRate_ = input.readInt32();
1071                 bitField0_ |= 0x00000020;
1072                 break;
1073               } // case 1556069856
1074             case 1705070080:
1075               {
1076                 enforcingConsecutiveErrors_ = input.readInt32();
1077                 bitField0_ |= 0x00000008;
1078                 break;
1079               } // case 1705070080
1080             case -2043564440:
1081               {
1082                 successRateRequestVolume_ = input.readInt32();
1083                 bitField0_ |= 0x00000200;
1084                 break;
1085               } // case -2043564440
1086             case -1197421312:
1087               {
1088                 consecutiveErrors_ = input.readInt32();
1089                 bitField0_ |= 0x00000002;
1090                 break;
1091               } // case -1197421312
1092             case -1139441968:
1093               {
1094                 enforcingConsecutiveGatewayFailure_ = input.readInt32();
1095                 bitField0_ |= 0x00000010;
1096                 break;
1097               } // case -1139441968
1098             case -954933296:
1099               {
1100                 consecutiveGatewayFailure_ = input.readInt32();
1101                 bitField0_ |= 0x00000004;
1102                 break;
1103               } // case -954933296
1104             case -88832072:
1105               {
1106                 successRateMinimumHosts_ = input.readInt32();
1107                 bitField0_ |= 0x00000100;
1108                 break;
1109               } // case -88832072
1110             default:
1111               {
1112                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
1113                   done = true; // was an endgroup tag
1114                 }
1115                 break;
1116               } // default:
1117           } // switch (tag)
1118         } // while (!done)
1119       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1120         throw e.unwrapIOException();
1121       } finally {
1122         onChanged();
1123       } // finally
1124       return this;
1125     }
1126 
1127     private int bitField0_;
1128 
1129     private com.google.cloud.compute.v1.Duration baseEjectionTime_;
1130     private com.google.protobuf.SingleFieldBuilderV3<
1131             com.google.cloud.compute.v1.Duration,
1132             com.google.cloud.compute.v1.Duration.Builder,
1133             com.google.cloud.compute.v1.DurationOrBuilder>
1134         baseEjectionTimeBuilder_;
1135     /**
1136      *
1137      *
1138      * <pre>
1139      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1140      * </pre>
1141      *
1142      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1143      *
1144      * @return Whether the baseEjectionTime field is set.
1145      */
hasBaseEjectionTime()1146     public boolean hasBaseEjectionTime() {
1147       return ((bitField0_ & 0x00000001) != 0);
1148     }
1149     /**
1150      *
1151      *
1152      * <pre>
1153      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1154      * </pre>
1155      *
1156      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1157      *
1158      * @return The baseEjectionTime.
1159      */
getBaseEjectionTime()1160     public com.google.cloud.compute.v1.Duration getBaseEjectionTime() {
1161       if (baseEjectionTimeBuilder_ == null) {
1162         return baseEjectionTime_ == null
1163             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
1164             : baseEjectionTime_;
1165       } else {
1166         return baseEjectionTimeBuilder_.getMessage();
1167       }
1168     }
1169     /**
1170      *
1171      *
1172      * <pre>
1173      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1174      * </pre>
1175      *
1176      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1177      */
setBaseEjectionTime(com.google.cloud.compute.v1.Duration value)1178     public Builder setBaseEjectionTime(com.google.cloud.compute.v1.Duration value) {
1179       if (baseEjectionTimeBuilder_ == null) {
1180         if (value == null) {
1181           throw new NullPointerException();
1182         }
1183         baseEjectionTime_ = value;
1184       } else {
1185         baseEjectionTimeBuilder_.setMessage(value);
1186       }
1187       bitField0_ |= 0x00000001;
1188       onChanged();
1189       return this;
1190     }
1191     /**
1192      *
1193      *
1194      * <pre>
1195      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1196      * </pre>
1197      *
1198      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1199      */
setBaseEjectionTime( com.google.cloud.compute.v1.Duration.Builder builderForValue)1200     public Builder setBaseEjectionTime(
1201         com.google.cloud.compute.v1.Duration.Builder builderForValue) {
1202       if (baseEjectionTimeBuilder_ == null) {
1203         baseEjectionTime_ = builderForValue.build();
1204       } else {
1205         baseEjectionTimeBuilder_.setMessage(builderForValue.build());
1206       }
1207       bitField0_ |= 0x00000001;
1208       onChanged();
1209       return this;
1210     }
1211     /**
1212      *
1213      *
1214      * <pre>
1215      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1216      * </pre>
1217      *
1218      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1219      */
mergeBaseEjectionTime(com.google.cloud.compute.v1.Duration value)1220     public Builder mergeBaseEjectionTime(com.google.cloud.compute.v1.Duration value) {
1221       if (baseEjectionTimeBuilder_ == null) {
1222         if (((bitField0_ & 0x00000001) != 0)
1223             && baseEjectionTime_ != null
1224             && baseEjectionTime_ != com.google.cloud.compute.v1.Duration.getDefaultInstance()) {
1225           getBaseEjectionTimeBuilder().mergeFrom(value);
1226         } else {
1227           baseEjectionTime_ = value;
1228         }
1229       } else {
1230         baseEjectionTimeBuilder_.mergeFrom(value);
1231       }
1232       bitField0_ |= 0x00000001;
1233       onChanged();
1234       return this;
1235     }
1236     /**
1237      *
1238      *
1239      * <pre>
1240      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1241      * </pre>
1242      *
1243      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1244      */
clearBaseEjectionTime()1245     public Builder clearBaseEjectionTime() {
1246       bitField0_ = (bitField0_ & ~0x00000001);
1247       baseEjectionTime_ = null;
1248       if (baseEjectionTimeBuilder_ != null) {
1249         baseEjectionTimeBuilder_.dispose();
1250         baseEjectionTimeBuilder_ = null;
1251       }
1252       onChanged();
1253       return this;
1254     }
1255     /**
1256      *
1257      *
1258      * <pre>
1259      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1260      * </pre>
1261      *
1262      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1263      */
getBaseEjectionTimeBuilder()1264     public com.google.cloud.compute.v1.Duration.Builder getBaseEjectionTimeBuilder() {
1265       bitField0_ |= 0x00000001;
1266       onChanged();
1267       return getBaseEjectionTimeFieldBuilder().getBuilder();
1268     }
1269     /**
1270      *
1271      *
1272      * <pre>
1273      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1274      * </pre>
1275      *
1276      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1277      */
getBaseEjectionTimeOrBuilder()1278     public com.google.cloud.compute.v1.DurationOrBuilder getBaseEjectionTimeOrBuilder() {
1279       if (baseEjectionTimeBuilder_ != null) {
1280         return baseEjectionTimeBuilder_.getMessageOrBuilder();
1281       } else {
1282         return baseEjectionTime_ == null
1283             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
1284             : baseEjectionTime_;
1285       }
1286     }
1287     /**
1288      *
1289      *
1290      * <pre>
1291      * The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s.
1292      * </pre>
1293      *
1294      * <code>optional .google.cloud.compute.v1.Duration base_ejection_time = 80997255;</code>
1295      */
1296     private com.google.protobuf.SingleFieldBuilderV3<
1297             com.google.cloud.compute.v1.Duration,
1298             com.google.cloud.compute.v1.Duration.Builder,
1299             com.google.cloud.compute.v1.DurationOrBuilder>
getBaseEjectionTimeFieldBuilder()1300         getBaseEjectionTimeFieldBuilder() {
1301       if (baseEjectionTimeBuilder_ == null) {
1302         baseEjectionTimeBuilder_ =
1303             new com.google.protobuf.SingleFieldBuilderV3<
1304                 com.google.cloud.compute.v1.Duration,
1305                 com.google.cloud.compute.v1.Duration.Builder,
1306                 com.google.cloud.compute.v1.DurationOrBuilder>(
1307                 getBaseEjectionTime(), getParentForChildren(), isClean());
1308         baseEjectionTime_ = null;
1309       }
1310       return baseEjectionTimeBuilder_;
1311     }
1312 
1313     private int consecutiveErrors_;
1314     /**
1315      *
1316      *
1317      * <pre>
1318      * Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1319      * </pre>
1320      *
1321      * <code>optional int32 consecutive_errors = 387193248;</code>
1322      *
1323      * @return Whether the consecutiveErrors field is set.
1324      */
1325     @java.lang.Override
hasConsecutiveErrors()1326     public boolean hasConsecutiveErrors() {
1327       return ((bitField0_ & 0x00000002) != 0);
1328     }
1329     /**
1330      *
1331      *
1332      * <pre>
1333      * Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1334      * </pre>
1335      *
1336      * <code>optional int32 consecutive_errors = 387193248;</code>
1337      *
1338      * @return The consecutiveErrors.
1339      */
1340     @java.lang.Override
getConsecutiveErrors()1341     public int getConsecutiveErrors() {
1342       return consecutiveErrors_;
1343     }
1344     /**
1345      *
1346      *
1347      * <pre>
1348      * Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1349      * </pre>
1350      *
1351      * <code>optional int32 consecutive_errors = 387193248;</code>
1352      *
1353      * @param value The consecutiveErrors to set.
1354      * @return This builder for chaining.
1355      */
setConsecutiveErrors(int value)1356     public Builder setConsecutiveErrors(int value) {
1357 
1358       consecutiveErrors_ = value;
1359       bitField0_ |= 0x00000002;
1360       onChanged();
1361       return this;
1362     }
1363     /**
1364      *
1365      *
1366      * <pre>
1367      * Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1368      * </pre>
1369      *
1370      * <code>optional int32 consecutive_errors = 387193248;</code>
1371      *
1372      * @return This builder for chaining.
1373      */
clearConsecutiveErrors()1374     public Builder clearConsecutiveErrors() {
1375       bitField0_ = (bitField0_ & ~0x00000002);
1376       consecutiveErrors_ = 0;
1377       onChanged();
1378       return this;
1379     }
1380 
1381     private int consecutiveGatewayFailure_;
1382     /**
1383      *
1384      *
1385      * <pre>
1386      * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1387      * </pre>
1388      *
1389      * <code>optional int32 consecutive_gateway_failure = 417504250;</code>
1390      *
1391      * @return Whether the consecutiveGatewayFailure field is set.
1392      */
1393     @java.lang.Override
hasConsecutiveGatewayFailure()1394     public boolean hasConsecutiveGatewayFailure() {
1395       return ((bitField0_ & 0x00000004) != 0);
1396     }
1397     /**
1398      *
1399      *
1400      * <pre>
1401      * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1402      * </pre>
1403      *
1404      * <code>optional int32 consecutive_gateway_failure = 417504250;</code>
1405      *
1406      * @return The consecutiveGatewayFailure.
1407      */
1408     @java.lang.Override
getConsecutiveGatewayFailure()1409     public int getConsecutiveGatewayFailure() {
1410       return consecutiveGatewayFailure_;
1411     }
1412     /**
1413      *
1414      *
1415      * <pre>
1416      * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1417      * </pre>
1418      *
1419      * <code>optional int32 consecutive_gateway_failure = 417504250;</code>
1420      *
1421      * @param value The consecutiveGatewayFailure to set.
1422      * @return This builder for chaining.
1423      */
setConsecutiveGatewayFailure(int value)1424     public Builder setConsecutiveGatewayFailure(int value) {
1425 
1426       consecutiveGatewayFailure_ = value;
1427       bitField0_ |= 0x00000004;
1428       onChanged();
1429       return this;
1430     }
1431     /**
1432      *
1433      *
1434      * <pre>
1435      * The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1436      * </pre>
1437      *
1438      * <code>optional int32 consecutive_gateway_failure = 417504250;</code>
1439      *
1440      * @return This builder for chaining.
1441      */
clearConsecutiveGatewayFailure()1442     public Builder clearConsecutiveGatewayFailure() {
1443       bitField0_ = (bitField0_ & ~0x00000004);
1444       consecutiveGatewayFailure_ = 0;
1445       onChanged();
1446       return this;
1447     }
1448 
1449     private int enforcingConsecutiveErrors_;
1450     /**
1451      *
1452      *
1453      * <pre>
1454      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1455      * </pre>
1456      *
1457      * <code>optional int32 enforcing_consecutive_errors = 213133760;</code>
1458      *
1459      * @return Whether the enforcingConsecutiveErrors field is set.
1460      */
1461     @java.lang.Override
hasEnforcingConsecutiveErrors()1462     public boolean hasEnforcingConsecutiveErrors() {
1463       return ((bitField0_ & 0x00000008) != 0);
1464     }
1465     /**
1466      *
1467      *
1468      * <pre>
1469      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1470      * </pre>
1471      *
1472      * <code>optional int32 enforcing_consecutive_errors = 213133760;</code>
1473      *
1474      * @return The enforcingConsecutiveErrors.
1475      */
1476     @java.lang.Override
getEnforcingConsecutiveErrors()1477     public int getEnforcingConsecutiveErrors() {
1478       return enforcingConsecutiveErrors_;
1479     }
1480     /**
1481      *
1482      *
1483      * <pre>
1484      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1485      * </pre>
1486      *
1487      * <code>optional int32 enforcing_consecutive_errors = 213133760;</code>
1488      *
1489      * @param value The enforcingConsecutiveErrors to set.
1490      * @return This builder for chaining.
1491      */
setEnforcingConsecutiveErrors(int value)1492     public Builder setEnforcingConsecutiveErrors(int value) {
1493 
1494       enforcingConsecutiveErrors_ = value;
1495       bitField0_ |= 0x00000008;
1496       onChanged();
1497       return this;
1498     }
1499     /**
1500      *
1501      *
1502      * <pre>
1503      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1504      * </pre>
1505      *
1506      * <code>optional int32 enforcing_consecutive_errors = 213133760;</code>
1507      *
1508      * @return This builder for chaining.
1509      */
clearEnforcingConsecutiveErrors()1510     public Builder clearEnforcingConsecutiveErrors() {
1511       bitField0_ = (bitField0_ & ~0x00000008);
1512       enforcingConsecutiveErrors_ = 0;
1513       onChanged();
1514       return this;
1515     }
1516 
1517     private int enforcingConsecutiveGatewayFailure_;
1518     /**
1519      *
1520      *
1521      * <pre>
1522      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1523      * </pre>
1524      *
1525      * <code>optional int32 enforcing_consecutive_gateway_failure = 394440666;</code>
1526      *
1527      * @return Whether the enforcingConsecutiveGatewayFailure field is set.
1528      */
1529     @java.lang.Override
hasEnforcingConsecutiveGatewayFailure()1530     public boolean hasEnforcingConsecutiveGatewayFailure() {
1531       return ((bitField0_ & 0x00000010) != 0);
1532     }
1533     /**
1534      *
1535      *
1536      * <pre>
1537      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1538      * </pre>
1539      *
1540      * <code>optional int32 enforcing_consecutive_gateway_failure = 394440666;</code>
1541      *
1542      * @return The enforcingConsecutiveGatewayFailure.
1543      */
1544     @java.lang.Override
getEnforcingConsecutiveGatewayFailure()1545     public int getEnforcingConsecutiveGatewayFailure() {
1546       return enforcingConsecutiveGatewayFailure_;
1547     }
1548     /**
1549      *
1550      *
1551      * <pre>
1552      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1553      * </pre>
1554      *
1555      * <code>optional int32 enforcing_consecutive_gateway_failure = 394440666;</code>
1556      *
1557      * @param value The enforcingConsecutiveGatewayFailure to set.
1558      * @return This builder for chaining.
1559      */
setEnforcingConsecutiveGatewayFailure(int value)1560     public Builder setEnforcingConsecutiveGatewayFailure(int value) {
1561 
1562       enforcingConsecutiveGatewayFailure_ = value;
1563       bitField0_ |= 0x00000010;
1564       onChanged();
1565       return this;
1566     }
1567     /**
1568      *
1569      *
1570      * <pre>
1571      * The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
1572      * </pre>
1573      *
1574      * <code>optional int32 enforcing_consecutive_gateway_failure = 394440666;</code>
1575      *
1576      * @return This builder for chaining.
1577      */
clearEnforcingConsecutiveGatewayFailure()1578     public Builder clearEnforcingConsecutiveGatewayFailure() {
1579       bitField0_ = (bitField0_ & ~0x00000010);
1580       enforcingConsecutiveGatewayFailure_ = 0;
1581       onChanged();
1582       return this;
1583     }
1584 
1585     private int enforcingSuccessRate_;
1586     /**
1587      *
1588      *
1589      * <pre>
1590      * The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
1591      * </pre>
1592      *
1593      * <code>optional int32 enforcing_success_rate = 194508732;</code>
1594      *
1595      * @return Whether the enforcingSuccessRate field is set.
1596      */
1597     @java.lang.Override
hasEnforcingSuccessRate()1598     public boolean hasEnforcingSuccessRate() {
1599       return ((bitField0_ & 0x00000020) != 0);
1600     }
1601     /**
1602      *
1603      *
1604      * <pre>
1605      * The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
1606      * </pre>
1607      *
1608      * <code>optional int32 enforcing_success_rate = 194508732;</code>
1609      *
1610      * @return The enforcingSuccessRate.
1611      */
1612     @java.lang.Override
getEnforcingSuccessRate()1613     public int getEnforcingSuccessRate() {
1614       return enforcingSuccessRate_;
1615     }
1616     /**
1617      *
1618      *
1619      * <pre>
1620      * The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
1621      * </pre>
1622      *
1623      * <code>optional int32 enforcing_success_rate = 194508732;</code>
1624      *
1625      * @param value The enforcingSuccessRate to set.
1626      * @return This builder for chaining.
1627      */
setEnforcingSuccessRate(int value)1628     public Builder setEnforcingSuccessRate(int value) {
1629 
1630       enforcingSuccessRate_ = value;
1631       bitField0_ |= 0x00000020;
1632       onChanged();
1633       return this;
1634     }
1635     /**
1636      *
1637      *
1638      * <pre>
1639      * The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
1640      * </pre>
1641      *
1642      * <code>optional int32 enforcing_success_rate = 194508732;</code>
1643      *
1644      * @return This builder for chaining.
1645      */
clearEnforcingSuccessRate()1646     public Builder clearEnforcingSuccessRate() {
1647       bitField0_ = (bitField0_ & ~0x00000020);
1648       enforcingSuccessRate_ = 0;
1649       onChanged();
1650       return this;
1651     }
1652 
1653     private com.google.cloud.compute.v1.Duration interval_;
1654     private com.google.protobuf.SingleFieldBuilderV3<
1655             com.google.cloud.compute.v1.Duration,
1656             com.google.cloud.compute.v1.Duration.Builder,
1657             com.google.cloud.compute.v1.DurationOrBuilder>
1658         intervalBuilder_;
1659     /**
1660      *
1661      *
1662      * <pre>
1663      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1664      * </pre>
1665      *
1666      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1667      *
1668      * @return Whether the interval field is set.
1669      */
hasInterval()1670     public boolean hasInterval() {
1671       return ((bitField0_ & 0x00000040) != 0);
1672     }
1673     /**
1674      *
1675      *
1676      * <pre>
1677      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1678      * </pre>
1679      *
1680      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1681      *
1682      * @return The interval.
1683      */
getInterval()1684     public com.google.cloud.compute.v1.Duration getInterval() {
1685       if (intervalBuilder_ == null) {
1686         return interval_ == null
1687             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
1688             : interval_;
1689       } else {
1690         return intervalBuilder_.getMessage();
1691       }
1692     }
1693     /**
1694      *
1695      *
1696      * <pre>
1697      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1698      * </pre>
1699      *
1700      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1701      */
setInterval(com.google.cloud.compute.v1.Duration value)1702     public Builder setInterval(com.google.cloud.compute.v1.Duration value) {
1703       if (intervalBuilder_ == null) {
1704         if (value == null) {
1705           throw new NullPointerException();
1706         }
1707         interval_ = value;
1708       } else {
1709         intervalBuilder_.setMessage(value);
1710       }
1711       bitField0_ |= 0x00000040;
1712       onChanged();
1713       return this;
1714     }
1715     /**
1716      *
1717      *
1718      * <pre>
1719      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1720      * </pre>
1721      *
1722      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1723      */
setInterval(com.google.cloud.compute.v1.Duration.Builder builderForValue)1724     public Builder setInterval(com.google.cloud.compute.v1.Duration.Builder builderForValue) {
1725       if (intervalBuilder_ == null) {
1726         interval_ = builderForValue.build();
1727       } else {
1728         intervalBuilder_.setMessage(builderForValue.build());
1729       }
1730       bitField0_ |= 0x00000040;
1731       onChanged();
1732       return this;
1733     }
1734     /**
1735      *
1736      *
1737      * <pre>
1738      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1739      * </pre>
1740      *
1741      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1742      */
mergeInterval(com.google.cloud.compute.v1.Duration value)1743     public Builder mergeInterval(com.google.cloud.compute.v1.Duration value) {
1744       if (intervalBuilder_ == null) {
1745         if (((bitField0_ & 0x00000040) != 0)
1746             && interval_ != null
1747             && interval_ != com.google.cloud.compute.v1.Duration.getDefaultInstance()) {
1748           getIntervalBuilder().mergeFrom(value);
1749         } else {
1750           interval_ = value;
1751         }
1752       } else {
1753         intervalBuilder_.mergeFrom(value);
1754       }
1755       bitField0_ |= 0x00000040;
1756       onChanged();
1757       return this;
1758     }
1759     /**
1760      *
1761      *
1762      * <pre>
1763      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1764      * </pre>
1765      *
1766      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1767      */
clearInterval()1768     public Builder clearInterval() {
1769       bitField0_ = (bitField0_ & ~0x00000040);
1770       interval_ = null;
1771       if (intervalBuilder_ != null) {
1772         intervalBuilder_.dispose();
1773         intervalBuilder_ = null;
1774       }
1775       onChanged();
1776       return this;
1777     }
1778     /**
1779      *
1780      *
1781      * <pre>
1782      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1783      * </pre>
1784      *
1785      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1786      */
getIntervalBuilder()1787     public com.google.cloud.compute.v1.Duration.Builder getIntervalBuilder() {
1788       bitField0_ |= 0x00000040;
1789       onChanged();
1790       return getIntervalFieldBuilder().getBuilder();
1791     }
1792     /**
1793      *
1794      *
1795      * <pre>
1796      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1797      * </pre>
1798      *
1799      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1800      */
getIntervalOrBuilder()1801     public com.google.cloud.compute.v1.DurationOrBuilder getIntervalOrBuilder() {
1802       if (intervalBuilder_ != null) {
1803         return intervalBuilder_.getMessageOrBuilder();
1804       } else {
1805         return interval_ == null
1806             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
1807             : interval_;
1808       }
1809     }
1810     /**
1811      *
1812      *
1813      * <pre>
1814      * Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second.
1815      * </pre>
1816      *
1817      * <code>optional .google.cloud.compute.v1.Duration interval = 33547461;</code>
1818      */
1819     private com.google.protobuf.SingleFieldBuilderV3<
1820             com.google.cloud.compute.v1.Duration,
1821             com.google.cloud.compute.v1.Duration.Builder,
1822             com.google.cloud.compute.v1.DurationOrBuilder>
getIntervalFieldBuilder()1823         getIntervalFieldBuilder() {
1824       if (intervalBuilder_ == null) {
1825         intervalBuilder_ =
1826             new com.google.protobuf.SingleFieldBuilderV3<
1827                 com.google.cloud.compute.v1.Duration,
1828                 com.google.cloud.compute.v1.Duration.Builder,
1829                 com.google.cloud.compute.v1.DurationOrBuilder>(
1830                 getInterval(), getParentForChildren(), isClean());
1831         interval_ = null;
1832       }
1833       return intervalBuilder_;
1834     }
1835 
1836     private int maxEjectionPercent_;
1837     /**
1838      *
1839      *
1840      * <pre>
1841      * Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.
1842      * </pre>
1843      *
1844      * <code>optional int32 max_ejection_percent = 18436888;</code>
1845      *
1846      * @return Whether the maxEjectionPercent field is set.
1847      */
1848     @java.lang.Override
hasMaxEjectionPercent()1849     public boolean hasMaxEjectionPercent() {
1850       return ((bitField0_ & 0x00000080) != 0);
1851     }
1852     /**
1853      *
1854      *
1855      * <pre>
1856      * Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.
1857      * </pre>
1858      *
1859      * <code>optional int32 max_ejection_percent = 18436888;</code>
1860      *
1861      * @return The maxEjectionPercent.
1862      */
1863     @java.lang.Override
getMaxEjectionPercent()1864     public int getMaxEjectionPercent() {
1865       return maxEjectionPercent_;
1866     }
1867     /**
1868      *
1869      *
1870      * <pre>
1871      * Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.
1872      * </pre>
1873      *
1874      * <code>optional int32 max_ejection_percent = 18436888;</code>
1875      *
1876      * @param value The maxEjectionPercent to set.
1877      * @return This builder for chaining.
1878      */
setMaxEjectionPercent(int value)1879     public Builder setMaxEjectionPercent(int value) {
1880 
1881       maxEjectionPercent_ = value;
1882       bitField0_ |= 0x00000080;
1883       onChanged();
1884       return this;
1885     }
1886     /**
1887      *
1888      *
1889      * <pre>
1890      * Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%.
1891      * </pre>
1892      *
1893      * <code>optional int32 max_ejection_percent = 18436888;</code>
1894      *
1895      * @return This builder for chaining.
1896      */
clearMaxEjectionPercent()1897     public Builder clearMaxEjectionPercent() {
1898       bitField0_ = (bitField0_ & ~0x00000080);
1899       maxEjectionPercent_ = 0;
1900       onChanged();
1901       return this;
1902     }
1903 
1904     private int successRateMinimumHosts_;
1905     /**
1906      *
1907      *
1908      * <pre>
1909      * The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.
1910      * </pre>
1911      *
1912      * <code>optional int32 success_rate_minimum_hosts = 525766903;</code>
1913      *
1914      * @return Whether the successRateMinimumHosts field is set.
1915      */
1916     @java.lang.Override
hasSuccessRateMinimumHosts()1917     public boolean hasSuccessRateMinimumHosts() {
1918       return ((bitField0_ & 0x00000100) != 0);
1919     }
1920     /**
1921      *
1922      *
1923      * <pre>
1924      * The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.
1925      * </pre>
1926      *
1927      * <code>optional int32 success_rate_minimum_hosts = 525766903;</code>
1928      *
1929      * @return The successRateMinimumHosts.
1930      */
1931     @java.lang.Override
getSuccessRateMinimumHosts()1932     public int getSuccessRateMinimumHosts() {
1933       return successRateMinimumHosts_;
1934     }
1935     /**
1936      *
1937      *
1938      * <pre>
1939      * The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.
1940      * </pre>
1941      *
1942      * <code>optional int32 success_rate_minimum_hosts = 525766903;</code>
1943      *
1944      * @param value The successRateMinimumHosts to set.
1945      * @return This builder for chaining.
1946      */
setSuccessRateMinimumHosts(int value)1947     public Builder setSuccessRateMinimumHosts(int value) {
1948 
1949       successRateMinimumHosts_ = value;
1950       bitField0_ |= 0x00000100;
1951       onChanged();
1952       return this;
1953     }
1954     /**
1955      *
1956      *
1957      * <pre>
1958      * The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5.
1959      * </pre>
1960      *
1961      * <code>optional int32 success_rate_minimum_hosts = 525766903;</code>
1962      *
1963      * @return This builder for chaining.
1964      */
clearSuccessRateMinimumHosts()1965     public Builder clearSuccessRateMinimumHosts() {
1966       bitField0_ = (bitField0_ & ~0x00000100);
1967       successRateMinimumHosts_ = 0;
1968       onChanged();
1969       return this;
1970     }
1971 
1972     private int successRateRequestVolume_;
1973     /**
1974      *
1975      *
1976      * <pre>
1977      * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.
1978      * </pre>
1979      *
1980      * <code>optional int32 success_rate_request_volume = 281425357;</code>
1981      *
1982      * @return Whether the successRateRequestVolume field is set.
1983      */
1984     @java.lang.Override
hasSuccessRateRequestVolume()1985     public boolean hasSuccessRateRequestVolume() {
1986       return ((bitField0_ & 0x00000200) != 0);
1987     }
1988     /**
1989      *
1990      *
1991      * <pre>
1992      * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.
1993      * </pre>
1994      *
1995      * <code>optional int32 success_rate_request_volume = 281425357;</code>
1996      *
1997      * @return The successRateRequestVolume.
1998      */
1999     @java.lang.Override
getSuccessRateRequestVolume()2000     public int getSuccessRateRequestVolume() {
2001       return successRateRequestVolume_;
2002     }
2003     /**
2004      *
2005      *
2006      * <pre>
2007      * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.
2008      * </pre>
2009      *
2010      * <code>optional int32 success_rate_request_volume = 281425357;</code>
2011      *
2012      * @param value The successRateRequestVolume to set.
2013      * @return This builder for chaining.
2014      */
setSuccessRateRequestVolume(int value)2015     public Builder setSuccessRateRequestVolume(int value) {
2016 
2017       successRateRequestVolume_ = value;
2018       bitField0_ |= 0x00000200;
2019       onChanged();
2020       return this;
2021     }
2022     /**
2023      *
2024      *
2025      * <pre>
2026      * The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100.
2027      * </pre>
2028      *
2029      * <code>optional int32 success_rate_request_volume = 281425357;</code>
2030      *
2031      * @return This builder for chaining.
2032      */
clearSuccessRateRequestVolume()2033     public Builder clearSuccessRateRequestVolume() {
2034       bitField0_ = (bitField0_ & ~0x00000200);
2035       successRateRequestVolume_ = 0;
2036       onChanged();
2037       return this;
2038     }
2039 
2040     private int successRateStdevFactor_;
2041     /**
2042      *
2043      *
2044      * <pre>
2045      * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.
2046      * </pre>
2047      *
2048      * <code>optional int32 success_rate_stdev_factor = 174735773;</code>
2049      *
2050      * @return Whether the successRateStdevFactor field is set.
2051      */
2052     @java.lang.Override
hasSuccessRateStdevFactor()2053     public boolean hasSuccessRateStdevFactor() {
2054       return ((bitField0_ & 0x00000400) != 0);
2055     }
2056     /**
2057      *
2058      *
2059      * <pre>
2060      * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.
2061      * </pre>
2062      *
2063      * <code>optional int32 success_rate_stdev_factor = 174735773;</code>
2064      *
2065      * @return The successRateStdevFactor.
2066      */
2067     @java.lang.Override
getSuccessRateStdevFactor()2068     public int getSuccessRateStdevFactor() {
2069       return successRateStdevFactor_;
2070     }
2071     /**
2072      *
2073      *
2074      * <pre>
2075      * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.
2076      * </pre>
2077      *
2078      * <code>optional int32 success_rate_stdev_factor = 174735773;</code>
2079      *
2080      * @param value The successRateStdevFactor to set.
2081      * @return This builder for chaining.
2082      */
setSuccessRateStdevFactor(int value)2083     public Builder setSuccessRateStdevFactor(int value) {
2084 
2085       successRateStdevFactor_ = value;
2086       bitField0_ |= 0x00000400;
2087       onChanged();
2088       return this;
2089     }
2090     /**
2091      *
2092      *
2093      * <pre>
2094      * This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900.
2095      * </pre>
2096      *
2097      * <code>optional int32 success_rate_stdev_factor = 174735773;</code>
2098      *
2099      * @return This builder for chaining.
2100      */
clearSuccessRateStdevFactor()2101     public Builder clearSuccessRateStdevFactor() {
2102       bitField0_ = (bitField0_ & ~0x00000400);
2103       successRateStdevFactor_ = 0;
2104       onChanged();
2105       return this;
2106     }
2107 
2108     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)2109     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
2110       return super.setUnknownFields(unknownFields);
2111     }
2112 
2113     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)2114     public final Builder mergeUnknownFields(
2115         final com.google.protobuf.UnknownFieldSet unknownFields) {
2116       return super.mergeUnknownFields(unknownFields);
2117     }
2118 
2119     // @@protoc_insertion_point(builder_scope:google.cloud.compute.v1.OutlierDetection)
2120   }
2121 
2122   // @@protoc_insertion_point(class_scope:google.cloud.compute.v1.OutlierDetection)
2123   private static final com.google.cloud.compute.v1.OutlierDetection DEFAULT_INSTANCE;
2124 
2125   static {
2126     DEFAULT_INSTANCE = new com.google.cloud.compute.v1.OutlierDetection();
2127   }
2128 
getDefaultInstance()2129   public static com.google.cloud.compute.v1.OutlierDetection getDefaultInstance() {
2130     return DEFAULT_INSTANCE;
2131   }
2132 
2133   private static final com.google.protobuf.Parser<OutlierDetection> PARSER =
2134       new com.google.protobuf.AbstractParser<OutlierDetection>() {
2135         @java.lang.Override
2136         public OutlierDetection parsePartialFrom(
2137             com.google.protobuf.CodedInputStream input,
2138             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2139             throws com.google.protobuf.InvalidProtocolBufferException {
2140           Builder builder = newBuilder();
2141           try {
2142             builder.mergeFrom(input, extensionRegistry);
2143           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2144             throw e.setUnfinishedMessage(builder.buildPartial());
2145           } catch (com.google.protobuf.UninitializedMessageException e) {
2146             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
2147           } catch (java.io.IOException e) {
2148             throw new com.google.protobuf.InvalidProtocolBufferException(e)
2149                 .setUnfinishedMessage(builder.buildPartial());
2150           }
2151           return builder.buildPartial();
2152         }
2153       };
2154 
parser()2155   public static com.google.protobuf.Parser<OutlierDetection> parser() {
2156     return PARSER;
2157   }
2158 
2159   @java.lang.Override
getParserForType()2160   public com.google.protobuf.Parser<OutlierDetection> getParserForType() {
2161     return PARSER;
2162   }
2163 
2164   @java.lang.Override
getDefaultInstanceForType()2165   public com.google.cloud.compute.v1.OutlierDetection getDefaultInstanceForType() {
2166     return DEFAULT_INSTANCE;
2167   }
2168 }
2169