• 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  * </pre>
26  *
27  * Protobuf type {@code google.cloud.compute.v1.HttpRouteAction}
28  */
29 public final class HttpRouteAction extends com.google.protobuf.GeneratedMessageV3
30     implements
31     // @@protoc_insertion_point(message_implements:google.cloud.compute.v1.HttpRouteAction)
32     HttpRouteActionOrBuilder {
33   private static final long serialVersionUID = 0L;
34   // Use HttpRouteAction.newBuilder() to construct.
HttpRouteAction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)35   private HttpRouteAction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
36     super(builder);
37   }
38 
HttpRouteAction()39   private HttpRouteAction() {
40     weightedBackendServices_ = java.util.Collections.emptyList();
41   }
42 
43   @java.lang.Override
44   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)45   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
46     return new HttpRouteAction();
47   }
48 
49   @java.lang.Override
getUnknownFields()50   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
51     return this.unknownFields;
52   }
53 
getDescriptor()54   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
55     return com.google.cloud.compute.v1.Compute
56         .internal_static_google_cloud_compute_v1_HttpRouteAction_descriptor;
57   }
58 
59   @java.lang.Override
60   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()61       internalGetFieldAccessorTable() {
62     return com.google.cloud.compute.v1.Compute
63         .internal_static_google_cloud_compute_v1_HttpRouteAction_fieldAccessorTable
64         .ensureFieldAccessorsInitialized(
65             com.google.cloud.compute.v1.HttpRouteAction.class,
66             com.google.cloud.compute.v1.HttpRouteAction.Builder.class);
67   }
68 
69   private int bitField0_;
70   public static final int CORS_POLICY_FIELD_NUMBER = 398943748;
71   private com.google.cloud.compute.v1.CorsPolicy corsPolicy_;
72   /**
73    *
74    *
75    * <pre>
76    * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
77    * </pre>
78    *
79    * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
80    *
81    * @return Whether the corsPolicy field is set.
82    */
83   @java.lang.Override
hasCorsPolicy()84   public boolean hasCorsPolicy() {
85     return ((bitField0_ & 0x00000001) != 0);
86   }
87   /**
88    *
89    *
90    * <pre>
91    * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
92    * </pre>
93    *
94    * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
95    *
96    * @return The corsPolicy.
97    */
98   @java.lang.Override
getCorsPolicy()99   public com.google.cloud.compute.v1.CorsPolicy getCorsPolicy() {
100     return corsPolicy_ == null
101         ? com.google.cloud.compute.v1.CorsPolicy.getDefaultInstance()
102         : corsPolicy_;
103   }
104   /**
105    *
106    *
107    * <pre>
108    * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
109    * </pre>
110    *
111    * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
112    */
113   @java.lang.Override
getCorsPolicyOrBuilder()114   public com.google.cloud.compute.v1.CorsPolicyOrBuilder getCorsPolicyOrBuilder() {
115     return corsPolicy_ == null
116         ? com.google.cloud.compute.v1.CorsPolicy.getDefaultInstance()
117         : corsPolicy_;
118   }
119 
120   public static final int FAULT_INJECTION_POLICY_FIELD_NUMBER = 412781079;
121   private com.google.cloud.compute.v1.HttpFaultInjection faultInjectionPolicy_;
122   /**
123    *
124    *
125    * <pre>
126    * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
127    * </pre>
128    *
129    * <code>optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
130    * </code>
131    *
132    * @return Whether the faultInjectionPolicy field is set.
133    */
134   @java.lang.Override
hasFaultInjectionPolicy()135   public boolean hasFaultInjectionPolicy() {
136     return ((bitField0_ & 0x00000002) != 0);
137   }
138   /**
139    *
140    *
141    * <pre>
142    * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
143    * </pre>
144    *
145    * <code>optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
146    * </code>
147    *
148    * @return The faultInjectionPolicy.
149    */
150   @java.lang.Override
getFaultInjectionPolicy()151   public com.google.cloud.compute.v1.HttpFaultInjection getFaultInjectionPolicy() {
152     return faultInjectionPolicy_ == null
153         ? com.google.cloud.compute.v1.HttpFaultInjection.getDefaultInstance()
154         : faultInjectionPolicy_;
155   }
156   /**
157    *
158    *
159    * <pre>
160    * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
161    * </pre>
162    *
163    * <code>optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
164    * </code>
165    */
166   @java.lang.Override
167   public com.google.cloud.compute.v1.HttpFaultInjectionOrBuilder
getFaultInjectionPolicyOrBuilder()168       getFaultInjectionPolicyOrBuilder() {
169     return faultInjectionPolicy_ == null
170         ? com.google.cloud.compute.v1.HttpFaultInjection.getDefaultInstance()
171         : faultInjectionPolicy_;
172   }
173 
174   public static final int MAX_STREAM_DURATION_FIELD_NUMBER = 61428376;
175   private com.google.cloud.compute.v1.Duration maxStreamDuration_;
176   /**
177    *
178    *
179    * <pre>
180    * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
181    * </pre>
182    *
183    * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
184    *
185    * @return Whether the maxStreamDuration field is set.
186    */
187   @java.lang.Override
hasMaxStreamDuration()188   public boolean hasMaxStreamDuration() {
189     return ((bitField0_ & 0x00000004) != 0);
190   }
191   /**
192    *
193    *
194    * <pre>
195    * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
196    * </pre>
197    *
198    * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
199    *
200    * @return The maxStreamDuration.
201    */
202   @java.lang.Override
getMaxStreamDuration()203   public com.google.cloud.compute.v1.Duration getMaxStreamDuration() {
204     return maxStreamDuration_ == null
205         ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
206         : maxStreamDuration_;
207   }
208   /**
209    *
210    *
211    * <pre>
212    * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
213    * </pre>
214    *
215    * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
216    */
217   @java.lang.Override
getMaxStreamDurationOrBuilder()218   public com.google.cloud.compute.v1.DurationOrBuilder getMaxStreamDurationOrBuilder() {
219     return maxStreamDuration_ == null
220         ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
221         : maxStreamDuration_;
222   }
223 
224   public static final int REQUEST_MIRROR_POLICY_FIELD_NUMBER = 220196866;
225   private com.google.cloud.compute.v1.RequestMirrorPolicy requestMirrorPolicy_;
226   /**
227    *
228    *
229    * <pre>
230    * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
231    * </pre>
232    *
233    * <code>optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
234    * </code>
235    *
236    * @return Whether the requestMirrorPolicy field is set.
237    */
238   @java.lang.Override
hasRequestMirrorPolicy()239   public boolean hasRequestMirrorPolicy() {
240     return ((bitField0_ & 0x00000008) != 0);
241   }
242   /**
243    *
244    *
245    * <pre>
246    * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
247    * </pre>
248    *
249    * <code>optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
250    * </code>
251    *
252    * @return The requestMirrorPolicy.
253    */
254   @java.lang.Override
getRequestMirrorPolicy()255   public com.google.cloud.compute.v1.RequestMirrorPolicy getRequestMirrorPolicy() {
256     return requestMirrorPolicy_ == null
257         ? com.google.cloud.compute.v1.RequestMirrorPolicy.getDefaultInstance()
258         : requestMirrorPolicy_;
259   }
260   /**
261    *
262    *
263    * <pre>
264    * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
265    * </pre>
266    *
267    * <code>optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
268    * </code>
269    */
270   @java.lang.Override
271   public com.google.cloud.compute.v1.RequestMirrorPolicyOrBuilder
getRequestMirrorPolicyOrBuilder()272       getRequestMirrorPolicyOrBuilder() {
273     return requestMirrorPolicy_ == null
274         ? com.google.cloud.compute.v1.RequestMirrorPolicy.getDefaultInstance()
275         : requestMirrorPolicy_;
276   }
277 
278   public static final int RETRY_POLICY_FIELD_NUMBER = 56799913;
279   private com.google.cloud.compute.v1.HttpRetryPolicy retryPolicy_;
280   /**
281    *
282    *
283    * <pre>
284    * Specifies the retry policy associated with this route.
285    * </pre>
286    *
287    * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
288    *
289    * @return Whether the retryPolicy field is set.
290    */
291   @java.lang.Override
hasRetryPolicy()292   public boolean hasRetryPolicy() {
293     return ((bitField0_ & 0x00000010) != 0);
294   }
295   /**
296    *
297    *
298    * <pre>
299    * Specifies the retry policy associated with this route.
300    * </pre>
301    *
302    * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
303    *
304    * @return The retryPolicy.
305    */
306   @java.lang.Override
getRetryPolicy()307   public com.google.cloud.compute.v1.HttpRetryPolicy getRetryPolicy() {
308     return retryPolicy_ == null
309         ? com.google.cloud.compute.v1.HttpRetryPolicy.getDefaultInstance()
310         : retryPolicy_;
311   }
312   /**
313    *
314    *
315    * <pre>
316    * Specifies the retry policy associated with this route.
317    * </pre>
318    *
319    * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
320    */
321   @java.lang.Override
getRetryPolicyOrBuilder()322   public com.google.cloud.compute.v1.HttpRetryPolicyOrBuilder getRetryPolicyOrBuilder() {
323     return retryPolicy_ == null
324         ? com.google.cloud.compute.v1.HttpRetryPolicy.getDefaultInstance()
325         : retryPolicy_;
326   }
327 
328   public static final int TIMEOUT_FIELD_NUMBER = 296701281;
329   private com.google.cloud.compute.v1.Duration timeout_;
330   /**
331    *
332    *
333    * <pre>
334    * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
335    * </pre>
336    *
337    * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
338    *
339    * @return Whether the timeout field is set.
340    */
341   @java.lang.Override
hasTimeout()342   public boolean hasTimeout() {
343     return ((bitField0_ & 0x00000020) != 0);
344   }
345   /**
346    *
347    *
348    * <pre>
349    * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
350    * </pre>
351    *
352    * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
353    *
354    * @return The timeout.
355    */
356   @java.lang.Override
getTimeout()357   public com.google.cloud.compute.v1.Duration getTimeout() {
358     return timeout_ == null ? com.google.cloud.compute.v1.Duration.getDefaultInstance() : timeout_;
359   }
360   /**
361    *
362    *
363    * <pre>
364    * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
365    * </pre>
366    *
367    * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
368    */
369   @java.lang.Override
getTimeoutOrBuilder()370   public com.google.cloud.compute.v1.DurationOrBuilder getTimeoutOrBuilder() {
371     return timeout_ == null ? com.google.cloud.compute.v1.Duration.getDefaultInstance() : timeout_;
372   }
373 
374   public static final int URL_REWRITE_FIELD_NUMBER = 273333948;
375   private com.google.cloud.compute.v1.UrlRewrite urlRewrite_;
376   /**
377    *
378    *
379    * <pre>
380    * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
381    * </pre>
382    *
383    * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
384    *
385    * @return Whether the urlRewrite field is set.
386    */
387   @java.lang.Override
hasUrlRewrite()388   public boolean hasUrlRewrite() {
389     return ((bitField0_ & 0x00000040) != 0);
390   }
391   /**
392    *
393    *
394    * <pre>
395    * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
396    * </pre>
397    *
398    * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
399    *
400    * @return The urlRewrite.
401    */
402   @java.lang.Override
getUrlRewrite()403   public com.google.cloud.compute.v1.UrlRewrite getUrlRewrite() {
404     return urlRewrite_ == null
405         ? com.google.cloud.compute.v1.UrlRewrite.getDefaultInstance()
406         : urlRewrite_;
407   }
408   /**
409    *
410    *
411    * <pre>
412    * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
413    * </pre>
414    *
415    * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
416    */
417   @java.lang.Override
getUrlRewriteOrBuilder()418   public com.google.cloud.compute.v1.UrlRewriteOrBuilder getUrlRewriteOrBuilder() {
419     return urlRewrite_ == null
420         ? com.google.cloud.compute.v1.UrlRewrite.getDefaultInstance()
421         : urlRewrite_;
422   }
423 
424   public static final int WEIGHTED_BACKEND_SERVICES_FIELD_NUMBER = 337028049;
425 
426   @SuppressWarnings("serial")
427   private java.util.List<com.google.cloud.compute.v1.WeightedBackendService>
428       weightedBackendServices_;
429   /**
430    *
431    *
432    * <pre>
433    * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
434    * </pre>
435    *
436    * <code>
437    * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
438    * </code>
439    */
440   @java.lang.Override
441   public java.util.List<com.google.cloud.compute.v1.WeightedBackendService>
getWeightedBackendServicesList()442       getWeightedBackendServicesList() {
443     return weightedBackendServices_;
444   }
445   /**
446    *
447    *
448    * <pre>
449    * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
450    * </pre>
451    *
452    * <code>
453    * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
454    * </code>
455    */
456   @java.lang.Override
457   public java.util.List<? extends com.google.cloud.compute.v1.WeightedBackendServiceOrBuilder>
getWeightedBackendServicesOrBuilderList()458       getWeightedBackendServicesOrBuilderList() {
459     return weightedBackendServices_;
460   }
461   /**
462    *
463    *
464    * <pre>
465    * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
466    * </pre>
467    *
468    * <code>
469    * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
470    * </code>
471    */
472   @java.lang.Override
getWeightedBackendServicesCount()473   public int getWeightedBackendServicesCount() {
474     return weightedBackendServices_.size();
475   }
476   /**
477    *
478    *
479    * <pre>
480    * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
481    * </pre>
482    *
483    * <code>
484    * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
485    * </code>
486    */
487   @java.lang.Override
getWeightedBackendServices(int index)488   public com.google.cloud.compute.v1.WeightedBackendService getWeightedBackendServices(int index) {
489     return weightedBackendServices_.get(index);
490   }
491   /**
492    *
493    *
494    * <pre>
495    * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
496    * </pre>
497    *
498    * <code>
499    * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
500    * </code>
501    */
502   @java.lang.Override
503   public com.google.cloud.compute.v1.WeightedBackendServiceOrBuilder
getWeightedBackendServicesOrBuilder(int index)504       getWeightedBackendServicesOrBuilder(int index) {
505     return weightedBackendServices_.get(index);
506   }
507 
508   private byte memoizedIsInitialized = -1;
509 
510   @java.lang.Override
isInitialized()511   public final boolean isInitialized() {
512     byte isInitialized = memoizedIsInitialized;
513     if (isInitialized == 1) return true;
514     if (isInitialized == 0) return false;
515 
516     memoizedIsInitialized = 1;
517     return true;
518   }
519 
520   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)521   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
522     if (((bitField0_ & 0x00000010) != 0)) {
523       output.writeMessage(56799913, getRetryPolicy());
524     }
525     if (((bitField0_ & 0x00000004) != 0)) {
526       output.writeMessage(61428376, getMaxStreamDuration());
527     }
528     if (((bitField0_ & 0x00000008) != 0)) {
529       output.writeMessage(220196866, getRequestMirrorPolicy());
530     }
531     if (((bitField0_ & 0x00000040) != 0)) {
532       output.writeMessage(273333948, getUrlRewrite());
533     }
534     if (((bitField0_ & 0x00000020) != 0)) {
535       output.writeMessage(296701281, getTimeout());
536     }
537     for (int i = 0; i < weightedBackendServices_.size(); i++) {
538       output.writeMessage(337028049, weightedBackendServices_.get(i));
539     }
540     if (((bitField0_ & 0x00000001) != 0)) {
541       output.writeMessage(398943748, getCorsPolicy());
542     }
543     if (((bitField0_ & 0x00000002) != 0)) {
544       output.writeMessage(412781079, getFaultInjectionPolicy());
545     }
546     getUnknownFields().writeTo(output);
547   }
548 
549   @java.lang.Override
getSerializedSize()550   public int getSerializedSize() {
551     int size = memoizedSize;
552     if (size != -1) return size;
553 
554     size = 0;
555     if (((bitField0_ & 0x00000010) != 0)) {
556       size += com.google.protobuf.CodedOutputStream.computeMessageSize(56799913, getRetryPolicy());
557     }
558     if (((bitField0_ & 0x00000004) != 0)) {
559       size +=
560           com.google.protobuf.CodedOutputStream.computeMessageSize(
561               61428376, getMaxStreamDuration());
562     }
563     if (((bitField0_ & 0x00000008) != 0)) {
564       size +=
565           com.google.protobuf.CodedOutputStream.computeMessageSize(
566               220196866, getRequestMirrorPolicy());
567     }
568     if (((bitField0_ & 0x00000040) != 0)) {
569       size += com.google.protobuf.CodedOutputStream.computeMessageSize(273333948, getUrlRewrite());
570     }
571     if (((bitField0_ & 0x00000020) != 0)) {
572       size += com.google.protobuf.CodedOutputStream.computeMessageSize(296701281, getTimeout());
573     }
574     for (int i = 0; i < weightedBackendServices_.size(); i++) {
575       size +=
576           com.google.protobuf.CodedOutputStream.computeMessageSize(
577               337028049, weightedBackendServices_.get(i));
578     }
579     if (((bitField0_ & 0x00000001) != 0)) {
580       size += com.google.protobuf.CodedOutputStream.computeMessageSize(398943748, getCorsPolicy());
581     }
582     if (((bitField0_ & 0x00000002) != 0)) {
583       size +=
584           com.google.protobuf.CodedOutputStream.computeMessageSize(
585               412781079, getFaultInjectionPolicy());
586     }
587     size += getUnknownFields().getSerializedSize();
588     memoizedSize = size;
589     return size;
590   }
591 
592   @java.lang.Override
equals(final java.lang.Object obj)593   public boolean equals(final java.lang.Object obj) {
594     if (obj == this) {
595       return true;
596     }
597     if (!(obj instanceof com.google.cloud.compute.v1.HttpRouteAction)) {
598       return super.equals(obj);
599     }
600     com.google.cloud.compute.v1.HttpRouteAction other =
601         (com.google.cloud.compute.v1.HttpRouteAction) obj;
602 
603     if (hasCorsPolicy() != other.hasCorsPolicy()) return false;
604     if (hasCorsPolicy()) {
605       if (!getCorsPolicy().equals(other.getCorsPolicy())) return false;
606     }
607     if (hasFaultInjectionPolicy() != other.hasFaultInjectionPolicy()) return false;
608     if (hasFaultInjectionPolicy()) {
609       if (!getFaultInjectionPolicy().equals(other.getFaultInjectionPolicy())) return false;
610     }
611     if (hasMaxStreamDuration() != other.hasMaxStreamDuration()) return false;
612     if (hasMaxStreamDuration()) {
613       if (!getMaxStreamDuration().equals(other.getMaxStreamDuration())) return false;
614     }
615     if (hasRequestMirrorPolicy() != other.hasRequestMirrorPolicy()) return false;
616     if (hasRequestMirrorPolicy()) {
617       if (!getRequestMirrorPolicy().equals(other.getRequestMirrorPolicy())) return false;
618     }
619     if (hasRetryPolicy() != other.hasRetryPolicy()) return false;
620     if (hasRetryPolicy()) {
621       if (!getRetryPolicy().equals(other.getRetryPolicy())) return false;
622     }
623     if (hasTimeout() != other.hasTimeout()) return false;
624     if (hasTimeout()) {
625       if (!getTimeout().equals(other.getTimeout())) return false;
626     }
627     if (hasUrlRewrite() != other.hasUrlRewrite()) return false;
628     if (hasUrlRewrite()) {
629       if (!getUrlRewrite().equals(other.getUrlRewrite())) return false;
630     }
631     if (!getWeightedBackendServicesList().equals(other.getWeightedBackendServicesList()))
632       return false;
633     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
634     return true;
635   }
636 
637   @java.lang.Override
hashCode()638   public int hashCode() {
639     if (memoizedHashCode != 0) {
640       return memoizedHashCode;
641     }
642     int hash = 41;
643     hash = (19 * hash) + getDescriptor().hashCode();
644     if (hasCorsPolicy()) {
645       hash = (37 * hash) + CORS_POLICY_FIELD_NUMBER;
646       hash = (53 * hash) + getCorsPolicy().hashCode();
647     }
648     if (hasFaultInjectionPolicy()) {
649       hash = (37 * hash) + FAULT_INJECTION_POLICY_FIELD_NUMBER;
650       hash = (53 * hash) + getFaultInjectionPolicy().hashCode();
651     }
652     if (hasMaxStreamDuration()) {
653       hash = (37 * hash) + MAX_STREAM_DURATION_FIELD_NUMBER;
654       hash = (53 * hash) + getMaxStreamDuration().hashCode();
655     }
656     if (hasRequestMirrorPolicy()) {
657       hash = (37 * hash) + REQUEST_MIRROR_POLICY_FIELD_NUMBER;
658       hash = (53 * hash) + getRequestMirrorPolicy().hashCode();
659     }
660     if (hasRetryPolicy()) {
661       hash = (37 * hash) + RETRY_POLICY_FIELD_NUMBER;
662       hash = (53 * hash) + getRetryPolicy().hashCode();
663     }
664     if (hasTimeout()) {
665       hash = (37 * hash) + TIMEOUT_FIELD_NUMBER;
666       hash = (53 * hash) + getTimeout().hashCode();
667     }
668     if (hasUrlRewrite()) {
669       hash = (37 * hash) + URL_REWRITE_FIELD_NUMBER;
670       hash = (53 * hash) + getUrlRewrite().hashCode();
671     }
672     if (getWeightedBackendServicesCount() > 0) {
673       hash = (37 * hash) + WEIGHTED_BACKEND_SERVICES_FIELD_NUMBER;
674       hash = (53 * hash) + getWeightedBackendServicesList().hashCode();
675     }
676     hash = (29 * hash) + getUnknownFields().hashCode();
677     memoizedHashCode = hash;
678     return hash;
679   }
680 
parseFrom(java.nio.ByteBuffer data)681   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(java.nio.ByteBuffer data)
682       throws com.google.protobuf.InvalidProtocolBufferException {
683     return PARSER.parseFrom(data);
684   }
685 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)686   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(
687       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
688       throws com.google.protobuf.InvalidProtocolBufferException {
689     return PARSER.parseFrom(data, extensionRegistry);
690   }
691 
parseFrom( com.google.protobuf.ByteString data)692   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(
693       com.google.protobuf.ByteString data)
694       throws com.google.protobuf.InvalidProtocolBufferException {
695     return PARSER.parseFrom(data);
696   }
697 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)698   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(
699       com.google.protobuf.ByteString data,
700       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
701       throws com.google.protobuf.InvalidProtocolBufferException {
702     return PARSER.parseFrom(data, extensionRegistry);
703   }
704 
parseFrom(byte[] data)705   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(byte[] data)
706       throws com.google.protobuf.InvalidProtocolBufferException {
707     return PARSER.parseFrom(data);
708   }
709 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)710   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(
711       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
712       throws com.google.protobuf.InvalidProtocolBufferException {
713     return PARSER.parseFrom(data, extensionRegistry);
714   }
715 
parseFrom(java.io.InputStream input)716   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(java.io.InputStream input)
717       throws java.io.IOException {
718     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
719   }
720 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)721   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(
722       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
723       throws java.io.IOException {
724     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
725         PARSER, input, extensionRegistry);
726   }
727 
parseDelimitedFrom( java.io.InputStream input)728   public static com.google.cloud.compute.v1.HttpRouteAction parseDelimitedFrom(
729       java.io.InputStream input) throws java.io.IOException {
730     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
731   }
732 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)733   public static com.google.cloud.compute.v1.HttpRouteAction parseDelimitedFrom(
734       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
735       throws java.io.IOException {
736     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
737         PARSER, input, extensionRegistry);
738   }
739 
parseFrom( com.google.protobuf.CodedInputStream input)740   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(
741       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
742     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
743   }
744 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)745   public static com.google.cloud.compute.v1.HttpRouteAction parseFrom(
746       com.google.protobuf.CodedInputStream input,
747       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
748       throws java.io.IOException {
749     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
750         PARSER, input, extensionRegistry);
751   }
752 
753   @java.lang.Override
newBuilderForType()754   public Builder newBuilderForType() {
755     return newBuilder();
756   }
757 
newBuilder()758   public static Builder newBuilder() {
759     return DEFAULT_INSTANCE.toBuilder();
760   }
761 
newBuilder(com.google.cloud.compute.v1.HttpRouteAction prototype)762   public static Builder newBuilder(com.google.cloud.compute.v1.HttpRouteAction prototype) {
763     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
764   }
765 
766   @java.lang.Override
toBuilder()767   public Builder toBuilder() {
768     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
769   }
770 
771   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)772   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
773     Builder builder = new Builder(parent);
774     return builder;
775   }
776   /**
777    *
778    *
779    * <pre>
780    * </pre>
781    *
782    * Protobuf type {@code google.cloud.compute.v1.HttpRouteAction}
783    */
784   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
785       implements
786       // @@protoc_insertion_point(builder_implements:google.cloud.compute.v1.HttpRouteAction)
787       com.google.cloud.compute.v1.HttpRouteActionOrBuilder {
getDescriptor()788     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
789       return com.google.cloud.compute.v1.Compute
790           .internal_static_google_cloud_compute_v1_HttpRouteAction_descriptor;
791     }
792 
793     @java.lang.Override
794     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()795         internalGetFieldAccessorTable() {
796       return com.google.cloud.compute.v1.Compute
797           .internal_static_google_cloud_compute_v1_HttpRouteAction_fieldAccessorTable
798           .ensureFieldAccessorsInitialized(
799               com.google.cloud.compute.v1.HttpRouteAction.class,
800               com.google.cloud.compute.v1.HttpRouteAction.Builder.class);
801     }
802 
803     // Construct using com.google.cloud.compute.v1.HttpRouteAction.newBuilder()
Builder()804     private Builder() {
805       maybeForceBuilderInitialization();
806     }
807 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)808     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
809       super(parent);
810       maybeForceBuilderInitialization();
811     }
812 
maybeForceBuilderInitialization()813     private void maybeForceBuilderInitialization() {
814       if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
815         getCorsPolicyFieldBuilder();
816         getFaultInjectionPolicyFieldBuilder();
817         getMaxStreamDurationFieldBuilder();
818         getRequestMirrorPolicyFieldBuilder();
819         getRetryPolicyFieldBuilder();
820         getTimeoutFieldBuilder();
821         getUrlRewriteFieldBuilder();
822         getWeightedBackendServicesFieldBuilder();
823       }
824     }
825 
826     @java.lang.Override
clear()827     public Builder clear() {
828       super.clear();
829       bitField0_ = 0;
830       corsPolicy_ = null;
831       if (corsPolicyBuilder_ != null) {
832         corsPolicyBuilder_.dispose();
833         corsPolicyBuilder_ = null;
834       }
835       faultInjectionPolicy_ = null;
836       if (faultInjectionPolicyBuilder_ != null) {
837         faultInjectionPolicyBuilder_.dispose();
838         faultInjectionPolicyBuilder_ = null;
839       }
840       maxStreamDuration_ = null;
841       if (maxStreamDurationBuilder_ != null) {
842         maxStreamDurationBuilder_.dispose();
843         maxStreamDurationBuilder_ = null;
844       }
845       requestMirrorPolicy_ = null;
846       if (requestMirrorPolicyBuilder_ != null) {
847         requestMirrorPolicyBuilder_.dispose();
848         requestMirrorPolicyBuilder_ = null;
849       }
850       retryPolicy_ = null;
851       if (retryPolicyBuilder_ != null) {
852         retryPolicyBuilder_.dispose();
853         retryPolicyBuilder_ = null;
854       }
855       timeout_ = null;
856       if (timeoutBuilder_ != null) {
857         timeoutBuilder_.dispose();
858         timeoutBuilder_ = null;
859       }
860       urlRewrite_ = null;
861       if (urlRewriteBuilder_ != null) {
862         urlRewriteBuilder_.dispose();
863         urlRewriteBuilder_ = null;
864       }
865       if (weightedBackendServicesBuilder_ == null) {
866         weightedBackendServices_ = java.util.Collections.emptyList();
867       } else {
868         weightedBackendServices_ = null;
869         weightedBackendServicesBuilder_.clear();
870       }
871       bitField0_ = (bitField0_ & ~0x00000080);
872       return this;
873     }
874 
875     @java.lang.Override
getDescriptorForType()876     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
877       return com.google.cloud.compute.v1.Compute
878           .internal_static_google_cloud_compute_v1_HttpRouteAction_descriptor;
879     }
880 
881     @java.lang.Override
getDefaultInstanceForType()882     public com.google.cloud.compute.v1.HttpRouteAction getDefaultInstanceForType() {
883       return com.google.cloud.compute.v1.HttpRouteAction.getDefaultInstance();
884     }
885 
886     @java.lang.Override
build()887     public com.google.cloud.compute.v1.HttpRouteAction build() {
888       com.google.cloud.compute.v1.HttpRouteAction result = buildPartial();
889       if (!result.isInitialized()) {
890         throw newUninitializedMessageException(result);
891       }
892       return result;
893     }
894 
895     @java.lang.Override
buildPartial()896     public com.google.cloud.compute.v1.HttpRouteAction buildPartial() {
897       com.google.cloud.compute.v1.HttpRouteAction result =
898           new com.google.cloud.compute.v1.HttpRouteAction(this);
899       buildPartialRepeatedFields(result);
900       if (bitField0_ != 0) {
901         buildPartial0(result);
902       }
903       onBuilt();
904       return result;
905     }
906 
buildPartialRepeatedFields(com.google.cloud.compute.v1.HttpRouteAction result)907     private void buildPartialRepeatedFields(com.google.cloud.compute.v1.HttpRouteAction result) {
908       if (weightedBackendServicesBuilder_ == null) {
909         if (((bitField0_ & 0x00000080) != 0)) {
910           weightedBackendServices_ =
911               java.util.Collections.unmodifiableList(weightedBackendServices_);
912           bitField0_ = (bitField0_ & ~0x00000080);
913         }
914         result.weightedBackendServices_ = weightedBackendServices_;
915       } else {
916         result.weightedBackendServices_ = weightedBackendServicesBuilder_.build();
917       }
918     }
919 
buildPartial0(com.google.cloud.compute.v1.HttpRouteAction result)920     private void buildPartial0(com.google.cloud.compute.v1.HttpRouteAction result) {
921       int from_bitField0_ = bitField0_;
922       int to_bitField0_ = 0;
923       if (((from_bitField0_ & 0x00000001) != 0)) {
924         result.corsPolicy_ = corsPolicyBuilder_ == null ? corsPolicy_ : corsPolicyBuilder_.build();
925         to_bitField0_ |= 0x00000001;
926       }
927       if (((from_bitField0_ & 0x00000002) != 0)) {
928         result.faultInjectionPolicy_ =
929             faultInjectionPolicyBuilder_ == null
930                 ? faultInjectionPolicy_
931                 : faultInjectionPolicyBuilder_.build();
932         to_bitField0_ |= 0x00000002;
933       }
934       if (((from_bitField0_ & 0x00000004) != 0)) {
935         result.maxStreamDuration_ =
936             maxStreamDurationBuilder_ == null
937                 ? maxStreamDuration_
938                 : maxStreamDurationBuilder_.build();
939         to_bitField0_ |= 0x00000004;
940       }
941       if (((from_bitField0_ & 0x00000008) != 0)) {
942         result.requestMirrorPolicy_ =
943             requestMirrorPolicyBuilder_ == null
944                 ? requestMirrorPolicy_
945                 : requestMirrorPolicyBuilder_.build();
946         to_bitField0_ |= 0x00000008;
947       }
948       if (((from_bitField0_ & 0x00000010) != 0)) {
949         result.retryPolicy_ =
950             retryPolicyBuilder_ == null ? retryPolicy_ : retryPolicyBuilder_.build();
951         to_bitField0_ |= 0x00000010;
952       }
953       if (((from_bitField0_ & 0x00000020) != 0)) {
954         result.timeout_ = timeoutBuilder_ == null ? timeout_ : timeoutBuilder_.build();
955         to_bitField0_ |= 0x00000020;
956       }
957       if (((from_bitField0_ & 0x00000040) != 0)) {
958         result.urlRewrite_ = urlRewriteBuilder_ == null ? urlRewrite_ : urlRewriteBuilder_.build();
959         to_bitField0_ |= 0x00000040;
960       }
961       result.bitField0_ |= to_bitField0_;
962     }
963 
964     @java.lang.Override
clone()965     public Builder clone() {
966       return super.clone();
967     }
968 
969     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)970     public Builder setField(
971         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
972       return super.setField(field, value);
973     }
974 
975     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)976     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
977       return super.clearField(field);
978     }
979 
980     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)981     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
982       return super.clearOneof(oneof);
983     }
984 
985     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)986     public Builder setRepeatedField(
987         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
988       return super.setRepeatedField(field, index, value);
989     }
990 
991     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)992     public Builder addRepeatedField(
993         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
994       return super.addRepeatedField(field, value);
995     }
996 
997     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)998     public Builder mergeFrom(com.google.protobuf.Message other) {
999       if (other instanceof com.google.cloud.compute.v1.HttpRouteAction) {
1000         return mergeFrom((com.google.cloud.compute.v1.HttpRouteAction) other);
1001       } else {
1002         super.mergeFrom(other);
1003         return this;
1004       }
1005     }
1006 
mergeFrom(com.google.cloud.compute.v1.HttpRouteAction other)1007     public Builder mergeFrom(com.google.cloud.compute.v1.HttpRouteAction other) {
1008       if (other == com.google.cloud.compute.v1.HttpRouteAction.getDefaultInstance()) return this;
1009       if (other.hasCorsPolicy()) {
1010         mergeCorsPolicy(other.getCorsPolicy());
1011       }
1012       if (other.hasFaultInjectionPolicy()) {
1013         mergeFaultInjectionPolicy(other.getFaultInjectionPolicy());
1014       }
1015       if (other.hasMaxStreamDuration()) {
1016         mergeMaxStreamDuration(other.getMaxStreamDuration());
1017       }
1018       if (other.hasRequestMirrorPolicy()) {
1019         mergeRequestMirrorPolicy(other.getRequestMirrorPolicy());
1020       }
1021       if (other.hasRetryPolicy()) {
1022         mergeRetryPolicy(other.getRetryPolicy());
1023       }
1024       if (other.hasTimeout()) {
1025         mergeTimeout(other.getTimeout());
1026       }
1027       if (other.hasUrlRewrite()) {
1028         mergeUrlRewrite(other.getUrlRewrite());
1029       }
1030       if (weightedBackendServicesBuilder_ == null) {
1031         if (!other.weightedBackendServices_.isEmpty()) {
1032           if (weightedBackendServices_.isEmpty()) {
1033             weightedBackendServices_ = other.weightedBackendServices_;
1034             bitField0_ = (bitField0_ & ~0x00000080);
1035           } else {
1036             ensureWeightedBackendServicesIsMutable();
1037             weightedBackendServices_.addAll(other.weightedBackendServices_);
1038           }
1039           onChanged();
1040         }
1041       } else {
1042         if (!other.weightedBackendServices_.isEmpty()) {
1043           if (weightedBackendServicesBuilder_.isEmpty()) {
1044             weightedBackendServicesBuilder_.dispose();
1045             weightedBackendServicesBuilder_ = null;
1046             weightedBackendServices_ = other.weightedBackendServices_;
1047             bitField0_ = (bitField0_ & ~0x00000080);
1048             weightedBackendServicesBuilder_ =
1049                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
1050                     ? getWeightedBackendServicesFieldBuilder()
1051                     : null;
1052           } else {
1053             weightedBackendServicesBuilder_.addAllMessages(other.weightedBackendServices_);
1054           }
1055         }
1056       }
1057       this.mergeUnknownFields(other.getUnknownFields());
1058       onChanged();
1059       return this;
1060     }
1061 
1062     @java.lang.Override
isInitialized()1063     public final boolean isInitialized() {
1064       return true;
1065     }
1066 
1067     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)1068     public Builder mergeFrom(
1069         com.google.protobuf.CodedInputStream input,
1070         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1071         throws java.io.IOException {
1072       if (extensionRegistry == null) {
1073         throw new java.lang.NullPointerException();
1074       }
1075       try {
1076         boolean done = false;
1077         while (!done) {
1078           int tag = input.readTag();
1079           switch (tag) {
1080             case 0:
1081               done = true;
1082               break;
1083             case 454399306:
1084               {
1085                 input.readMessage(getRetryPolicyFieldBuilder().getBuilder(), extensionRegistry);
1086                 bitField0_ |= 0x00000010;
1087                 break;
1088               } // case 454399306
1089             case 491427010:
1090               {
1091                 input.readMessage(
1092                     getMaxStreamDurationFieldBuilder().getBuilder(), extensionRegistry);
1093                 bitField0_ |= 0x00000004;
1094                 break;
1095               } // case 491427010
1096             case 1761574930:
1097               {
1098                 input.readMessage(
1099                     getRequestMirrorPolicyFieldBuilder().getBuilder(), extensionRegistry);
1100                 bitField0_ |= 0x00000008;
1101                 break;
1102               } // case 1761574930
1103             case -2108295710:
1104               {
1105                 input.readMessage(getUrlRewriteFieldBuilder().getBuilder(), extensionRegistry);
1106                 bitField0_ |= 0x00000040;
1107                 break;
1108               } // case -2108295710
1109             case -1921357046:
1110               {
1111                 input.readMessage(getTimeoutFieldBuilder().getBuilder(), extensionRegistry);
1112                 bitField0_ |= 0x00000020;
1113                 break;
1114               } // case -1921357046
1115             case -1598742902:
1116               {
1117                 com.google.cloud.compute.v1.WeightedBackendService m =
1118                     input.readMessage(
1119                         com.google.cloud.compute.v1.WeightedBackendService.parser(),
1120                         extensionRegistry);
1121                 if (weightedBackendServicesBuilder_ == null) {
1122                   ensureWeightedBackendServicesIsMutable();
1123                   weightedBackendServices_.add(m);
1124                 } else {
1125                   weightedBackendServicesBuilder_.addMessage(m);
1126                 }
1127                 break;
1128               } // case -1598742902
1129             case -1103417310:
1130               {
1131                 input.readMessage(getCorsPolicyFieldBuilder().getBuilder(), extensionRegistry);
1132                 bitField0_ |= 0x00000001;
1133                 break;
1134               } // case -1103417310
1135             case -992718662:
1136               {
1137                 input.readMessage(
1138                     getFaultInjectionPolicyFieldBuilder().getBuilder(), extensionRegistry);
1139                 bitField0_ |= 0x00000002;
1140                 break;
1141               } // case -992718662
1142             default:
1143               {
1144                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
1145                   done = true; // was an endgroup tag
1146                 }
1147                 break;
1148               } // default:
1149           } // switch (tag)
1150         } // while (!done)
1151       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1152         throw e.unwrapIOException();
1153       } finally {
1154         onChanged();
1155       } // finally
1156       return this;
1157     }
1158 
1159     private int bitField0_;
1160 
1161     private com.google.cloud.compute.v1.CorsPolicy corsPolicy_;
1162     private com.google.protobuf.SingleFieldBuilderV3<
1163             com.google.cloud.compute.v1.CorsPolicy,
1164             com.google.cloud.compute.v1.CorsPolicy.Builder,
1165             com.google.cloud.compute.v1.CorsPolicyOrBuilder>
1166         corsPolicyBuilder_;
1167     /**
1168      *
1169      *
1170      * <pre>
1171      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1172      * </pre>
1173      *
1174      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1175      *
1176      * @return Whether the corsPolicy field is set.
1177      */
hasCorsPolicy()1178     public boolean hasCorsPolicy() {
1179       return ((bitField0_ & 0x00000001) != 0);
1180     }
1181     /**
1182      *
1183      *
1184      * <pre>
1185      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1186      * </pre>
1187      *
1188      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1189      *
1190      * @return The corsPolicy.
1191      */
getCorsPolicy()1192     public com.google.cloud.compute.v1.CorsPolicy getCorsPolicy() {
1193       if (corsPolicyBuilder_ == null) {
1194         return corsPolicy_ == null
1195             ? com.google.cloud.compute.v1.CorsPolicy.getDefaultInstance()
1196             : corsPolicy_;
1197       } else {
1198         return corsPolicyBuilder_.getMessage();
1199       }
1200     }
1201     /**
1202      *
1203      *
1204      * <pre>
1205      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1206      * </pre>
1207      *
1208      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1209      */
setCorsPolicy(com.google.cloud.compute.v1.CorsPolicy value)1210     public Builder setCorsPolicy(com.google.cloud.compute.v1.CorsPolicy value) {
1211       if (corsPolicyBuilder_ == null) {
1212         if (value == null) {
1213           throw new NullPointerException();
1214         }
1215         corsPolicy_ = value;
1216       } else {
1217         corsPolicyBuilder_.setMessage(value);
1218       }
1219       bitField0_ |= 0x00000001;
1220       onChanged();
1221       return this;
1222     }
1223     /**
1224      *
1225      *
1226      * <pre>
1227      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1228      * </pre>
1229      *
1230      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1231      */
setCorsPolicy(com.google.cloud.compute.v1.CorsPolicy.Builder builderForValue)1232     public Builder setCorsPolicy(com.google.cloud.compute.v1.CorsPolicy.Builder builderForValue) {
1233       if (corsPolicyBuilder_ == null) {
1234         corsPolicy_ = builderForValue.build();
1235       } else {
1236         corsPolicyBuilder_.setMessage(builderForValue.build());
1237       }
1238       bitField0_ |= 0x00000001;
1239       onChanged();
1240       return this;
1241     }
1242     /**
1243      *
1244      *
1245      * <pre>
1246      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1247      * </pre>
1248      *
1249      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1250      */
mergeCorsPolicy(com.google.cloud.compute.v1.CorsPolicy value)1251     public Builder mergeCorsPolicy(com.google.cloud.compute.v1.CorsPolicy value) {
1252       if (corsPolicyBuilder_ == null) {
1253         if (((bitField0_ & 0x00000001) != 0)
1254             && corsPolicy_ != null
1255             && corsPolicy_ != com.google.cloud.compute.v1.CorsPolicy.getDefaultInstance()) {
1256           getCorsPolicyBuilder().mergeFrom(value);
1257         } else {
1258           corsPolicy_ = value;
1259         }
1260       } else {
1261         corsPolicyBuilder_.mergeFrom(value);
1262       }
1263       bitField0_ |= 0x00000001;
1264       onChanged();
1265       return this;
1266     }
1267     /**
1268      *
1269      *
1270      * <pre>
1271      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1272      * </pre>
1273      *
1274      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1275      */
clearCorsPolicy()1276     public Builder clearCorsPolicy() {
1277       bitField0_ = (bitField0_ & ~0x00000001);
1278       corsPolicy_ = null;
1279       if (corsPolicyBuilder_ != null) {
1280         corsPolicyBuilder_.dispose();
1281         corsPolicyBuilder_ = null;
1282       }
1283       onChanged();
1284       return this;
1285     }
1286     /**
1287      *
1288      *
1289      * <pre>
1290      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1291      * </pre>
1292      *
1293      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1294      */
getCorsPolicyBuilder()1295     public com.google.cloud.compute.v1.CorsPolicy.Builder getCorsPolicyBuilder() {
1296       bitField0_ |= 0x00000001;
1297       onChanged();
1298       return getCorsPolicyFieldBuilder().getBuilder();
1299     }
1300     /**
1301      *
1302      *
1303      * <pre>
1304      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1305      * </pre>
1306      *
1307      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1308      */
getCorsPolicyOrBuilder()1309     public com.google.cloud.compute.v1.CorsPolicyOrBuilder getCorsPolicyOrBuilder() {
1310       if (corsPolicyBuilder_ != null) {
1311         return corsPolicyBuilder_.getMessageOrBuilder();
1312       } else {
1313         return corsPolicy_ == null
1314             ? com.google.cloud.compute.v1.CorsPolicy.getDefaultInstance()
1315             : corsPolicy_;
1316       }
1317     }
1318     /**
1319      *
1320      *
1321      * <pre>
1322      * The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy.
1323      * </pre>
1324      *
1325      * <code>optional .google.cloud.compute.v1.CorsPolicy cors_policy = 398943748;</code>
1326      */
1327     private com.google.protobuf.SingleFieldBuilderV3<
1328             com.google.cloud.compute.v1.CorsPolicy,
1329             com.google.cloud.compute.v1.CorsPolicy.Builder,
1330             com.google.cloud.compute.v1.CorsPolicyOrBuilder>
getCorsPolicyFieldBuilder()1331         getCorsPolicyFieldBuilder() {
1332       if (corsPolicyBuilder_ == null) {
1333         corsPolicyBuilder_ =
1334             new com.google.protobuf.SingleFieldBuilderV3<
1335                 com.google.cloud.compute.v1.CorsPolicy,
1336                 com.google.cloud.compute.v1.CorsPolicy.Builder,
1337                 com.google.cloud.compute.v1.CorsPolicyOrBuilder>(
1338                 getCorsPolicy(), getParentForChildren(), isClean());
1339         corsPolicy_ = null;
1340       }
1341       return corsPolicyBuilder_;
1342     }
1343 
1344     private com.google.cloud.compute.v1.HttpFaultInjection faultInjectionPolicy_;
1345     private com.google.protobuf.SingleFieldBuilderV3<
1346             com.google.cloud.compute.v1.HttpFaultInjection,
1347             com.google.cloud.compute.v1.HttpFaultInjection.Builder,
1348             com.google.cloud.compute.v1.HttpFaultInjectionOrBuilder>
1349         faultInjectionPolicyBuilder_;
1350     /**
1351      *
1352      *
1353      * <pre>
1354      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1355      * </pre>
1356      *
1357      * <code>
1358      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1359      * </code>
1360      *
1361      * @return Whether the faultInjectionPolicy field is set.
1362      */
hasFaultInjectionPolicy()1363     public boolean hasFaultInjectionPolicy() {
1364       return ((bitField0_ & 0x00000002) != 0);
1365     }
1366     /**
1367      *
1368      *
1369      * <pre>
1370      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1371      * </pre>
1372      *
1373      * <code>
1374      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1375      * </code>
1376      *
1377      * @return The faultInjectionPolicy.
1378      */
getFaultInjectionPolicy()1379     public com.google.cloud.compute.v1.HttpFaultInjection getFaultInjectionPolicy() {
1380       if (faultInjectionPolicyBuilder_ == null) {
1381         return faultInjectionPolicy_ == null
1382             ? com.google.cloud.compute.v1.HttpFaultInjection.getDefaultInstance()
1383             : faultInjectionPolicy_;
1384       } else {
1385         return faultInjectionPolicyBuilder_.getMessage();
1386       }
1387     }
1388     /**
1389      *
1390      *
1391      * <pre>
1392      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1393      * </pre>
1394      *
1395      * <code>
1396      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1397      * </code>
1398      */
setFaultInjectionPolicy(com.google.cloud.compute.v1.HttpFaultInjection value)1399     public Builder setFaultInjectionPolicy(com.google.cloud.compute.v1.HttpFaultInjection value) {
1400       if (faultInjectionPolicyBuilder_ == null) {
1401         if (value == null) {
1402           throw new NullPointerException();
1403         }
1404         faultInjectionPolicy_ = value;
1405       } else {
1406         faultInjectionPolicyBuilder_.setMessage(value);
1407       }
1408       bitField0_ |= 0x00000002;
1409       onChanged();
1410       return this;
1411     }
1412     /**
1413      *
1414      *
1415      * <pre>
1416      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1417      * </pre>
1418      *
1419      * <code>
1420      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1421      * </code>
1422      */
setFaultInjectionPolicy( com.google.cloud.compute.v1.HttpFaultInjection.Builder builderForValue)1423     public Builder setFaultInjectionPolicy(
1424         com.google.cloud.compute.v1.HttpFaultInjection.Builder builderForValue) {
1425       if (faultInjectionPolicyBuilder_ == null) {
1426         faultInjectionPolicy_ = builderForValue.build();
1427       } else {
1428         faultInjectionPolicyBuilder_.setMessage(builderForValue.build());
1429       }
1430       bitField0_ |= 0x00000002;
1431       onChanged();
1432       return this;
1433     }
1434     /**
1435      *
1436      *
1437      * <pre>
1438      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1439      * </pre>
1440      *
1441      * <code>
1442      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1443      * </code>
1444      */
mergeFaultInjectionPolicy(com.google.cloud.compute.v1.HttpFaultInjection value)1445     public Builder mergeFaultInjectionPolicy(com.google.cloud.compute.v1.HttpFaultInjection value) {
1446       if (faultInjectionPolicyBuilder_ == null) {
1447         if (((bitField0_ & 0x00000002) != 0)
1448             && faultInjectionPolicy_ != null
1449             && faultInjectionPolicy_
1450                 != com.google.cloud.compute.v1.HttpFaultInjection.getDefaultInstance()) {
1451           getFaultInjectionPolicyBuilder().mergeFrom(value);
1452         } else {
1453           faultInjectionPolicy_ = value;
1454         }
1455       } else {
1456         faultInjectionPolicyBuilder_.mergeFrom(value);
1457       }
1458       bitField0_ |= 0x00000002;
1459       onChanged();
1460       return this;
1461     }
1462     /**
1463      *
1464      *
1465      * <pre>
1466      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1467      * </pre>
1468      *
1469      * <code>
1470      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1471      * </code>
1472      */
clearFaultInjectionPolicy()1473     public Builder clearFaultInjectionPolicy() {
1474       bitField0_ = (bitField0_ & ~0x00000002);
1475       faultInjectionPolicy_ = null;
1476       if (faultInjectionPolicyBuilder_ != null) {
1477         faultInjectionPolicyBuilder_.dispose();
1478         faultInjectionPolicyBuilder_ = null;
1479       }
1480       onChanged();
1481       return this;
1482     }
1483     /**
1484      *
1485      *
1486      * <pre>
1487      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1488      * </pre>
1489      *
1490      * <code>
1491      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1492      * </code>
1493      */
getFaultInjectionPolicyBuilder()1494     public com.google.cloud.compute.v1.HttpFaultInjection.Builder getFaultInjectionPolicyBuilder() {
1495       bitField0_ |= 0x00000002;
1496       onChanged();
1497       return getFaultInjectionPolicyFieldBuilder().getBuilder();
1498     }
1499     /**
1500      *
1501      *
1502      * <pre>
1503      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1504      * </pre>
1505      *
1506      * <code>
1507      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1508      * </code>
1509      */
1510     public com.google.cloud.compute.v1.HttpFaultInjectionOrBuilder
getFaultInjectionPolicyOrBuilder()1511         getFaultInjectionPolicyOrBuilder() {
1512       if (faultInjectionPolicyBuilder_ != null) {
1513         return faultInjectionPolicyBuilder_.getMessageOrBuilder();
1514       } else {
1515         return faultInjectionPolicy_ == null
1516             ? com.google.cloud.compute.v1.HttpFaultInjection.getDefaultInstance()
1517             : faultInjectionPolicy_;
1518       }
1519     }
1520     /**
1521      *
1522      *
1523      * <pre>
1524      * The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: Routing and traffic management features.
1525      * </pre>
1526      *
1527      * <code>
1528      * optional .google.cloud.compute.v1.HttpFaultInjection fault_injection_policy = 412781079;
1529      * </code>
1530      */
1531     private com.google.protobuf.SingleFieldBuilderV3<
1532             com.google.cloud.compute.v1.HttpFaultInjection,
1533             com.google.cloud.compute.v1.HttpFaultInjection.Builder,
1534             com.google.cloud.compute.v1.HttpFaultInjectionOrBuilder>
getFaultInjectionPolicyFieldBuilder()1535         getFaultInjectionPolicyFieldBuilder() {
1536       if (faultInjectionPolicyBuilder_ == null) {
1537         faultInjectionPolicyBuilder_ =
1538             new com.google.protobuf.SingleFieldBuilderV3<
1539                 com.google.cloud.compute.v1.HttpFaultInjection,
1540                 com.google.cloud.compute.v1.HttpFaultInjection.Builder,
1541                 com.google.cloud.compute.v1.HttpFaultInjectionOrBuilder>(
1542                 getFaultInjectionPolicy(), getParentForChildren(), isClean());
1543         faultInjectionPolicy_ = null;
1544       }
1545       return faultInjectionPolicyBuilder_;
1546     }
1547 
1548     private com.google.cloud.compute.v1.Duration maxStreamDuration_;
1549     private com.google.protobuf.SingleFieldBuilderV3<
1550             com.google.cloud.compute.v1.Duration,
1551             com.google.cloud.compute.v1.Duration.Builder,
1552             com.google.cloud.compute.v1.DurationOrBuilder>
1553         maxStreamDurationBuilder_;
1554     /**
1555      *
1556      *
1557      * <pre>
1558      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1559      * </pre>
1560      *
1561      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1562      *
1563      * @return Whether the maxStreamDuration field is set.
1564      */
hasMaxStreamDuration()1565     public boolean hasMaxStreamDuration() {
1566       return ((bitField0_ & 0x00000004) != 0);
1567     }
1568     /**
1569      *
1570      *
1571      * <pre>
1572      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1573      * </pre>
1574      *
1575      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1576      *
1577      * @return The maxStreamDuration.
1578      */
getMaxStreamDuration()1579     public com.google.cloud.compute.v1.Duration getMaxStreamDuration() {
1580       if (maxStreamDurationBuilder_ == null) {
1581         return maxStreamDuration_ == null
1582             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
1583             : maxStreamDuration_;
1584       } else {
1585         return maxStreamDurationBuilder_.getMessage();
1586       }
1587     }
1588     /**
1589      *
1590      *
1591      * <pre>
1592      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1593      * </pre>
1594      *
1595      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1596      */
setMaxStreamDuration(com.google.cloud.compute.v1.Duration value)1597     public Builder setMaxStreamDuration(com.google.cloud.compute.v1.Duration value) {
1598       if (maxStreamDurationBuilder_ == null) {
1599         if (value == null) {
1600           throw new NullPointerException();
1601         }
1602         maxStreamDuration_ = value;
1603       } else {
1604         maxStreamDurationBuilder_.setMessage(value);
1605       }
1606       bitField0_ |= 0x00000004;
1607       onChanged();
1608       return this;
1609     }
1610     /**
1611      *
1612      *
1613      * <pre>
1614      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1615      * </pre>
1616      *
1617      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1618      */
setMaxStreamDuration( com.google.cloud.compute.v1.Duration.Builder builderForValue)1619     public Builder setMaxStreamDuration(
1620         com.google.cloud.compute.v1.Duration.Builder builderForValue) {
1621       if (maxStreamDurationBuilder_ == null) {
1622         maxStreamDuration_ = builderForValue.build();
1623       } else {
1624         maxStreamDurationBuilder_.setMessage(builderForValue.build());
1625       }
1626       bitField0_ |= 0x00000004;
1627       onChanged();
1628       return this;
1629     }
1630     /**
1631      *
1632      *
1633      * <pre>
1634      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1635      * </pre>
1636      *
1637      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1638      */
mergeMaxStreamDuration(com.google.cloud.compute.v1.Duration value)1639     public Builder mergeMaxStreamDuration(com.google.cloud.compute.v1.Duration value) {
1640       if (maxStreamDurationBuilder_ == null) {
1641         if (((bitField0_ & 0x00000004) != 0)
1642             && maxStreamDuration_ != null
1643             && maxStreamDuration_ != com.google.cloud.compute.v1.Duration.getDefaultInstance()) {
1644           getMaxStreamDurationBuilder().mergeFrom(value);
1645         } else {
1646           maxStreamDuration_ = value;
1647         }
1648       } else {
1649         maxStreamDurationBuilder_.mergeFrom(value);
1650       }
1651       bitField0_ |= 0x00000004;
1652       onChanged();
1653       return this;
1654     }
1655     /**
1656      *
1657      *
1658      * <pre>
1659      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1660      * </pre>
1661      *
1662      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1663      */
clearMaxStreamDuration()1664     public Builder clearMaxStreamDuration() {
1665       bitField0_ = (bitField0_ & ~0x00000004);
1666       maxStreamDuration_ = null;
1667       if (maxStreamDurationBuilder_ != null) {
1668         maxStreamDurationBuilder_.dispose();
1669         maxStreamDurationBuilder_ = null;
1670       }
1671       onChanged();
1672       return this;
1673     }
1674     /**
1675      *
1676      *
1677      * <pre>
1678      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1679      * </pre>
1680      *
1681      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1682      */
getMaxStreamDurationBuilder()1683     public com.google.cloud.compute.v1.Duration.Builder getMaxStreamDurationBuilder() {
1684       bitField0_ |= 0x00000004;
1685       onChanged();
1686       return getMaxStreamDurationFieldBuilder().getBuilder();
1687     }
1688     /**
1689      *
1690      *
1691      * <pre>
1692      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1693      * </pre>
1694      *
1695      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1696      */
getMaxStreamDurationOrBuilder()1697     public com.google.cloud.compute.v1.DurationOrBuilder getMaxStreamDurationOrBuilder() {
1698       if (maxStreamDurationBuilder_ != null) {
1699         return maxStreamDurationBuilder_.getMessageOrBuilder();
1700       } else {
1701         return maxStreamDuration_ == null
1702             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
1703             : maxStreamDuration_;
1704       }
1705     }
1706     /**
1707      *
1708      *
1709      * <pre>
1710      * Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
1711      * </pre>
1712      *
1713      * <code>optional .google.cloud.compute.v1.Duration max_stream_duration = 61428376;</code>
1714      */
1715     private com.google.protobuf.SingleFieldBuilderV3<
1716             com.google.cloud.compute.v1.Duration,
1717             com.google.cloud.compute.v1.Duration.Builder,
1718             com.google.cloud.compute.v1.DurationOrBuilder>
getMaxStreamDurationFieldBuilder()1719         getMaxStreamDurationFieldBuilder() {
1720       if (maxStreamDurationBuilder_ == null) {
1721         maxStreamDurationBuilder_ =
1722             new com.google.protobuf.SingleFieldBuilderV3<
1723                 com.google.cloud.compute.v1.Duration,
1724                 com.google.cloud.compute.v1.Duration.Builder,
1725                 com.google.cloud.compute.v1.DurationOrBuilder>(
1726                 getMaxStreamDuration(), getParentForChildren(), isClean());
1727         maxStreamDuration_ = null;
1728       }
1729       return maxStreamDurationBuilder_;
1730     }
1731 
1732     private com.google.cloud.compute.v1.RequestMirrorPolicy requestMirrorPolicy_;
1733     private com.google.protobuf.SingleFieldBuilderV3<
1734             com.google.cloud.compute.v1.RequestMirrorPolicy,
1735             com.google.cloud.compute.v1.RequestMirrorPolicy.Builder,
1736             com.google.cloud.compute.v1.RequestMirrorPolicyOrBuilder>
1737         requestMirrorPolicyBuilder_;
1738     /**
1739      *
1740      *
1741      * <pre>
1742      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1743      * </pre>
1744      *
1745      * <code>
1746      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1747      * </code>
1748      *
1749      * @return Whether the requestMirrorPolicy field is set.
1750      */
hasRequestMirrorPolicy()1751     public boolean hasRequestMirrorPolicy() {
1752       return ((bitField0_ & 0x00000008) != 0);
1753     }
1754     /**
1755      *
1756      *
1757      * <pre>
1758      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1759      * </pre>
1760      *
1761      * <code>
1762      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1763      * </code>
1764      *
1765      * @return The requestMirrorPolicy.
1766      */
getRequestMirrorPolicy()1767     public com.google.cloud.compute.v1.RequestMirrorPolicy getRequestMirrorPolicy() {
1768       if (requestMirrorPolicyBuilder_ == null) {
1769         return requestMirrorPolicy_ == null
1770             ? com.google.cloud.compute.v1.RequestMirrorPolicy.getDefaultInstance()
1771             : requestMirrorPolicy_;
1772       } else {
1773         return requestMirrorPolicyBuilder_.getMessage();
1774       }
1775     }
1776     /**
1777      *
1778      *
1779      * <pre>
1780      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1781      * </pre>
1782      *
1783      * <code>
1784      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1785      * </code>
1786      */
setRequestMirrorPolicy(com.google.cloud.compute.v1.RequestMirrorPolicy value)1787     public Builder setRequestMirrorPolicy(com.google.cloud.compute.v1.RequestMirrorPolicy value) {
1788       if (requestMirrorPolicyBuilder_ == null) {
1789         if (value == null) {
1790           throw new NullPointerException();
1791         }
1792         requestMirrorPolicy_ = value;
1793       } else {
1794         requestMirrorPolicyBuilder_.setMessage(value);
1795       }
1796       bitField0_ |= 0x00000008;
1797       onChanged();
1798       return this;
1799     }
1800     /**
1801      *
1802      *
1803      * <pre>
1804      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1805      * </pre>
1806      *
1807      * <code>
1808      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1809      * </code>
1810      */
setRequestMirrorPolicy( com.google.cloud.compute.v1.RequestMirrorPolicy.Builder builderForValue)1811     public Builder setRequestMirrorPolicy(
1812         com.google.cloud.compute.v1.RequestMirrorPolicy.Builder builderForValue) {
1813       if (requestMirrorPolicyBuilder_ == null) {
1814         requestMirrorPolicy_ = builderForValue.build();
1815       } else {
1816         requestMirrorPolicyBuilder_.setMessage(builderForValue.build());
1817       }
1818       bitField0_ |= 0x00000008;
1819       onChanged();
1820       return this;
1821     }
1822     /**
1823      *
1824      *
1825      * <pre>
1826      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1827      * </pre>
1828      *
1829      * <code>
1830      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1831      * </code>
1832      */
mergeRequestMirrorPolicy(com.google.cloud.compute.v1.RequestMirrorPolicy value)1833     public Builder mergeRequestMirrorPolicy(com.google.cloud.compute.v1.RequestMirrorPolicy value) {
1834       if (requestMirrorPolicyBuilder_ == null) {
1835         if (((bitField0_ & 0x00000008) != 0)
1836             && requestMirrorPolicy_ != null
1837             && requestMirrorPolicy_
1838                 != com.google.cloud.compute.v1.RequestMirrorPolicy.getDefaultInstance()) {
1839           getRequestMirrorPolicyBuilder().mergeFrom(value);
1840         } else {
1841           requestMirrorPolicy_ = value;
1842         }
1843       } else {
1844         requestMirrorPolicyBuilder_.mergeFrom(value);
1845       }
1846       bitField0_ |= 0x00000008;
1847       onChanged();
1848       return this;
1849     }
1850     /**
1851      *
1852      *
1853      * <pre>
1854      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1855      * </pre>
1856      *
1857      * <code>
1858      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1859      * </code>
1860      */
clearRequestMirrorPolicy()1861     public Builder clearRequestMirrorPolicy() {
1862       bitField0_ = (bitField0_ & ~0x00000008);
1863       requestMirrorPolicy_ = null;
1864       if (requestMirrorPolicyBuilder_ != null) {
1865         requestMirrorPolicyBuilder_.dispose();
1866         requestMirrorPolicyBuilder_ = null;
1867       }
1868       onChanged();
1869       return this;
1870     }
1871     /**
1872      *
1873      *
1874      * <pre>
1875      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1876      * </pre>
1877      *
1878      * <code>
1879      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1880      * </code>
1881      */
getRequestMirrorPolicyBuilder()1882     public com.google.cloud.compute.v1.RequestMirrorPolicy.Builder getRequestMirrorPolicyBuilder() {
1883       bitField0_ |= 0x00000008;
1884       onChanged();
1885       return getRequestMirrorPolicyFieldBuilder().getBuilder();
1886     }
1887     /**
1888      *
1889      *
1890      * <pre>
1891      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1892      * </pre>
1893      *
1894      * <code>
1895      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1896      * </code>
1897      */
1898     public com.google.cloud.compute.v1.RequestMirrorPolicyOrBuilder
getRequestMirrorPolicyOrBuilder()1899         getRequestMirrorPolicyOrBuilder() {
1900       if (requestMirrorPolicyBuilder_ != null) {
1901         return requestMirrorPolicyBuilder_.getMessageOrBuilder();
1902       } else {
1903         return requestMirrorPolicy_ == null
1904             ? com.google.cloud.compute.v1.RequestMirrorPolicy.getDefaultInstance()
1905             : requestMirrorPolicy_;
1906       }
1907     }
1908     /**
1909      *
1910      *
1911      * <pre>
1912      * Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
1913      * </pre>
1914      *
1915      * <code>
1916      * optional .google.cloud.compute.v1.RequestMirrorPolicy request_mirror_policy = 220196866;
1917      * </code>
1918      */
1919     private com.google.protobuf.SingleFieldBuilderV3<
1920             com.google.cloud.compute.v1.RequestMirrorPolicy,
1921             com.google.cloud.compute.v1.RequestMirrorPolicy.Builder,
1922             com.google.cloud.compute.v1.RequestMirrorPolicyOrBuilder>
getRequestMirrorPolicyFieldBuilder()1923         getRequestMirrorPolicyFieldBuilder() {
1924       if (requestMirrorPolicyBuilder_ == null) {
1925         requestMirrorPolicyBuilder_ =
1926             new com.google.protobuf.SingleFieldBuilderV3<
1927                 com.google.cloud.compute.v1.RequestMirrorPolicy,
1928                 com.google.cloud.compute.v1.RequestMirrorPolicy.Builder,
1929                 com.google.cloud.compute.v1.RequestMirrorPolicyOrBuilder>(
1930                 getRequestMirrorPolicy(), getParentForChildren(), isClean());
1931         requestMirrorPolicy_ = null;
1932       }
1933       return requestMirrorPolicyBuilder_;
1934     }
1935 
1936     private com.google.cloud.compute.v1.HttpRetryPolicy retryPolicy_;
1937     private com.google.protobuf.SingleFieldBuilderV3<
1938             com.google.cloud.compute.v1.HttpRetryPolicy,
1939             com.google.cloud.compute.v1.HttpRetryPolicy.Builder,
1940             com.google.cloud.compute.v1.HttpRetryPolicyOrBuilder>
1941         retryPolicyBuilder_;
1942     /**
1943      *
1944      *
1945      * <pre>
1946      * Specifies the retry policy associated with this route.
1947      * </pre>
1948      *
1949      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
1950      *
1951      * @return Whether the retryPolicy field is set.
1952      */
hasRetryPolicy()1953     public boolean hasRetryPolicy() {
1954       return ((bitField0_ & 0x00000010) != 0);
1955     }
1956     /**
1957      *
1958      *
1959      * <pre>
1960      * Specifies the retry policy associated with this route.
1961      * </pre>
1962      *
1963      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
1964      *
1965      * @return The retryPolicy.
1966      */
getRetryPolicy()1967     public com.google.cloud.compute.v1.HttpRetryPolicy getRetryPolicy() {
1968       if (retryPolicyBuilder_ == null) {
1969         return retryPolicy_ == null
1970             ? com.google.cloud.compute.v1.HttpRetryPolicy.getDefaultInstance()
1971             : retryPolicy_;
1972       } else {
1973         return retryPolicyBuilder_.getMessage();
1974       }
1975     }
1976     /**
1977      *
1978      *
1979      * <pre>
1980      * Specifies the retry policy associated with this route.
1981      * </pre>
1982      *
1983      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
1984      */
setRetryPolicy(com.google.cloud.compute.v1.HttpRetryPolicy value)1985     public Builder setRetryPolicy(com.google.cloud.compute.v1.HttpRetryPolicy value) {
1986       if (retryPolicyBuilder_ == null) {
1987         if (value == null) {
1988           throw new NullPointerException();
1989         }
1990         retryPolicy_ = value;
1991       } else {
1992         retryPolicyBuilder_.setMessage(value);
1993       }
1994       bitField0_ |= 0x00000010;
1995       onChanged();
1996       return this;
1997     }
1998     /**
1999      *
2000      *
2001      * <pre>
2002      * Specifies the retry policy associated with this route.
2003      * </pre>
2004      *
2005      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
2006      */
setRetryPolicy( com.google.cloud.compute.v1.HttpRetryPolicy.Builder builderForValue)2007     public Builder setRetryPolicy(
2008         com.google.cloud.compute.v1.HttpRetryPolicy.Builder builderForValue) {
2009       if (retryPolicyBuilder_ == null) {
2010         retryPolicy_ = builderForValue.build();
2011       } else {
2012         retryPolicyBuilder_.setMessage(builderForValue.build());
2013       }
2014       bitField0_ |= 0x00000010;
2015       onChanged();
2016       return this;
2017     }
2018     /**
2019      *
2020      *
2021      * <pre>
2022      * Specifies the retry policy associated with this route.
2023      * </pre>
2024      *
2025      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
2026      */
mergeRetryPolicy(com.google.cloud.compute.v1.HttpRetryPolicy value)2027     public Builder mergeRetryPolicy(com.google.cloud.compute.v1.HttpRetryPolicy value) {
2028       if (retryPolicyBuilder_ == null) {
2029         if (((bitField0_ & 0x00000010) != 0)
2030             && retryPolicy_ != null
2031             && retryPolicy_ != com.google.cloud.compute.v1.HttpRetryPolicy.getDefaultInstance()) {
2032           getRetryPolicyBuilder().mergeFrom(value);
2033         } else {
2034           retryPolicy_ = value;
2035         }
2036       } else {
2037         retryPolicyBuilder_.mergeFrom(value);
2038       }
2039       bitField0_ |= 0x00000010;
2040       onChanged();
2041       return this;
2042     }
2043     /**
2044      *
2045      *
2046      * <pre>
2047      * Specifies the retry policy associated with this route.
2048      * </pre>
2049      *
2050      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
2051      */
clearRetryPolicy()2052     public Builder clearRetryPolicy() {
2053       bitField0_ = (bitField0_ & ~0x00000010);
2054       retryPolicy_ = null;
2055       if (retryPolicyBuilder_ != null) {
2056         retryPolicyBuilder_.dispose();
2057         retryPolicyBuilder_ = null;
2058       }
2059       onChanged();
2060       return this;
2061     }
2062     /**
2063      *
2064      *
2065      * <pre>
2066      * Specifies the retry policy associated with this route.
2067      * </pre>
2068      *
2069      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
2070      */
getRetryPolicyBuilder()2071     public com.google.cloud.compute.v1.HttpRetryPolicy.Builder getRetryPolicyBuilder() {
2072       bitField0_ |= 0x00000010;
2073       onChanged();
2074       return getRetryPolicyFieldBuilder().getBuilder();
2075     }
2076     /**
2077      *
2078      *
2079      * <pre>
2080      * Specifies the retry policy associated with this route.
2081      * </pre>
2082      *
2083      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
2084      */
getRetryPolicyOrBuilder()2085     public com.google.cloud.compute.v1.HttpRetryPolicyOrBuilder getRetryPolicyOrBuilder() {
2086       if (retryPolicyBuilder_ != null) {
2087         return retryPolicyBuilder_.getMessageOrBuilder();
2088       } else {
2089         return retryPolicy_ == null
2090             ? com.google.cloud.compute.v1.HttpRetryPolicy.getDefaultInstance()
2091             : retryPolicy_;
2092       }
2093     }
2094     /**
2095      *
2096      *
2097      * <pre>
2098      * Specifies the retry policy associated with this route.
2099      * </pre>
2100      *
2101      * <code>optional .google.cloud.compute.v1.HttpRetryPolicy retry_policy = 56799913;</code>
2102      */
2103     private com.google.protobuf.SingleFieldBuilderV3<
2104             com.google.cloud.compute.v1.HttpRetryPolicy,
2105             com.google.cloud.compute.v1.HttpRetryPolicy.Builder,
2106             com.google.cloud.compute.v1.HttpRetryPolicyOrBuilder>
getRetryPolicyFieldBuilder()2107         getRetryPolicyFieldBuilder() {
2108       if (retryPolicyBuilder_ == null) {
2109         retryPolicyBuilder_ =
2110             new com.google.protobuf.SingleFieldBuilderV3<
2111                 com.google.cloud.compute.v1.HttpRetryPolicy,
2112                 com.google.cloud.compute.v1.HttpRetryPolicy.Builder,
2113                 com.google.cloud.compute.v1.HttpRetryPolicyOrBuilder>(
2114                 getRetryPolicy(), getParentForChildren(), isClean());
2115         retryPolicy_ = null;
2116       }
2117       return retryPolicyBuilder_;
2118     }
2119 
2120     private com.google.cloud.compute.v1.Duration timeout_;
2121     private com.google.protobuf.SingleFieldBuilderV3<
2122             com.google.cloud.compute.v1.Duration,
2123             com.google.cloud.compute.v1.Duration.Builder,
2124             com.google.cloud.compute.v1.DurationOrBuilder>
2125         timeoutBuilder_;
2126     /**
2127      *
2128      *
2129      * <pre>
2130      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2131      * </pre>
2132      *
2133      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2134      *
2135      * @return Whether the timeout field is set.
2136      */
hasTimeout()2137     public boolean hasTimeout() {
2138       return ((bitField0_ & 0x00000020) != 0);
2139     }
2140     /**
2141      *
2142      *
2143      * <pre>
2144      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2145      * </pre>
2146      *
2147      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2148      *
2149      * @return The timeout.
2150      */
getTimeout()2151     public com.google.cloud.compute.v1.Duration getTimeout() {
2152       if (timeoutBuilder_ == null) {
2153         return timeout_ == null
2154             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
2155             : timeout_;
2156       } else {
2157         return timeoutBuilder_.getMessage();
2158       }
2159     }
2160     /**
2161      *
2162      *
2163      * <pre>
2164      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2165      * </pre>
2166      *
2167      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2168      */
setTimeout(com.google.cloud.compute.v1.Duration value)2169     public Builder setTimeout(com.google.cloud.compute.v1.Duration value) {
2170       if (timeoutBuilder_ == null) {
2171         if (value == null) {
2172           throw new NullPointerException();
2173         }
2174         timeout_ = value;
2175       } else {
2176         timeoutBuilder_.setMessage(value);
2177       }
2178       bitField0_ |= 0x00000020;
2179       onChanged();
2180       return this;
2181     }
2182     /**
2183      *
2184      *
2185      * <pre>
2186      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2187      * </pre>
2188      *
2189      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2190      */
setTimeout(com.google.cloud.compute.v1.Duration.Builder builderForValue)2191     public Builder setTimeout(com.google.cloud.compute.v1.Duration.Builder builderForValue) {
2192       if (timeoutBuilder_ == null) {
2193         timeout_ = builderForValue.build();
2194       } else {
2195         timeoutBuilder_.setMessage(builderForValue.build());
2196       }
2197       bitField0_ |= 0x00000020;
2198       onChanged();
2199       return this;
2200     }
2201     /**
2202      *
2203      *
2204      * <pre>
2205      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2206      * </pre>
2207      *
2208      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2209      */
mergeTimeout(com.google.cloud.compute.v1.Duration value)2210     public Builder mergeTimeout(com.google.cloud.compute.v1.Duration value) {
2211       if (timeoutBuilder_ == null) {
2212         if (((bitField0_ & 0x00000020) != 0)
2213             && timeout_ != null
2214             && timeout_ != com.google.cloud.compute.v1.Duration.getDefaultInstance()) {
2215           getTimeoutBuilder().mergeFrom(value);
2216         } else {
2217           timeout_ = value;
2218         }
2219       } else {
2220         timeoutBuilder_.mergeFrom(value);
2221       }
2222       bitField0_ |= 0x00000020;
2223       onChanged();
2224       return this;
2225     }
2226     /**
2227      *
2228      *
2229      * <pre>
2230      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2231      * </pre>
2232      *
2233      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2234      */
clearTimeout()2235     public Builder clearTimeout() {
2236       bitField0_ = (bitField0_ & ~0x00000020);
2237       timeout_ = null;
2238       if (timeoutBuilder_ != null) {
2239         timeoutBuilder_.dispose();
2240         timeoutBuilder_ = null;
2241       }
2242       onChanged();
2243       return this;
2244     }
2245     /**
2246      *
2247      *
2248      * <pre>
2249      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2250      * </pre>
2251      *
2252      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2253      */
getTimeoutBuilder()2254     public com.google.cloud.compute.v1.Duration.Builder getTimeoutBuilder() {
2255       bitField0_ |= 0x00000020;
2256       onChanged();
2257       return getTimeoutFieldBuilder().getBuilder();
2258     }
2259     /**
2260      *
2261      *
2262      * <pre>
2263      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2264      * </pre>
2265      *
2266      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2267      */
getTimeoutOrBuilder()2268     public com.google.cloud.compute.v1.DurationOrBuilder getTimeoutOrBuilder() {
2269       if (timeoutBuilder_ != null) {
2270         return timeoutBuilder_.getMessageOrBuilder();
2271       } else {
2272         return timeout_ == null
2273             ? com.google.cloud.compute.v1.Duration.getDefaultInstance()
2274             : timeout_;
2275       }
2276     }
2277     /**
2278      *
2279      *
2280      * <pre>
2281      * Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
2282      * </pre>
2283      *
2284      * <code>optional .google.cloud.compute.v1.Duration timeout = 296701281;</code>
2285      */
2286     private com.google.protobuf.SingleFieldBuilderV3<
2287             com.google.cloud.compute.v1.Duration,
2288             com.google.cloud.compute.v1.Duration.Builder,
2289             com.google.cloud.compute.v1.DurationOrBuilder>
getTimeoutFieldBuilder()2290         getTimeoutFieldBuilder() {
2291       if (timeoutBuilder_ == null) {
2292         timeoutBuilder_ =
2293             new com.google.protobuf.SingleFieldBuilderV3<
2294                 com.google.cloud.compute.v1.Duration,
2295                 com.google.cloud.compute.v1.Duration.Builder,
2296                 com.google.cloud.compute.v1.DurationOrBuilder>(
2297                 getTimeout(), getParentForChildren(), isClean());
2298         timeout_ = null;
2299       }
2300       return timeoutBuilder_;
2301     }
2302 
2303     private com.google.cloud.compute.v1.UrlRewrite urlRewrite_;
2304     private com.google.protobuf.SingleFieldBuilderV3<
2305             com.google.cloud.compute.v1.UrlRewrite,
2306             com.google.cloud.compute.v1.UrlRewrite.Builder,
2307             com.google.cloud.compute.v1.UrlRewriteOrBuilder>
2308         urlRewriteBuilder_;
2309     /**
2310      *
2311      *
2312      * <pre>
2313      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2314      * </pre>
2315      *
2316      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2317      *
2318      * @return Whether the urlRewrite field is set.
2319      */
hasUrlRewrite()2320     public boolean hasUrlRewrite() {
2321       return ((bitField0_ & 0x00000040) != 0);
2322     }
2323     /**
2324      *
2325      *
2326      * <pre>
2327      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2328      * </pre>
2329      *
2330      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2331      *
2332      * @return The urlRewrite.
2333      */
getUrlRewrite()2334     public com.google.cloud.compute.v1.UrlRewrite getUrlRewrite() {
2335       if (urlRewriteBuilder_ == null) {
2336         return urlRewrite_ == null
2337             ? com.google.cloud.compute.v1.UrlRewrite.getDefaultInstance()
2338             : urlRewrite_;
2339       } else {
2340         return urlRewriteBuilder_.getMessage();
2341       }
2342     }
2343     /**
2344      *
2345      *
2346      * <pre>
2347      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2348      * </pre>
2349      *
2350      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2351      */
setUrlRewrite(com.google.cloud.compute.v1.UrlRewrite value)2352     public Builder setUrlRewrite(com.google.cloud.compute.v1.UrlRewrite value) {
2353       if (urlRewriteBuilder_ == null) {
2354         if (value == null) {
2355           throw new NullPointerException();
2356         }
2357         urlRewrite_ = value;
2358       } else {
2359         urlRewriteBuilder_.setMessage(value);
2360       }
2361       bitField0_ |= 0x00000040;
2362       onChanged();
2363       return this;
2364     }
2365     /**
2366      *
2367      *
2368      * <pre>
2369      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2370      * </pre>
2371      *
2372      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2373      */
setUrlRewrite(com.google.cloud.compute.v1.UrlRewrite.Builder builderForValue)2374     public Builder setUrlRewrite(com.google.cloud.compute.v1.UrlRewrite.Builder builderForValue) {
2375       if (urlRewriteBuilder_ == null) {
2376         urlRewrite_ = builderForValue.build();
2377       } else {
2378         urlRewriteBuilder_.setMessage(builderForValue.build());
2379       }
2380       bitField0_ |= 0x00000040;
2381       onChanged();
2382       return this;
2383     }
2384     /**
2385      *
2386      *
2387      * <pre>
2388      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2389      * </pre>
2390      *
2391      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2392      */
mergeUrlRewrite(com.google.cloud.compute.v1.UrlRewrite value)2393     public Builder mergeUrlRewrite(com.google.cloud.compute.v1.UrlRewrite value) {
2394       if (urlRewriteBuilder_ == null) {
2395         if (((bitField0_ & 0x00000040) != 0)
2396             && urlRewrite_ != null
2397             && urlRewrite_ != com.google.cloud.compute.v1.UrlRewrite.getDefaultInstance()) {
2398           getUrlRewriteBuilder().mergeFrom(value);
2399         } else {
2400           urlRewrite_ = value;
2401         }
2402       } else {
2403         urlRewriteBuilder_.mergeFrom(value);
2404       }
2405       bitField0_ |= 0x00000040;
2406       onChanged();
2407       return this;
2408     }
2409     /**
2410      *
2411      *
2412      * <pre>
2413      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2414      * </pre>
2415      *
2416      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2417      */
clearUrlRewrite()2418     public Builder clearUrlRewrite() {
2419       bitField0_ = (bitField0_ & ~0x00000040);
2420       urlRewrite_ = null;
2421       if (urlRewriteBuilder_ != null) {
2422         urlRewriteBuilder_.dispose();
2423         urlRewriteBuilder_ = null;
2424       }
2425       onChanged();
2426       return this;
2427     }
2428     /**
2429      *
2430      *
2431      * <pre>
2432      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2433      * </pre>
2434      *
2435      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2436      */
getUrlRewriteBuilder()2437     public com.google.cloud.compute.v1.UrlRewrite.Builder getUrlRewriteBuilder() {
2438       bitField0_ |= 0x00000040;
2439       onChanged();
2440       return getUrlRewriteFieldBuilder().getBuilder();
2441     }
2442     /**
2443      *
2444      *
2445      * <pre>
2446      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2447      * </pre>
2448      *
2449      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2450      */
getUrlRewriteOrBuilder()2451     public com.google.cloud.compute.v1.UrlRewriteOrBuilder getUrlRewriteOrBuilder() {
2452       if (urlRewriteBuilder_ != null) {
2453         return urlRewriteBuilder_.getMessageOrBuilder();
2454       } else {
2455         return urlRewrite_ == null
2456             ? com.google.cloud.compute.v1.UrlRewrite.getDefaultInstance()
2457             : urlRewrite_;
2458       }
2459     }
2460     /**
2461      *
2462      *
2463      * <pre>
2464      * The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.
2465      * </pre>
2466      *
2467      * <code>optional .google.cloud.compute.v1.UrlRewrite url_rewrite = 273333948;</code>
2468      */
2469     private com.google.protobuf.SingleFieldBuilderV3<
2470             com.google.cloud.compute.v1.UrlRewrite,
2471             com.google.cloud.compute.v1.UrlRewrite.Builder,
2472             com.google.cloud.compute.v1.UrlRewriteOrBuilder>
getUrlRewriteFieldBuilder()2473         getUrlRewriteFieldBuilder() {
2474       if (urlRewriteBuilder_ == null) {
2475         urlRewriteBuilder_ =
2476             new com.google.protobuf.SingleFieldBuilderV3<
2477                 com.google.cloud.compute.v1.UrlRewrite,
2478                 com.google.cloud.compute.v1.UrlRewrite.Builder,
2479                 com.google.cloud.compute.v1.UrlRewriteOrBuilder>(
2480                 getUrlRewrite(), getParentForChildren(), isClean());
2481         urlRewrite_ = null;
2482       }
2483       return urlRewriteBuilder_;
2484     }
2485 
2486     private java.util.List<com.google.cloud.compute.v1.WeightedBackendService>
2487         weightedBackendServices_ = java.util.Collections.emptyList();
2488 
ensureWeightedBackendServicesIsMutable()2489     private void ensureWeightedBackendServicesIsMutable() {
2490       if (!((bitField0_ & 0x00000080) != 0)) {
2491         weightedBackendServices_ =
2492             new java.util.ArrayList<com.google.cloud.compute.v1.WeightedBackendService>(
2493                 weightedBackendServices_);
2494         bitField0_ |= 0x00000080;
2495       }
2496     }
2497 
2498     private com.google.protobuf.RepeatedFieldBuilderV3<
2499             com.google.cloud.compute.v1.WeightedBackendService,
2500             com.google.cloud.compute.v1.WeightedBackendService.Builder,
2501             com.google.cloud.compute.v1.WeightedBackendServiceOrBuilder>
2502         weightedBackendServicesBuilder_;
2503 
2504     /**
2505      *
2506      *
2507      * <pre>
2508      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2509      * </pre>
2510      *
2511      * <code>
2512      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2513      * </code>
2514      */
2515     public java.util.List<com.google.cloud.compute.v1.WeightedBackendService>
getWeightedBackendServicesList()2516         getWeightedBackendServicesList() {
2517       if (weightedBackendServicesBuilder_ == null) {
2518         return java.util.Collections.unmodifiableList(weightedBackendServices_);
2519       } else {
2520         return weightedBackendServicesBuilder_.getMessageList();
2521       }
2522     }
2523     /**
2524      *
2525      *
2526      * <pre>
2527      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2528      * </pre>
2529      *
2530      * <code>
2531      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2532      * </code>
2533      */
getWeightedBackendServicesCount()2534     public int getWeightedBackendServicesCount() {
2535       if (weightedBackendServicesBuilder_ == null) {
2536         return weightedBackendServices_.size();
2537       } else {
2538         return weightedBackendServicesBuilder_.getCount();
2539       }
2540     }
2541     /**
2542      *
2543      *
2544      * <pre>
2545      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2546      * </pre>
2547      *
2548      * <code>
2549      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2550      * </code>
2551      */
getWeightedBackendServices( int index)2552     public com.google.cloud.compute.v1.WeightedBackendService getWeightedBackendServices(
2553         int index) {
2554       if (weightedBackendServicesBuilder_ == null) {
2555         return weightedBackendServices_.get(index);
2556       } else {
2557         return weightedBackendServicesBuilder_.getMessage(index);
2558       }
2559     }
2560     /**
2561      *
2562      *
2563      * <pre>
2564      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2565      * </pre>
2566      *
2567      * <code>
2568      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2569      * </code>
2570      */
setWeightedBackendServices( int index, com.google.cloud.compute.v1.WeightedBackendService value)2571     public Builder setWeightedBackendServices(
2572         int index, com.google.cloud.compute.v1.WeightedBackendService value) {
2573       if (weightedBackendServicesBuilder_ == null) {
2574         if (value == null) {
2575           throw new NullPointerException();
2576         }
2577         ensureWeightedBackendServicesIsMutable();
2578         weightedBackendServices_.set(index, value);
2579         onChanged();
2580       } else {
2581         weightedBackendServicesBuilder_.setMessage(index, value);
2582       }
2583       return this;
2584     }
2585     /**
2586      *
2587      *
2588      * <pre>
2589      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2590      * </pre>
2591      *
2592      * <code>
2593      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2594      * </code>
2595      */
setWeightedBackendServices( int index, com.google.cloud.compute.v1.WeightedBackendService.Builder builderForValue)2596     public Builder setWeightedBackendServices(
2597         int index, com.google.cloud.compute.v1.WeightedBackendService.Builder builderForValue) {
2598       if (weightedBackendServicesBuilder_ == null) {
2599         ensureWeightedBackendServicesIsMutable();
2600         weightedBackendServices_.set(index, builderForValue.build());
2601         onChanged();
2602       } else {
2603         weightedBackendServicesBuilder_.setMessage(index, builderForValue.build());
2604       }
2605       return this;
2606     }
2607     /**
2608      *
2609      *
2610      * <pre>
2611      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2612      * </pre>
2613      *
2614      * <code>
2615      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2616      * </code>
2617      */
addWeightedBackendServices( com.google.cloud.compute.v1.WeightedBackendService value)2618     public Builder addWeightedBackendServices(
2619         com.google.cloud.compute.v1.WeightedBackendService value) {
2620       if (weightedBackendServicesBuilder_ == null) {
2621         if (value == null) {
2622           throw new NullPointerException();
2623         }
2624         ensureWeightedBackendServicesIsMutable();
2625         weightedBackendServices_.add(value);
2626         onChanged();
2627       } else {
2628         weightedBackendServicesBuilder_.addMessage(value);
2629       }
2630       return this;
2631     }
2632     /**
2633      *
2634      *
2635      * <pre>
2636      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2637      * </pre>
2638      *
2639      * <code>
2640      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2641      * </code>
2642      */
addWeightedBackendServices( int index, com.google.cloud.compute.v1.WeightedBackendService value)2643     public Builder addWeightedBackendServices(
2644         int index, com.google.cloud.compute.v1.WeightedBackendService value) {
2645       if (weightedBackendServicesBuilder_ == null) {
2646         if (value == null) {
2647           throw new NullPointerException();
2648         }
2649         ensureWeightedBackendServicesIsMutable();
2650         weightedBackendServices_.add(index, value);
2651         onChanged();
2652       } else {
2653         weightedBackendServicesBuilder_.addMessage(index, value);
2654       }
2655       return this;
2656     }
2657     /**
2658      *
2659      *
2660      * <pre>
2661      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2662      * </pre>
2663      *
2664      * <code>
2665      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2666      * </code>
2667      */
addWeightedBackendServices( com.google.cloud.compute.v1.WeightedBackendService.Builder builderForValue)2668     public Builder addWeightedBackendServices(
2669         com.google.cloud.compute.v1.WeightedBackendService.Builder builderForValue) {
2670       if (weightedBackendServicesBuilder_ == null) {
2671         ensureWeightedBackendServicesIsMutable();
2672         weightedBackendServices_.add(builderForValue.build());
2673         onChanged();
2674       } else {
2675         weightedBackendServicesBuilder_.addMessage(builderForValue.build());
2676       }
2677       return this;
2678     }
2679     /**
2680      *
2681      *
2682      * <pre>
2683      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2684      * </pre>
2685      *
2686      * <code>
2687      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2688      * </code>
2689      */
addWeightedBackendServices( int index, com.google.cloud.compute.v1.WeightedBackendService.Builder builderForValue)2690     public Builder addWeightedBackendServices(
2691         int index, com.google.cloud.compute.v1.WeightedBackendService.Builder builderForValue) {
2692       if (weightedBackendServicesBuilder_ == null) {
2693         ensureWeightedBackendServicesIsMutable();
2694         weightedBackendServices_.add(index, builderForValue.build());
2695         onChanged();
2696       } else {
2697         weightedBackendServicesBuilder_.addMessage(index, builderForValue.build());
2698       }
2699       return this;
2700     }
2701     /**
2702      *
2703      *
2704      * <pre>
2705      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2706      * </pre>
2707      *
2708      * <code>
2709      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2710      * </code>
2711      */
addAllWeightedBackendServices( java.lang.Iterable<? extends com.google.cloud.compute.v1.WeightedBackendService> values)2712     public Builder addAllWeightedBackendServices(
2713         java.lang.Iterable<? extends com.google.cloud.compute.v1.WeightedBackendService> values) {
2714       if (weightedBackendServicesBuilder_ == null) {
2715         ensureWeightedBackendServicesIsMutable();
2716         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, weightedBackendServices_);
2717         onChanged();
2718       } else {
2719         weightedBackendServicesBuilder_.addAllMessages(values);
2720       }
2721       return this;
2722     }
2723     /**
2724      *
2725      *
2726      * <pre>
2727      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2728      * </pre>
2729      *
2730      * <code>
2731      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2732      * </code>
2733      */
clearWeightedBackendServices()2734     public Builder clearWeightedBackendServices() {
2735       if (weightedBackendServicesBuilder_ == null) {
2736         weightedBackendServices_ = java.util.Collections.emptyList();
2737         bitField0_ = (bitField0_ & ~0x00000080);
2738         onChanged();
2739       } else {
2740         weightedBackendServicesBuilder_.clear();
2741       }
2742       return this;
2743     }
2744     /**
2745      *
2746      *
2747      * <pre>
2748      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2749      * </pre>
2750      *
2751      * <code>
2752      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2753      * </code>
2754      */
removeWeightedBackendServices(int index)2755     public Builder removeWeightedBackendServices(int index) {
2756       if (weightedBackendServicesBuilder_ == null) {
2757         ensureWeightedBackendServicesIsMutable();
2758         weightedBackendServices_.remove(index);
2759         onChanged();
2760       } else {
2761         weightedBackendServicesBuilder_.remove(index);
2762       }
2763       return this;
2764     }
2765     /**
2766      *
2767      *
2768      * <pre>
2769      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2770      * </pre>
2771      *
2772      * <code>
2773      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2774      * </code>
2775      */
2776     public com.google.cloud.compute.v1.WeightedBackendService.Builder
getWeightedBackendServicesBuilder(int index)2777         getWeightedBackendServicesBuilder(int index) {
2778       return getWeightedBackendServicesFieldBuilder().getBuilder(index);
2779     }
2780     /**
2781      *
2782      *
2783      * <pre>
2784      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2785      * </pre>
2786      *
2787      * <code>
2788      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2789      * </code>
2790      */
2791     public com.google.cloud.compute.v1.WeightedBackendServiceOrBuilder
getWeightedBackendServicesOrBuilder(int index)2792         getWeightedBackendServicesOrBuilder(int index) {
2793       if (weightedBackendServicesBuilder_ == null) {
2794         return weightedBackendServices_.get(index);
2795       } else {
2796         return weightedBackendServicesBuilder_.getMessageOrBuilder(index);
2797       }
2798     }
2799     /**
2800      *
2801      *
2802      * <pre>
2803      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2804      * </pre>
2805      *
2806      * <code>
2807      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2808      * </code>
2809      */
2810     public java.util.List<? extends com.google.cloud.compute.v1.WeightedBackendServiceOrBuilder>
getWeightedBackendServicesOrBuilderList()2811         getWeightedBackendServicesOrBuilderList() {
2812       if (weightedBackendServicesBuilder_ != null) {
2813         return weightedBackendServicesBuilder_.getMessageOrBuilderList();
2814       } else {
2815         return java.util.Collections.unmodifiableList(weightedBackendServices_);
2816       }
2817     }
2818     /**
2819      *
2820      *
2821      * <pre>
2822      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2823      * </pre>
2824      *
2825      * <code>
2826      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2827      * </code>
2828      */
2829     public com.google.cloud.compute.v1.WeightedBackendService.Builder
addWeightedBackendServicesBuilder()2830         addWeightedBackendServicesBuilder() {
2831       return getWeightedBackendServicesFieldBuilder()
2832           .addBuilder(com.google.cloud.compute.v1.WeightedBackendService.getDefaultInstance());
2833     }
2834     /**
2835      *
2836      *
2837      * <pre>
2838      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2839      * </pre>
2840      *
2841      * <code>
2842      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2843      * </code>
2844      */
2845     public com.google.cloud.compute.v1.WeightedBackendService.Builder
addWeightedBackendServicesBuilder(int index)2846         addWeightedBackendServicesBuilder(int index) {
2847       return getWeightedBackendServicesFieldBuilder()
2848           .addBuilder(
2849               index, com.google.cloud.compute.v1.WeightedBackendService.getDefaultInstance());
2850     }
2851     /**
2852      *
2853      *
2854      * <pre>
2855      * A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.
2856      * </pre>
2857      *
2858      * <code>
2859      * repeated .google.cloud.compute.v1.WeightedBackendService weighted_backend_services = 337028049;
2860      * </code>
2861      */
2862     public java.util.List<com.google.cloud.compute.v1.WeightedBackendService.Builder>
getWeightedBackendServicesBuilderList()2863         getWeightedBackendServicesBuilderList() {
2864       return getWeightedBackendServicesFieldBuilder().getBuilderList();
2865     }
2866 
2867     private com.google.protobuf.RepeatedFieldBuilderV3<
2868             com.google.cloud.compute.v1.WeightedBackendService,
2869             com.google.cloud.compute.v1.WeightedBackendService.Builder,
2870             com.google.cloud.compute.v1.WeightedBackendServiceOrBuilder>
getWeightedBackendServicesFieldBuilder()2871         getWeightedBackendServicesFieldBuilder() {
2872       if (weightedBackendServicesBuilder_ == null) {
2873         weightedBackendServicesBuilder_ =
2874             new com.google.protobuf.RepeatedFieldBuilderV3<
2875                 com.google.cloud.compute.v1.WeightedBackendService,
2876                 com.google.cloud.compute.v1.WeightedBackendService.Builder,
2877                 com.google.cloud.compute.v1.WeightedBackendServiceOrBuilder>(
2878                 weightedBackendServices_,
2879                 ((bitField0_ & 0x00000080) != 0),
2880                 getParentForChildren(),
2881                 isClean());
2882         weightedBackendServices_ = null;
2883       }
2884       return weightedBackendServicesBuilder_;
2885     }
2886 
2887     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)2888     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
2889       return super.setUnknownFields(unknownFields);
2890     }
2891 
2892     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)2893     public final Builder mergeUnknownFields(
2894         final com.google.protobuf.UnknownFieldSet unknownFields) {
2895       return super.mergeUnknownFields(unknownFields);
2896     }
2897 
2898     // @@protoc_insertion_point(builder_scope:google.cloud.compute.v1.HttpRouteAction)
2899   }
2900 
2901   // @@protoc_insertion_point(class_scope:google.cloud.compute.v1.HttpRouteAction)
2902   private static final com.google.cloud.compute.v1.HttpRouteAction DEFAULT_INSTANCE;
2903 
2904   static {
2905     DEFAULT_INSTANCE = new com.google.cloud.compute.v1.HttpRouteAction();
2906   }
2907 
getDefaultInstance()2908   public static com.google.cloud.compute.v1.HttpRouteAction getDefaultInstance() {
2909     return DEFAULT_INSTANCE;
2910   }
2911 
2912   private static final com.google.protobuf.Parser<HttpRouteAction> PARSER =
2913       new com.google.protobuf.AbstractParser<HttpRouteAction>() {
2914         @java.lang.Override
2915         public HttpRouteAction parsePartialFrom(
2916             com.google.protobuf.CodedInputStream input,
2917             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2918             throws com.google.protobuf.InvalidProtocolBufferException {
2919           Builder builder = newBuilder();
2920           try {
2921             builder.mergeFrom(input, extensionRegistry);
2922           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2923             throw e.setUnfinishedMessage(builder.buildPartial());
2924           } catch (com.google.protobuf.UninitializedMessageException e) {
2925             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
2926           } catch (java.io.IOException e) {
2927             throw new com.google.protobuf.InvalidProtocolBufferException(e)
2928                 .setUnfinishedMessage(builder.buildPartial());
2929           }
2930           return builder.buildPartial();
2931         }
2932       };
2933 
parser()2934   public static com.google.protobuf.Parser<HttpRouteAction> parser() {
2935     return PARSER;
2936   }
2937 
2938   @java.lang.Override
getParserForType()2939   public com.google.protobuf.Parser<HttpRouteAction> getParserForType() {
2940     return PARSER;
2941   }
2942 
2943   @java.lang.Override
getDefaultInstanceForType()2944   public com.google.cloud.compute.v1.HttpRouteAction getDefaultInstanceForType() {
2945     return DEFAULT_INSTANCE;
2946   }
2947 }
2948