• 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  * The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform.
26  * </pre>
27  *
28  * Protobuf type {@code google.cloud.compute.v1.HttpRouteRule}
29  */
30 public final class HttpRouteRule extends com.google.protobuf.GeneratedMessageV3
31     implements
32     // @@protoc_insertion_point(message_implements:google.cloud.compute.v1.HttpRouteRule)
33     HttpRouteRuleOrBuilder {
34   private static final long serialVersionUID = 0L;
35   // Use HttpRouteRule.newBuilder() to construct.
HttpRouteRule(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)36   private HttpRouteRule(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
37     super(builder);
38   }
39 
HttpRouteRule()40   private HttpRouteRule() {
41     description_ = "";
42     matchRules_ = java.util.Collections.emptyList();
43     service_ = "";
44   }
45 
46   @java.lang.Override
47   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)48   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
49     return new HttpRouteRule();
50   }
51 
52   @java.lang.Override
getUnknownFields()53   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
54     return this.unknownFields;
55   }
56 
getDescriptor()57   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
58     return com.google.cloud.compute.v1.Compute
59         .internal_static_google_cloud_compute_v1_HttpRouteRule_descriptor;
60   }
61 
62   @java.lang.Override
63   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()64       internalGetFieldAccessorTable() {
65     return com.google.cloud.compute.v1.Compute
66         .internal_static_google_cloud_compute_v1_HttpRouteRule_fieldAccessorTable
67         .ensureFieldAccessorsInitialized(
68             com.google.cloud.compute.v1.HttpRouteRule.class,
69             com.google.cloud.compute.v1.HttpRouteRule.Builder.class);
70   }
71 
72   private int bitField0_;
73   public static final int DESCRIPTION_FIELD_NUMBER = 422937596;
74 
75   @SuppressWarnings("serial")
76   private volatile java.lang.Object description_ = "";
77   /**
78    *
79    *
80    * <pre>
81    * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
82    * </pre>
83    *
84    * <code>optional string description = 422937596;</code>
85    *
86    * @return Whether the description field is set.
87    */
88   @java.lang.Override
hasDescription()89   public boolean hasDescription() {
90     return ((bitField0_ & 0x00000001) != 0);
91   }
92   /**
93    *
94    *
95    * <pre>
96    * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
97    * </pre>
98    *
99    * <code>optional string description = 422937596;</code>
100    *
101    * @return The description.
102    */
103   @java.lang.Override
getDescription()104   public java.lang.String getDescription() {
105     java.lang.Object ref = description_;
106     if (ref instanceof java.lang.String) {
107       return (java.lang.String) ref;
108     } else {
109       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
110       java.lang.String s = bs.toStringUtf8();
111       description_ = s;
112       return s;
113     }
114   }
115   /**
116    *
117    *
118    * <pre>
119    * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
120    * </pre>
121    *
122    * <code>optional string description = 422937596;</code>
123    *
124    * @return The bytes for description.
125    */
126   @java.lang.Override
getDescriptionBytes()127   public com.google.protobuf.ByteString getDescriptionBytes() {
128     java.lang.Object ref = description_;
129     if (ref instanceof java.lang.String) {
130       com.google.protobuf.ByteString b =
131           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
132       description_ = b;
133       return b;
134     } else {
135       return (com.google.protobuf.ByteString) ref;
136     }
137   }
138 
139   public static final int HEADER_ACTION_FIELD_NUMBER = 328077352;
140   private com.google.cloud.compute.v1.HttpHeaderAction headerAction_;
141   /**
142    *
143    *
144    * <pre>
145    * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
146    * </pre>
147    *
148    * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
149    *
150    * @return Whether the headerAction field is set.
151    */
152   @java.lang.Override
hasHeaderAction()153   public boolean hasHeaderAction() {
154     return ((bitField0_ & 0x00000002) != 0);
155   }
156   /**
157    *
158    *
159    * <pre>
160    * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
161    * </pre>
162    *
163    * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
164    *
165    * @return The headerAction.
166    */
167   @java.lang.Override
getHeaderAction()168   public com.google.cloud.compute.v1.HttpHeaderAction getHeaderAction() {
169     return headerAction_ == null
170         ? com.google.cloud.compute.v1.HttpHeaderAction.getDefaultInstance()
171         : headerAction_;
172   }
173   /**
174    *
175    *
176    * <pre>
177    * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
178    * </pre>
179    *
180    * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
181    */
182   @java.lang.Override
getHeaderActionOrBuilder()183   public com.google.cloud.compute.v1.HttpHeaderActionOrBuilder getHeaderActionOrBuilder() {
184     return headerAction_ == null
185         ? com.google.cloud.compute.v1.HttpHeaderAction.getDefaultInstance()
186         : headerAction_;
187   }
188 
189   public static final int MATCH_RULES_FIELD_NUMBER = 376200701;
190 
191   @SuppressWarnings("serial")
192   private java.util.List<com.google.cloud.compute.v1.HttpRouteRuleMatch> matchRules_;
193   /**
194    *
195    *
196    * <pre>
197    * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
198    * </pre>
199    *
200    * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
201    */
202   @java.lang.Override
getMatchRulesList()203   public java.util.List<com.google.cloud.compute.v1.HttpRouteRuleMatch> getMatchRulesList() {
204     return matchRules_;
205   }
206   /**
207    *
208    *
209    * <pre>
210    * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
211    * </pre>
212    *
213    * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
214    */
215   @java.lang.Override
216   public java.util.List<? extends com.google.cloud.compute.v1.HttpRouteRuleMatchOrBuilder>
getMatchRulesOrBuilderList()217       getMatchRulesOrBuilderList() {
218     return matchRules_;
219   }
220   /**
221    *
222    *
223    * <pre>
224    * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
225    * </pre>
226    *
227    * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
228    */
229   @java.lang.Override
getMatchRulesCount()230   public int getMatchRulesCount() {
231     return matchRules_.size();
232   }
233   /**
234    *
235    *
236    * <pre>
237    * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
238    * </pre>
239    *
240    * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
241    */
242   @java.lang.Override
getMatchRules(int index)243   public com.google.cloud.compute.v1.HttpRouteRuleMatch getMatchRules(int index) {
244     return matchRules_.get(index);
245   }
246   /**
247    *
248    *
249    * <pre>
250    * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
251    * </pre>
252    *
253    * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
254    */
255   @java.lang.Override
getMatchRulesOrBuilder(int index)256   public com.google.cloud.compute.v1.HttpRouteRuleMatchOrBuilder getMatchRulesOrBuilder(int index) {
257     return matchRules_.get(index);
258   }
259 
260   public static final int PRIORITY_FIELD_NUMBER = 445151652;
261   private int priority_ = 0;
262   /**
263    *
264    *
265    * <pre>
266    * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.
267    * </pre>
268    *
269    * <code>optional int32 priority = 445151652;</code>
270    *
271    * @return Whether the priority field is set.
272    */
273   @java.lang.Override
hasPriority()274   public boolean hasPriority() {
275     return ((bitField0_ & 0x00000004) != 0);
276   }
277   /**
278    *
279    *
280    * <pre>
281    * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.
282    * </pre>
283    *
284    * <code>optional int32 priority = 445151652;</code>
285    *
286    * @return The priority.
287    */
288   @java.lang.Override
getPriority()289   public int getPriority() {
290     return priority_;
291   }
292 
293   public static final int ROUTE_ACTION_FIELD_NUMBER = 424563948;
294   private com.google.cloud.compute.v1.HttpRouteAction routeAction_;
295   /**
296    *
297    *
298    * <pre>
299    * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
300    * </pre>
301    *
302    * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
303    *
304    * @return Whether the routeAction field is set.
305    */
306   @java.lang.Override
hasRouteAction()307   public boolean hasRouteAction() {
308     return ((bitField0_ & 0x00000008) != 0);
309   }
310   /**
311    *
312    *
313    * <pre>
314    * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
315    * </pre>
316    *
317    * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
318    *
319    * @return The routeAction.
320    */
321   @java.lang.Override
getRouteAction()322   public com.google.cloud.compute.v1.HttpRouteAction getRouteAction() {
323     return routeAction_ == null
324         ? com.google.cloud.compute.v1.HttpRouteAction.getDefaultInstance()
325         : routeAction_;
326   }
327   /**
328    *
329    *
330    * <pre>
331    * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
332    * </pre>
333    *
334    * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
335    */
336   @java.lang.Override
getRouteActionOrBuilder()337   public com.google.cloud.compute.v1.HttpRouteActionOrBuilder getRouteActionOrBuilder() {
338     return routeAction_ == null
339         ? com.google.cloud.compute.v1.HttpRouteAction.getDefaultInstance()
340         : routeAction_;
341   }
342 
343   public static final int SERVICE_FIELD_NUMBER = 373540533;
344 
345   @SuppressWarnings("serial")
346   private volatile java.lang.Object service_ = "";
347   /**
348    *
349    *
350    * <pre>
351    * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
352    * </pre>
353    *
354    * <code>optional string service = 373540533;</code>
355    *
356    * @return Whether the service field is set.
357    */
358   @java.lang.Override
hasService()359   public boolean hasService() {
360     return ((bitField0_ & 0x00000010) != 0);
361   }
362   /**
363    *
364    *
365    * <pre>
366    * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
367    * </pre>
368    *
369    * <code>optional string service = 373540533;</code>
370    *
371    * @return The service.
372    */
373   @java.lang.Override
getService()374   public java.lang.String getService() {
375     java.lang.Object ref = service_;
376     if (ref instanceof java.lang.String) {
377       return (java.lang.String) ref;
378     } else {
379       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
380       java.lang.String s = bs.toStringUtf8();
381       service_ = s;
382       return s;
383     }
384   }
385   /**
386    *
387    *
388    * <pre>
389    * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
390    * </pre>
391    *
392    * <code>optional string service = 373540533;</code>
393    *
394    * @return The bytes for service.
395    */
396   @java.lang.Override
getServiceBytes()397   public com.google.protobuf.ByteString getServiceBytes() {
398     java.lang.Object ref = service_;
399     if (ref instanceof java.lang.String) {
400       com.google.protobuf.ByteString b =
401           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
402       service_ = b;
403       return b;
404     } else {
405       return (com.google.protobuf.ByteString) ref;
406     }
407   }
408 
409   public static final int URL_REDIRECT_FIELD_NUMBER = 405147820;
410   private com.google.cloud.compute.v1.HttpRedirectAction urlRedirect_;
411   /**
412    *
413    *
414    * <pre>
415    * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
416    * </pre>
417    *
418    * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
419    *
420    * @return Whether the urlRedirect field is set.
421    */
422   @java.lang.Override
hasUrlRedirect()423   public boolean hasUrlRedirect() {
424     return ((bitField0_ & 0x00000020) != 0);
425   }
426   /**
427    *
428    *
429    * <pre>
430    * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
431    * </pre>
432    *
433    * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
434    *
435    * @return The urlRedirect.
436    */
437   @java.lang.Override
getUrlRedirect()438   public com.google.cloud.compute.v1.HttpRedirectAction getUrlRedirect() {
439     return urlRedirect_ == null
440         ? com.google.cloud.compute.v1.HttpRedirectAction.getDefaultInstance()
441         : urlRedirect_;
442   }
443   /**
444    *
445    *
446    * <pre>
447    * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
448    * </pre>
449    *
450    * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
451    */
452   @java.lang.Override
getUrlRedirectOrBuilder()453   public com.google.cloud.compute.v1.HttpRedirectActionOrBuilder getUrlRedirectOrBuilder() {
454     return urlRedirect_ == null
455         ? com.google.cloud.compute.v1.HttpRedirectAction.getDefaultInstance()
456         : urlRedirect_;
457   }
458 
459   private byte memoizedIsInitialized = -1;
460 
461   @java.lang.Override
isInitialized()462   public final boolean isInitialized() {
463     byte isInitialized = memoizedIsInitialized;
464     if (isInitialized == 1) return true;
465     if (isInitialized == 0) return false;
466 
467     memoizedIsInitialized = 1;
468     return true;
469   }
470 
471   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)472   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
473     if (((bitField0_ & 0x00000002) != 0)) {
474       output.writeMessage(328077352, getHeaderAction());
475     }
476     if (((bitField0_ & 0x00000010) != 0)) {
477       com.google.protobuf.GeneratedMessageV3.writeString(output, 373540533, service_);
478     }
479     for (int i = 0; i < matchRules_.size(); i++) {
480       output.writeMessage(376200701, matchRules_.get(i));
481     }
482     if (((bitField0_ & 0x00000020) != 0)) {
483       output.writeMessage(405147820, getUrlRedirect());
484     }
485     if (((bitField0_ & 0x00000001) != 0)) {
486       com.google.protobuf.GeneratedMessageV3.writeString(output, 422937596, description_);
487     }
488     if (((bitField0_ & 0x00000008) != 0)) {
489       output.writeMessage(424563948, getRouteAction());
490     }
491     if (((bitField0_ & 0x00000004) != 0)) {
492       output.writeInt32(445151652, priority_);
493     }
494     getUnknownFields().writeTo(output);
495   }
496 
497   @java.lang.Override
getSerializedSize()498   public int getSerializedSize() {
499     int size = memoizedSize;
500     if (size != -1) return size;
501 
502     size = 0;
503     if (((bitField0_ & 0x00000002) != 0)) {
504       size +=
505           com.google.protobuf.CodedOutputStream.computeMessageSize(328077352, getHeaderAction());
506     }
507     if (((bitField0_ & 0x00000010) != 0)) {
508       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(373540533, service_);
509     }
510     for (int i = 0; i < matchRules_.size(); i++) {
511       size +=
512           com.google.protobuf.CodedOutputStream.computeMessageSize(376200701, matchRules_.get(i));
513     }
514     if (((bitField0_ & 0x00000020) != 0)) {
515       size += com.google.protobuf.CodedOutputStream.computeMessageSize(405147820, getUrlRedirect());
516     }
517     if (((bitField0_ & 0x00000001) != 0)) {
518       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(422937596, description_);
519     }
520     if (((bitField0_ & 0x00000008) != 0)) {
521       size += com.google.protobuf.CodedOutputStream.computeMessageSize(424563948, getRouteAction());
522     }
523     if (((bitField0_ & 0x00000004) != 0)) {
524       size += com.google.protobuf.CodedOutputStream.computeInt32Size(445151652, priority_);
525     }
526     size += getUnknownFields().getSerializedSize();
527     memoizedSize = size;
528     return size;
529   }
530 
531   @java.lang.Override
equals(final java.lang.Object obj)532   public boolean equals(final java.lang.Object obj) {
533     if (obj == this) {
534       return true;
535     }
536     if (!(obj instanceof com.google.cloud.compute.v1.HttpRouteRule)) {
537       return super.equals(obj);
538     }
539     com.google.cloud.compute.v1.HttpRouteRule other =
540         (com.google.cloud.compute.v1.HttpRouteRule) obj;
541 
542     if (hasDescription() != other.hasDescription()) return false;
543     if (hasDescription()) {
544       if (!getDescription().equals(other.getDescription())) return false;
545     }
546     if (hasHeaderAction() != other.hasHeaderAction()) return false;
547     if (hasHeaderAction()) {
548       if (!getHeaderAction().equals(other.getHeaderAction())) return false;
549     }
550     if (!getMatchRulesList().equals(other.getMatchRulesList())) return false;
551     if (hasPriority() != other.hasPriority()) return false;
552     if (hasPriority()) {
553       if (getPriority() != other.getPriority()) return false;
554     }
555     if (hasRouteAction() != other.hasRouteAction()) return false;
556     if (hasRouteAction()) {
557       if (!getRouteAction().equals(other.getRouteAction())) return false;
558     }
559     if (hasService() != other.hasService()) return false;
560     if (hasService()) {
561       if (!getService().equals(other.getService())) return false;
562     }
563     if (hasUrlRedirect() != other.hasUrlRedirect()) return false;
564     if (hasUrlRedirect()) {
565       if (!getUrlRedirect().equals(other.getUrlRedirect())) return false;
566     }
567     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
568     return true;
569   }
570 
571   @java.lang.Override
hashCode()572   public int hashCode() {
573     if (memoizedHashCode != 0) {
574       return memoizedHashCode;
575     }
576     int hash = 41;
577     hash = (19 * hash) + getDescriptor().hashCode();
578     if (hasDescription()) {
579       hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
580       hash = (53 * hash) + getDescription().hashCode();
581     }
582     if (hasHeaderAction()) {
583       hash = (37 * hash) + HEADER_ACTION_FIELD_NUMBER;
584       hash = (53 * hash) + getHeaderAction().hashCode();
585     }
586     if (getMatchRulesCount() > 0) {
587       hash = (37 * hash) + MATCH_RULES_FIELD_NUMBER;
588       hash = (53 * hash) + getMatchRulesList().hashCode();
589     }
590     if (hasPriority()) {
591       hash = (37 * hash) + PRIORITY_FIELD_NUMBER;
592       hash = (53 * hash) + getPriority();
593     }
594     if (hasRouteAction()) {
595       hash = (37 * hash) + ROUTE_ACTION_FIELD_NUMBER;
596       hash = (53 * hash) + getRouteAction().hashCode();
597     }
598     if (hasService()) {
599       hash = (37 * hash) + SERVICE_FIELD_NUMBER;
600       hash = (53 * hash) + getService().hashCode();
601     }
602     if (hasUrlRedirect()) {
603       hash = (37 * hash) + URL_REDIRECT_FIELD_NUMBER;
604       hash = (53 * hash) + getUrlRedirect().hashCode();
605     }
606     hash = (29 * hash) + getUnknownFields().hashCode();
607     memoizedHashCode = hash;
608     return hash;
609   }
610 
parseFrom(java.nio.ByteBuffer data)611   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(java.nio.ByteBuffer data)
612       throws com.google.protobuf.InvalidProtocolBufferException {
613     return PARSER.parseFrom(data);
614   }
615 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)616   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(
617       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
618       throws com.google.protobuf.InvalidProtocolBufferException {
619     return PARSER.parseFrom(data, extensionRegistry);
620   }
621 
parseFrom( com.google.protobuf.ByteString data)622   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(
623       com.google.protobuf.ByteString data)
624       throws com.google.protobuf.InvalidProtocolBufferException {
625     return PARSER.parseFrom(data);
626   }
627 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)628   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(
629       com.google.protobuf.ByteString data,
630       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
631       throws com.google.protobuf.InvalidProtocolBufferException {
632     return PARSER.parseFrom(data, extensionRegistry);
633   }
634 
parseFrom(byte[] data)635   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(byte[] data)
636       throws com.google.protobuf.InvalidProtocolBufferException {
637     return PARSER.parseFrom(data);
638   }
639 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)640   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(
641       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
642       throws com.google.protobuf.InvalidProtocolBufferException {
643     return PARSER.parseFrom(data, extensionRegistry);
644   }
645 
parseFrom(java.io.InputStream input)646   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(java.io.InputStream input)
647       throws java.io.IOException {
648     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
649   }
650 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)651   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(
652       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
653       throws java.io.IOException {
654     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
655         PARSER, input, extensionRegistry);
656   }
657 
parseDelimitedFrom( java.io.InputStream input)658   public static com.google.cloud.compute.v1.HttpRouteRule parseDelimitedFrom(
659       java.io.InputStream input) throws java.io.IOException {
660     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
661   }
662 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)663   public static com.google.cloud.compute.v1.HttpRouteRule parseDelimitedFrom(
664       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
665       throws java.io.IOException {
666     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
667         PARSER, input, extensionRegistry);
668   }
669 
parseFrom( com.google.protobuf.CodedInputStream input)670   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(
671       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
672     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
673   }
674 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)675   public static com.google.cloud.compute.v1.HttpRouteRule parseFrom(
676       com.google.protobuf.CodedInputStream input,
677       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
678       throws java.io.IOException {
679     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
680         PARSER, input, extensionRegistry);
681   }
682 
683   @java.lang.Override
newBuilderForType()684   public Builder newBuilderForType() {
685     return newBuilder();
686   }
687 
newBuilder()688   public static Builder newBuilder() {
689     return DEFAULT_INSTANCE.toBuilder();
690   }
691 
newBuilder(com.google.cloud.compute.v1.HttpRouteRule prototype)692   public static Builder newBuilder(com.google.cloud.compute.v1.HttpRouteRule prototype) {
693     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
694   }
695 
696   @java.lang.Override
toBuilder()697   public Builder toBuilder() {
698     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
699   }
700 
701   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)702   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
703     Builder builder = new Builder(parent);
704     return builder;
705   }
706   /**
707    *
708    *
709    * <pre>
710    * The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform.
711    * </pre>
712    *
713    * Protobuf type {@code google.cloud.compute.v1.HttpRouteRule}
714    */
715   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
716       implements
717       // @@protoc_insertion_point(builder_implements:google.cloud.compute.v1.HttpRouteRule)
718       com.google.cloud.compute.v1.HttpRouteRuleOrBuilder {
getDescriptor()719     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
720       return com.google.cloud.compute.v1.Compute
721           .internal_static_google_cloud_compute_v1_HttpRouteRule_descriptor;
722     }
723 
724     @java.lang.Override
725     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()726         internalGetFieldAccessorTable() {
727       return com.google.cloud.compute.v1.Compute
728           .internal_static_google_cloud_compute_v1_HttpRouteRule_fieldAccessorTable
729           .ensureFieldAccessorsInitialized(
730               com.google.cloud.compute.v1.HttpRouteRule.class,
731               com.google.cloud.compute.v1.HttpRouteRule.Builder.class);
732     }
733 
734     // Construct using com.google.cloud.compute.v1.HttpRouteRule.newBuilder()
Builder()735     private Builder() {
736       maybeForceBuilderInitialization();
737     }
738 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)739     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
740       super(parent);
741       maybeForceBuilderInitialization();
742     }
743 
maybeForceBuilderInitialization()744     private void maybeForceBuilderInitialization() {
745       if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
746         getHeaderActionFieldBuilder();
747         getMatchRulesFieldBuilder();
748         getRouteActionFieldBuilder();
749         getUrlRedirectFieldBuilder();
750       }
751     }
752 
753     @java.lang.Override
clear()754     public Builder clear() {
755       super.clear();
756       bitField0_ = 0;
757       description_ = "";
758       headerAction_ = null;
759       if (headerActionBuilder_ != null) {
760         headerActionBuilder_.dispose();
761         headerActionBuilder_ = null;
762       }
763       if (matchRulesBuilder_ == null) {
764         matchRules_ = java.util.Collections.emptyList();
765       } else {
766         matchRules_ = null;
767         matchRulesBuilder_.clear();
768       }
769       bitField0_ = (bitField0_ & ~0x00000004);
770       priority_ = 0;
771       routeAction_ = null;
772       if (routeActionBuilder_ != null) {
773         routeActionBuilder_.dispose();
774         routeActionBuilder_ = null;
775       }
776       service_ = "";
777       urlRedirect_ = null;
778       if (urlRedirectBuilder_ != null) {
779         urlRedirectBuilder_.dispose();
780         urlRedirectBuilder_ = null;
781       }
782       return this;
783     }
784 
785     @java.lang.Override
getDescriptorForType()786     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
787       return com.google.cloud.compute.v1.Compute
788           .internal_static_google_cloud_compute_v1_HttpRouteRule_descriptor;
789     }
790 
791     @java.lang.Override
getDefaultInstanceForType()792     public com.google.cloud.compute.v1.HttpRouteRule getDefaultInstanceForType() {
793       return com.google.cloud.compute.v1.HttpRouteRule.getDefaultInstance();
794     }
795 
796     @java.lang.Override
build()797     public com.google.cloud.compute.v1.HttpRouteRule build() {
798       com.google.cloud.compute.v1.HttpRouteRule result = buildPartial();
799       if (!result.isInitialized()) {
800         throw newUninitializedMessageException(result);
801       }
802       return result;
803     }
804 
805     @java.lang.Override
buildPartial()806     public com.google.cloud.compute.v1.HttpRouteRule buildPartial() {
807       com.google.cloud.compute.v1.HttpRouteRule result =
808           new com.google.cloud.compute.v1.HttpRouteRule(this);
809       buildPartialRepeatedFields(result);
810       if (bitField0_ != 0) {
811         buildPartial0(result);
812       }
813       onBuilt();
814       return result;
815     }
816 
buildPartialRepeatedFields(com.google.cloud.compute.v1.HttpRouteRule result)817     private void buildPartialRepeatedFields(com.google.cloud.compute.v1.HttpRouteRule result) {
818       if (matchRulesBuilder_ == null) {
819         if (((bitField0_ & 0x00000004) != 0)) {
820           matchRules_ = java.util.Collections.unmodifiableList(matchRules_);
821           bitField0_ = (bitField0_ & ~0x00000004);
822         }
823         result.matchRules_ = matchRules_;
824       } else {
825         result.matchRules_ = matchRulesBuilder_.build();
826       }
827     }
828 
buildPartial0(com.google.cloud.compute.v1.HttpRouteRule result)829     private void buildPartial0(com.google.cloud.compute.v1.HttpRouteRule result) {
830       int from_bitField0_ = bitField0_;
831       int to_bitField0_ = 0;
832       if (((from_bitField0_ & 0x00000001) != 0)) {
833         result.description_ = description_;
834         to_bitField0_ |= 0x00000001;
835       }
836       if (((from_bitField0_ & 0x00000002) != 0)) {
837         result.headerAction_ =
838             headerActionBuilder_ == null ? headerAction_ : headerActionBuilder_.build();
839         to_bitField0_ |= 0x00000002;
840       }
841       if (((from_bitField0_ & 0x00000008) != 0)) {
842         result.priority_ = priority_;
843         to_bitField0_ |= 0x00000004;
844       }
845       if (((from_bitField0_ & 0x00000010) != 0)) {
846         result.routeAction_ =
847             routeActionBuilder_ == null ? routeAction_ : routeActionBuilder_.build();
848         to_bitField0_ |= 0x00000008;
849       }
850       if (((from_bitField0_ & 0x00000020) != 0)) {
851         result.service_ = service_;
852         to_bitField0_ |= 0x00000010;
853       }
854       if (((from_bitField0_ & 0x00000040) != 0)) {
855         result.urlRedirect_ =
856             urlRedirectBuilder_ == null ? urlRedirect_ : urlRedirectBuilder_.build();
857         to_bitField0_ |= 0x00000020;
858       }
859       result.bitField0_ |= to_bitField0_;
860     }
861 
862     @java.lang.Override
clone()863     public Builder clone() {
864       return super.clone();
865     }
866 
867     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)868     public Builder setField(
869         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
870       return super.setField(field, value);
871     }
872 
873     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)874     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
875       return super.clearField(field);
876     }
877 
878     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)879     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
880       return super.clearOneof(oneof);
881     }
882 
883     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)884     public Builder setRepeatedField(
885         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
886       return super.setRepeatedField(field, index, value);
887     }
888 
889     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)890     public Builder addRepeatedField(
891         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
892       return super.addRepeatedField(field, value);
893     }
894 
895     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)896     public Builder mergeFrom(com.google.protobuf.Message other) {
897       if (other instanceof com.google.cloud.compute.v1.HttpRouteRule) {
898         return mergeFrom((com.google.cloud.compute.v1.HttpRouteRule) other);
899       } else {
900         super.mergeFrom(other);
901         return this;
902       }
903     }
904 
mergeFrom(com.google.cloud.compute.v1.HttpRouteRule other)905     public Builder mergeFrom(com.google.cloud.compute.v1.HttpRouteRule other) {
906       if (other == com.google.cloud.compute.v1.HttpRouteRule.getDefaultInstance()) return this;
907       if (other.hasDescription()) {
908         description_ = other.description_;
909         bitField0_ |= 0x00000001;
910         onChanged();
911       }
912       if (other.hasHeaderAction()) {
913         mergeHeaderAction(other.getHeaderAction());
914       }
915       if (matchRulesBuilder_ == null) {
916         if (!other.matchRules_.isEmpty()) {
917           if (matchRules_.isEmpty()) {
918             matchRules_ = other.matchRules_;
919             bitField0_ = (bitField0_ & ~0x00000004);
920           } else {
921             ensureMatchRulesIsMutable();
922             matchRules_.addAll(other.matchRules_);
923           }
924           onChanged();
925         }
926       } else {
927         if (!other.matchRules_.isEmpty()) {
928           if (matchRulesBuilder_.isEmpty()) {
929             matchRulesBuilder_.dispose();
930             matchRulesBuilder_ = null;
931             matchRules_ = other.matchRules_;
932             bitField0_ = (bitField0_ & ~0x00000004);
933             matchRulesBuilder_ =
934                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
935                     ? getMatchRulesFieldBuilder()
936                     : null;
937           } else {
938             matchRulesBuilder_.addAllMessages(other.matchRules_);
939           }
940         }
941       }
942       if (other.hasPriority()) {
943         setPriority(other.getPriority());
944       }
945       if (other.hasRouteAction()) {
946         mergeRouteAction(other.getRouteAction());
947       }
948       if (other.hasService()) {
949         service_ = other.service_;
950         bitField0_ |= 0x00000020;
951         onChanged();
952       }
953       if (other.hasUrlRedirect()) {
954         mergeUrlRedirect(other.getUrlRedirect());
955       }
956       this.mergeUnknownFields(other.getUnknownFields());
957       onChanged();
958       return this;
959     }
960 
961     @java.lang.Override
isInitialized()962     public final boolean isInitialized() {
963       return true;
964     }
965 
966     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)967     public Builder mergeFrom(
968         com.google.protobuf.CodedInputStream input,
969         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
970         throws java.io.IOException {
971       if (extensionRegistry == null) {
972         throw new java.lang.NullPointerException();
973       }
974       try {
975         boolean done = false;
976         while (!done) {
977           int tag = input.readTag();
978           switch (tag) {
979             case 0:
980               done = true;
981               break;
982             case -1670348478:
983               {
984                 input.readMessage(getHeaderActionFieldBuilder().getBuilder(), extensionRegistry);
985                 bitField0_ |= 0x00000002;
986                 break;
987               } // case -1670348478
988             case -1306643030:
989               {
990                 service_ = input.readStringRequireUtf8();
991                 bitField0_ |= 0x00000020;
992                 break;
993               } // case -1306643030
994             case -1285361686:
995               {
996                 com.google.cloud.compute.v1.HttpRouteRuleMatch m =
997                     input.readMessage(
998                         com.google.cloud.compute.v1.HttpRouteRuleMatch.parser(), extensionRegistry);
999                 if (matchRulesBuilder_ == null) {
1000                   ensureMatchRulesIsMutable();
1001                   matchRules_.add(m);
1002                 } else {
1003                   matchRulesBuilder_.addMessage(m);
1004                 }
1005                 break;
1006               } // case -1285361686
1007             case -1053784734:
1008               {
1009                 input.readMessage(getUrlRedirectFieldBuilder().getBuilder(), extensionRegistry);
1010                 bitField0_ |= 0x00000040;
1011                 break;
1012               } // case -1053784734
1013             case -911466526:
1014               {
1015                 description_ = input.readStringRequireUtf8();
1016                 bitField0_ |= 0x00000001;
1017                 break;
1018               } // case -911466526
1019             case -898455710:
1020               {
1021                 input.readMessage(getRouteActionFieldBuilder().getBuilder(), extensionRegistry);
1022                 bitField0_ |= 0x00000010;
1023                 break;
1024               } // case -898455710
1025             case -733754080:
1026               {
1027                 priority_ = input.readInt32();
1028                 bitField0_ |= 0x00000008;
1029                 break;
1030               } // case -733754080
1031             default:
1032               {
1033                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
1034                   done = true; // was an endgroup tag
1035                 }
1036                 break;
1037               } // default:
1038           } // switch (tag)
1039         } // while (!done)
1040       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1041         throw e.unwrapIOException();
1042       } finally {
1043         onChanged();
1044       } // finally
1045       return this;
1046     }
1047 
1048     private int bitField0_;
1049 
1050     private java.lang.Object description_ = "";
1051     /**
1052      *
1053      *
1054      * <pre>
1055      * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
1056      * </pre>
1057      *
1058      * <code>optional string description = 422937596;</code>
1059      *
1060      * @return Whether the description field is set.
1061      */
hasDescription()1062     public boolean hasDescription() {
1063       return ((bitField0_ & 0x00000001) != 0);
1064     }
1065     /**
1066      *
1067      *
1068      * <pre>
1069      * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
1070      * </pre>
1071      *
1072      * <code>optional string description = 422937596;</code>
1073      *
1074      * @return The description.
1075      */
getDescription()1076     public java.lang.String getDescription() {
1077       java.lang.Object ref = description_;
1078       if (!(ref instanceof java.lang.String)) {
1079         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1080         java.lang.String s = bs.toStringUtf8();
1081         description_ = s;
1082         return s;
1083       } else {
1084         return (java.lang.String) ref;
1085       }
1086     }
1087     /**
1088      *
1089      *
1090      * <pre>
1091      * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
1092      * </pre>
1093      *
1094      * <code>optional string description = 422937596;</code>
1095      *
1096      * @return The bytes for description.
1097      */
getDescriptionBytes()1098     public com.google.protobuf.ByteString getDescriptionBytes() {
1099       java.lang.Object ref = description_;
1100       if (ref instanceof String) {
1101         com.google.protobuf.ByteString b =
1102             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1103         description_ = b;
1104         return b;
1105       } else {
1106         return (com.google.protobuf.ByteString) ref;
1107       }
1108     }
1109     /**
1110      *
1111      *
1112      * <pre>
1113      * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
1114      * </pre>
1115      *
1116      * <code>optional string description = 422937596;</code>
1117      *
1118      * @param value The description to set.
1119      * @return This builder for chaining.
1120      */
setDescription(java.lang.String value)1121     public Builder setDescription(java.lang.String value) {
1122       if (value == null) {
1123         throw new NullPointerException();
1124       }
1125       description_ = value;
1126       bitField0_ |= 0x00000001;
1127       onChanged();
1128       return this;
1129     }
1130     /**
1131      *
1132      *
1133      * <pre>
1134      * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
1135      * </pre>
1136      *
1137      * <code>optional string description = 422937596;</code>
1138      *
1139      * @return This builder for chaining.
1140      */
clearDescription()1141     public Builder clearDescription() {
1142       description_ = getDefaultInstance().getDescription();
1143       bitField0_ = (bitField0_ & ~0x00000001);
1144       onChanged();
1145       return this;
1146     }
1147     /**
1148      *
1149      *
1150      * <pre>
1151      * The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.
1152      * </pre>
1153      *
1154      * <code>optional string description = 422937596;</code>
1155      *
1156      * @param value The bytes for description to set.
1157      * @return This builder for chaining.
1158      */
setDescriptionBytes(com.google.protobuf.ByteString value)1159     public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
1160       if (value == null) {
1161         throw new NullPointerException();
1162       }
1163       checkByteStringIsUtf8(value);
1164       description_ = value;
1165       bitField0_ |= 0x00000001;
1166       onChanged();
1167       return this;
1168     }
1169 
1170     private com.google.cloud.compute.v1.HttpHeaderAction headerAction_;
1171     private com.google.protobuf.SingleFieldBuilderV3<
1172             com.google.cloud.compute.v1.HttpHeaderAction,
1173             com.google.cloud.compute.v1.HttpHeaderAction.Builder,
1174             com.google.cloud.compute.v1.HttpHeaderActionOrBuilder>
1175         headerActionBuilder_;
1176     /**
1177      *
1178      *
1179      * <pre>
1180      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1181      * </pre>
1182      *
1183      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1184      *
1185      * @return Whether the headerAction field is set.
1186      */
hasHeaderAction()1187     public boolean hasHeaderAction() {
1188       return ((bitField0_ & 0x00000002) != 0);
1189     }
1190     /**
1191      *
1192      *
1193      * <pre>
1194      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1195      * </pre>
1196      *
1197      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1198      *
1199      * @return The headerAction.
1200      */
getHeaderAction()1201     public com.google.cloud.compute.v1.HttpHeaderAction getHeaderAction() {
1202       if (headerActionBuilder_ == null) {
1203         return headerAction_ == null
1204             ? com.google.cloud.compute.v1.HttpHeaderAction.getDefaultInstance()
1205             : headerAction_;
1206       } else {
1207         return headerActionBuilder_.getMessage();
1208       }
1209     }
1210     /**
1211      *
1212      *
1213      * <pre>
1214      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1215      * </pre>
1216      *
1217      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1218      */
setHeaderAction(com.google.cloud.compute.v1.HttpHeaderAction value)1219     public Builder setHeaderAction(com.google.cloud.compute.v1.HttpHeaderAction value) {
1220       if (headerActionBuilder_ == null) {
1221         if (value == null) {
1222           throw new NullPointerException();
1223         }
1224         headerAction_ = value;
1225       } else {
1226         headerActionBuilder_.setMessage(value);
1227       }
1228       bitField0_ |= 0x00000002;
1229       onChanged();
1230       return this;
1231     }
1232     /**
1233      *
1234      *
1235      * <pre>
1236      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1237      * </pre>
1238      *
1239      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1240      */
setHeaderAction( com.google.cloud.compute.v1.HttpHeaderAction.Builder builderForValue)1241     public Builder setHeaderAction(
1242         com.google.cloud.compute.v1.HttpHeaderAction.Builder builderForValue) {
1243       if (headerActionBuilder_ == null) {
1244         headerAction_ = builderForValue.build();
1245       } else {
1246         headerActionBuilder_.setMessage(builderForValue.build());
1247       }
1248       bitField0_ |= 0x00000002;
1249       onChanged();
1250       return this;
1251     }
1252     /**
1253      *
1254      *
1255      * <pre>
1256      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1257      * </pre>
1258      *
1259      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1260      */
mergeHeaderAction(com.google.cloud.compute.v1.HttpHeaderAction value)1261     public Builder mergeHeaderAction(com.google.cloud.compute.v1.HttpHeaderAction value) {
1262       if (headerActionBuilder_ == null) {
1263         if (((bitField0_ & 0x00000002) != 0)
1264             && headerAction_ != null
1265             && headerAction_ != com.google.cloud.compute.v1.HttpHeaderAction.getDefaultInstance()) {
1266           getHeaderActionBuilder().mergeFrom(value);
1267         } else {
1268           headerAction_ = value;
1269         }
1270       } else {
1271         headerActionBuilder_.mergeFrom(value);
1272       }
1273       bitField0_ |= 0x00000002;
1274       onChanged();
1275       return this;
1276     }
1277     /**
1278      *
1279      *
1280      * <pre>
1281      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1282      * </pre>
1283      *
1284      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1285      */
clearHeaderAction()1286     public Builder clearHeaderAction() {
1287       bitField0_ = (bitField0_ & ~0x00000002);
1288       headerAction_ = null;
1289       if (headerActionBuilder_ != null) {
1290         headerActionBuilder_.dispose();
1291         headerActionBuilder_ = null;
1292       }
1293       onChanged();
1294       return this;
1295     }
1296     /**
1297      *
1298      *
1299      * <pre>
1300      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1301      * </pre>
1302      *
1303      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1304      */
getHeaderActionBuilder()1305     public com.google.cloud.compute.v1.HttpHeaderAction.Builder getHeaderActionBuilder() {
1306       bitField0_ |= 0x00000002;
1307       onChanged();
1308       return getHeaderActionFieldBuilder().getBuilder();
1309     }
1310     /**
1311      *
1312      *
1313      * <pre>
1314      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1315      * </pre>
1316      *
1317      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1318      */
getHeaderActionOrBuilder()1319     public com.google.cloud.compute.v1.HttpHeaderActionOrBuilder getHeaderActionOrBuilder() {
1320       if (headerActionBuilder_ != null) {
1321         return headerActionBuilder_.getMessageOrBuilder();
1322       } else {
1323         return headerAction_ == null
1324             ? com.google.cloud.compute.v1.HttpHeaderAction.getDefaultInstance()
1325             : headerAction_;
1326       }
1327     }
1328     /**
1329      *
1330      *
1331      * <pre>
1332      * Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
1333      * </pre>
1334      *
1335      * <code>optional .google.cloud.compute.v1.HttpHeaderAction header_action = 328077352;</code>
1336      */
1337     private com.google.protobuf.SingleFieldBuilderV3<
1338             com.google.cloud.compute.v1.HttpHeaderAction,
1339             com.google.cloud.compute.v1.HttpHeaderAction.Builder,
1340             com.google.cloud.compute.v1.HttpHeaderActionOrBuilder>
getHeaderActionFieldBuilder()1341         getHeaderActionFieldBuilder() {
1342       if (headerActionBuilder_ == null) {
1343         headerActionBuilder_ =
1344             new com.google.protobuf.SingleFieldBuilderV3<
1345                 com.google.cloud.compute.v1.HttpHeaderAction,
1346                 com.google.cloud.compute.v1.HttpHeaderAction.Builder,
1347                 com.google.cloud.compute.v1.HttpHeaderActionOrBuilder>(
1348                 getHeaderAction(), getParentForChildren(), isClean());
1349         headerAction_ = null;
1350       }
1351       return headerActionBuilder_;
1352     }
1353 
1354     private java.util.List<com.google.cloud.compute.v1.HttpRouteRuleMatch> matchRules_ =
1355         java.util.Collections.emptyList();
1356 
ensureMatchRulesIsMutable()1357     private void ensureMatchRulesIsMutable() {
1358       if (!((bitField0_ & 0x00000004) != 0)) {
1359         matchRules_ =
1360             new java.util.ArrayList<com.google.cloud.compute.v1.HttpRouteRuleMatch>(matchRules_);
1361         bitField0_ |= 0x00000004;
1362       }
1363     }
1364 
1365     private com.google.protobuf.RepeatedFieldBuilderV3<
1366             com.google.cloud.compute.v1.HttpRouteRuleMatch,
1367             com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder,
1368             com.google.cloud.compute.v1.HttpRouteRuleMatchOrBuilder>
1369         matchRulesBuilder_;
1370 
1371     /**
1372      *
1373      *
1374      * <pre>
1375      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1376      * </pre>
1377      *
1378      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1379      */
getMatchRulesList()1380     public java.util.List<com.google.cloud.compute.v1.HttpRouteRuleMatch> getMatchRulesList() {
1381       if (matchRulesBuilder_ == null) {
1382         return java.util.Collections.unmodifiableList(matchRules_);
1383       } else {
1384         return matchRulesBuilder_.getMessageList();
1385       }
1386     }
1387     /**
1388      *
1389      *
1390      * <pre>
1391      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1392      * </pre>
1393      *
1394      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1395      */
getMatchRulesCount()1396     public int getMatchRulesCount() {
1397       if (matchRulesBuilder_ == null) {
1398         return matchRules_.size();
1399       } else {
1400         return matchRulesBuilder_.getCount();
1401       }
1402     }
1403     /**
1404      *
1405      *
1406      * <pre>
1407      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1408      * </pre>
1409      *
1410      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1411      */
getMatchRules(int index)1412     public com.google.cloud.compute.v1.HttpRouteRuleMatch getMatchRules(int index) {
1413       if (matchRulesBuilder_ == null) {
1414         return matchRules_.get(index);
1415       } else {
1416         return matchRulesBuilder_.getMessage(index);
1417       }
1418     }
1419     /**
1420      *
1421      *
1422      * <pre>
1423      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1424      * </pre>
1425      *
1426      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1427      */
setMatchRules(int index, com.google.cloud.compute.v1.HttpRouteRuleMatch value)1428     public Builder setMatchRules(int index, com.google.cloud.compute.v1.HttpRouteRuleMatch value) {
1429       if (matchRulesBuilder_ == null) {
1430         if (value == null) {
1431           throw new NullPointerException();
1432         }
1433         ensureMatchRulesIsMutable();
1434         matchRules_.set(index, value);
1435         onChanged();
1436       } else {
1437         matchRulesBuilder_.setMessage(index, value);
1438       }
1439       return this;
1440     }
1441     /**
1442      *
1443      *
1444      * <pre>
1445      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1446      * </pre>
1447      *
1448      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1449      */
setMatchRules( int index, com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder builderForValue)1450     public Builder setMatchRules(
1451         int index, com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder builderForValue) {
1452       if (matchRulesBuilder_ == null) {
1453         ensureMatchRulesIsMutable();
1454         matchRules_.set(index, builderForValue.build());
1455         onChanged();
1456       } else {
1457         matchRulesBuilder_.setMessage(index, builderForValue.build());
1458       }
1459       return this;
1460     }
1461     /**
1462      *
1463      *
1464      * <pre>
1465      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1466      * </pre>
1467      *
1468      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1469      */
addMatchRules(com.google.cloud.compute.v1.HttpRouteRuleMatch value)1470     public Builder addMatchRules(com.google.cloud.compute.v1.HttpRouteRuleMatch value) {
1471       if (matchRulesBuilder_ == null) {
1472         if (value == null) {
1473           throw new NullPointerException();
1474         }
1475         ensureMatchRulesIsMutable();
1476         matchRules_.add(value);
1477         onChanged();
1478       } else {
1479         matchRulesBuilder_.addMessage(value);
1480       }
1481       return this;
1482     }
1483     /**
1484      *
1485      *
1486      * <pre>
1487      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1488      * </pre>
1489      *
1490      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1491      */
addMatchRules(int index, com.google.cloud.compute.v1.HttpRouteRuleMatch value)1492     public Builder addMatchRules(int index, com.google.cloud.compute.v1.HttpRouteRuleMatch value) {
1493       if (matchRulesBuilder_ == null) {
1494         if (value == null) {
1495           throw new NullPointerException();
1496         }
1497         ensureMatchRulesIsMutable();
1498         matchRules_.add(index, value);
1499         onChanged();
1500       } else {
1501         matchRulesBuilder_.addMessage(index, value);
1502       }
1503       return this;
1504     }
1505     /**
1506      *
1507      *
1508      * <pre>
1509      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1510      * </pre>
1511      *
1512      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1513      */
addMatchRules( com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder builderForValue)1514     public Builder addMatchRules(
1515         com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder builderForValue) {
1516       if (matchRulesBuilder_ == null) {
1517         ensureMatchRulesIsMutable();
1518         matchRules_.add(builderForValue.build());
1519         onChanged();
1520       } else {
1521         matchRulesBuilder_.addMessage(builderForValue.build());
1522       }
1523       return this;
1524     }
1525     /**
1526      *
1527      *
1528      * <pre>
1529      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1530      * </pre>
1531      *
1532      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1533      */
addMatchRules( int index, com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder builderForValue)1534     public Builder addMatchRules(
1535         int index, com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder builderForValue) {
1536       if (matchRulesBuilder_ == null) {
1537         ensureMatchRulesIsMutable();
1538         matchRules_.add(index, builderForValue.build());
1539         onChanged();
1540       } else {
1541         matchRulesBuilder_.addMessage(index, builderForValue.build());
1542       }
1543       return this;
1544     }
1545     /**
1546      *
1547      *
1548      * <pre>
1549      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1550      * </pre>
1551      *
1552      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1553      */
addAllMatchRules( java.lang.Iterable<? extends com.google.cloud.compute.v1.HttpRouteRuleMatch> values)1554     public Builder addAllMatchRules(
1555         java.lang.Iterable<? extends com.google.cloud.compute.v1.HttpRouteRuleMatch> values) {
1556       if (matchRulesBuilder_ == null) {
1557         ensureMatchRulesIsMutable();
1558         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, matchRules_);
1559         onChanged();
1560       } else {
1561         matchRulesBuilder_.addAllMessages(values);
1562       }
1563       return this;
1564     }
1565     /**
1566      *
1567      *
1568      * <pre>
1569      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1570      * </pre>
1571      *
1572      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1573      */
clearMatchRules()1574     public Builder clearMatchRules() {
1575       if (matchRulesBuilder_ == null) {
1576         matchRules_ = java.util.Collections.emptyList();
1577         bitField0_ = (bitField0_ & ~0x00000004);
1578         onChanged();
1579       } else {
1580         matchRulesBuilder_.clear();
1581       }
1582       return this;
1583     }
1584     /**
1585      *
1586      *
1587      * <pre>
1588      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1589      * </pre>
1590      *
1591      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1592      */
removeMatchRules(int index)1593     public Builder removeMatchRules(int index) {
1594       if (matchRulesBuilder_ == null) {
1595         ensureMatchRulesIsMutable();
1596         matchRules_.remove(index);
1597         onChanged();
1598       } else {
1599         matchRulesBuilder_.remove(index);
1600       }
1601       return this;
1602     }
1603     /**
1604      *
1605      *
1606      * <pre>
1607      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1608      * </pre>
1609      *
1610      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1611      */
getMatchRulesBuilder(int index)1612     public com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder getMatchRulesBuilder(int index) {
1613       return getMatchRulesFieldBuilder().getBuilder(index);
1614     }
1615     /**
1616      *
1617      *
1618      * <pre>
1619      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1620      * </pre>
1621      *
1622      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1623      */
getMatchRulesOrBuilder( int index)1624     public com.google.cloud.compute.v1.HttpRouteRuleMatchOrBuilder getMatchRulesOrBuilder(
1625         int index) {
1626       if (matchRulesBuilder_ == null) {
1627         return matchRules_.get(index);
1628       } else {
1629         return matchRulesBuilder_.getMessageOrBuilder(index);
1630       }
1631     }
1632     /**
1633      *
1634      *
1635      * <pre>
1636      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1637      * </pre>
1638      *
1639      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1640      */
1641     public java.util.List<? extends com.google.cloud.compute.v1.HttpRouteRuleMatchOrBuilder>
getMatchRulesOrBuilderList()1642         getMatchRulesOrBuilderList() {
1643       if (matchRulesBuilder_ != null) {
1644         return matchRulesBuilder_.getMessageOrBuilderList();
1645       } else {
1646         return java.util.Collections.unmodifiableList(matchRules_);
1647       }
1648     }
1649     /**
1650      *
1651      *
1652      * <pre>
1653      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1654      * </pre>
1655      *
1656      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1657      */
addMatchRulesBuilder()1658     public com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder addMatchRulesBuilder() {
1659       return getMatchRulesFieldBuilder()
1660           .addBuilder(com.google.cloud.compute.v1.HttpRouteRuleMatch.getDefaultInstance());
1661     }
1662     /**
1663      *
1664      *
1665      * <pre>
1666      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1667      * </pre>
1668      *
1669      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1670      */
addMatchRulesBuilder(int index)1671     public com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder addMatchRulesBuilder(int index) {
1672       return getMatchRulesFieldBuilder()
1673           .addBuilder(index, com.google.cloud.compute.v1.HttpRouteRuleMatch.getDefaultInstance());
1674     }
1675     /**
1676      *
1677      *
1678      * <pre>
1679      * The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.
1680      * </pre>
1681      *
1682      * <code>repeated .google.cloud.compute.v1.HttpRouteRuleMatch match_rules = 376200701;</code>
1683      */
1684     public java.util.List<com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder>
getMatchRulesBuilderList()1685         getMatchRulesBuilderList() {
1686       return getMatchRulesFieldBuilder().getBuilderList();
1687     }
1688 
1689     private com.google.protobuf.RepeatedFieldBuilderV3<
1690             com.google.cloud.compute.v1.HttpRouteRuleMatch,
1691             com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder,
1692             com.google.cloud.compute.v1.HttpRouteRuleMatchOrBuilder>
getMatchRulesFieldBuilder()1693         getMatchRulesFieldBuilder() {
1694       if (matchRulesBuilder_ == null) {
1695         matchRulesBuilder_ =
1696             new com.google.protobuf.RepeatedFieldBuilderV3<
1697                 com.google.cloud.compute.v1.HttpRouteRuleMatch,
1698                 com.google.cloud.compute.v1.HttpRouteRuleMatch.Builder,
1699                 com.google.cloud.compute.v1.HttpRouteRuleMatchOrBuilder>(
1700                 matchRules_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean());
1701         matchRules_ = null;
1702       }
1703       return matchRulesBuilder_;
1704     }
1705 
1706     private int priority_;
1707     /**
1708      *
1709      *
1710      * <pre>
1711      * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.
1712      * </pre>
1713      *
1714      * <code>optional int32 priority = 445151652;</code>
1715      *
1716      * @return Whether the priority field is set.
1717      */
1718     @java.lang.Override
hasPriority()1719     public boolean hasPriority() {
1720       return ((bitField0_ & 0x00000008) != 0);
1721     }
1722     /**
1723      *
1724      *
1725      * <pre>
1726      * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.
1727      * </pre>
1728      *
1729      * <code>optional int32 priority = 445151652;</code>
1730      *
1731      * @return The priority.
1732      */
1733     @java.lang.Override
getPriority()1734     public int getPriority() {
1735       return priority_;
1736     }
1737     /**
1738      *
1739      *
1740      * <pre>
1741      * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.
1742      * </pre>
1743      *
1744      * <code>optional int32 priority = 445151652;</code>
1745      *
1746      * @param value The priority to set.
1747      * @return This builder for chaining.
1748      */
setPriority(int value)1749     public Builder setPriority(int value) {
1750 
1751       priority_ = value;
1752       bitField0_ |= 0x00000008;
1753       onChanged();
1754       return this;
1755     }
1756     /**
1757      *
1758      *
1759      * <pre>
1760      * For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.
1761      * </pre>
1762      *
1763      * <code>optional int32 priority = 445151652;</code>
1764      *
1765      * @return This builder for chaining.
1766      */
clearPriority()1767     public Builder clearPriority() {
1768       bitField0_ = (bitField0_ & ~0x00000008);
1769       priority_ = 0;
1770       onChanged();
1771       return this;
1772     }
1773 
1774     private com.google.cloud.compute.v1.HttpRouteAction routeAction_;
1775     private com.google.protobuf.SingleFieldBuilderV3<
1776             com.google.cloud.compute.v1.HttpRouteAction,
1777             com.google.cloud.compute.v1.HttpRouteAction.Builder,
1778             com.google.cloud.compute.v1.HttpRouteActionOrBuilder>
1779         routeActionBuilder_;
1780     /**
1781      *
1782      *
1783      * <pre>
1784      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1785      * </pre>
1786      *
1787      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1788      *
1789      * @return Whether the routeAction field is set.
1790      */
hasRouteAction()1791     public boolean hasRouteAction() {
1792       return ((bitField0_ & 0x00000010) != 0);
1793     }
1794     /**
1795      *
1796      *
1797      * <pre>
1798      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1799      * </pre>
1800      *
1801      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1802      *
1803      * @return The routeAction.
1804      */
getRouteAction()1805     public com.google.cloud.compute.v1.HttpRouteAction getRouteAction() {
1806       if (routeActionBuilder_ == null) {
1807         return routeAction_ == null
1808             ? com.google.cloud.compute.v1.HttpRouteAction.getDefaultInstance()
1809             : routeAction_;
1810       } else {
1811         return routeActionBuilder_.getMessage();
1812       }
1813     }
1814     /**
1815      *
1816      *
1817      * <pre>
1818      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1819      * </pre>
1820      *
1821      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1822      */
setRouteAction(com.google.cloud.compute.v1.HttpRouteAction value)1823     public Builder setRouteAction(com.google.cloud.compute.v1.HttpRouteAction value) {
1824       if (routeActionBuilder_ == null) {
1825         if (value == null) {
1826           throw new NullPointerException();
1827         }
1828         routeAction_ = value;
1829       } else {
1830         routeActionBuilder_.setMessage(value);
1831       }
1832       bitField0_ |= 0x00000010;
1833       onChanged();
1834       return this;
1835     }
1836     /**
1837      *
1838      *
1839      * <pre>
1840      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1841      * </pre>
1842      *
1843      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1844      */
setRouteAction( com.google.cloud.compute.v1.HttpRouteAction.Builder builderForValue)1845     public Builder setRouteAction(
1846         com.google.cloud.compute.v1.HttpRouteAction.Builder builderForValue) {
1847       if (routeActionBuilder_ == null) {
1848         routeAction_ = builderForValue.build();
1849       } else {
1850         routeActionBuilder_.setMessage(builderForValue.build());
1851       }
1852       bitField0_ |= 0x00000010;
1853       onChanged();
1854       return this;
1855     }
1856     /**
1857      *
1858      *
1859      * <pre>
1860      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1861      * </pre>
1862      *
1863      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1864      */
mergeRouteAction(com.google.cloud.compute.v1.HttpRouteAction value)1865     public Builder mergeRouteAction(com.google.cloud.compute.v1.HttpRouteAction value) {
1866       if (routeActionBuilder_ == null) {
1867         if (((bitField0_ & 0x00000010) != 0)
1868             && routeAction_ != null
1869             && routeAction_ != com.google.cloud.compute.v1.HttpRouteAction.getDefaultInstance()) {
1870           getRouteActionBuilder().mergeFrom(value);
1871         } else {
1872           routeAction_ = value;
1873         }
1874       } else {
1875         routeActionBuilder_.mergeFrom(value);
1876       }
1877       bitField0_ |= 0x00000010;
1878       onChanged();
1879       return this;
1880     }
1881     /**
1882      *
1883      *
1884      * <pre>
1885      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1886      * </pre>
1887      *
1888      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1889      */
clearRouteAction()1890     public Builder clearRouteAction() {
1891       bitField0_ = (bitField0_ & ~0x00000010);
1892       routeAction_ = null;
1893       if (routeActionBuilder_ != null) {
1894         routeActionBuilder_.dispose();
1895         routeActionBuilder_ = null;
1896       }
1897       onChanged();
1898       return this;
1899     }
1900     /**
1901      *
1902      *
1903      * <pre>
1904      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1905      * </pre>
1906      *
1907      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1908      */
getRouteActionBuilder()1909     public com.google.cloud.compute.v1.HttpRouteAction.Builder getRouteActionBuilder() {
1910       bitField0_ |= 0x00000010;
1911       onChanged();
1912       return getRouteActionFieldBuilder().getBuilder();
1913     }
1914     /**
1915      *
1916      *
1917      * <pre>
1918      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1919      * </pre>
1920      *
1921      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1922      */
getRouteActionOrBuilder()1923     public com.google.cloud.compute.v1.HttpRouteActionOrBuilder getRouteActionOrBuilder() {
1924       if (routeActionBuilder_ != null) {
1925         return routeActionBuilder_.getMessageOrBuilder();
1926       } else {
1927         return routeAction_ == null
1928             ? com.google.cloud.compute.v1.HttpRouteAction.getDefaultInstance()
1929             : routeAction_;
1930       }
1931     }
1932     /**
1933      *
1934      *
1935      * <pre>
1936      * In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for Classic external HTTP(S) load balancers only support the urlRewrite action within a route rule's routeAction.
1937      * </pre>
1938      *
1939      * <code>optional .google.cloud.compute.v1.HttpRouteAction route_action = 424563948;</code>
1940      */
1941     private com.google.protobuf.SingleFieldBuilderV3<
1942             com.google.cloud.compute.v1.HttpRouteAction,
1943             com.google.cloud.compute.v1.HttpRouteAction.Builder,
1944             com.google.cloud.compute.v1.HttpRouteActionOrBuilder>
getRouteActionFieldBuilder()1945         getRouteActionFieldBuilder() {
1946       if (routeActionBuilder_ == null) {
1947         routeActionBuilder_ =
1948             new com.google.protobuf.SingleFieldBuilderV3<
1949                 com.google.cloud.compute.v1.HttpRouteAction,
1950                 com.google.cloud.compute.v1.HttpRouteAction.Builder,
1951                 com.google.cloud.compute.v1.HttpRouteActionOrBuilder>(
1952                 getRouteAction(), getParentForChildren(), isClean());
1953         routeAction_ = null;
1954       }
1955       return routeActionBuilder_;
1956     }
1957 
1958     private java.lang.Object service_ = "";
1959     /**
1960      *
1961      *
1962      * <pre>
1963      * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
1964      * </pre>
1965      *
1966      * <code>optional string service = 373540533;</code>
1967      *
1968      * @return Whether the service field is set.
1969      */
hasService()1970     public boolean hasService() {
1971       return ((bitField0_ & 0x00000020) != 0);
1972     }
1973     /**
1974      *
1975      *
1976      * <pre>
1977      * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
1978      * </pre>
1979      *
1980      * <code>optional string service = 373540533;</code>
1981      *
1982      * @return The service.
1983      */
getService()1984     public java.lang.String getService() {
1985       java.lang.Object ref = service_;
1986       if (!(ref instanceof java.lang.String)) {
1987         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1988         java.lang.String s = bs.toStringUtf8();
1989         service_ = s;
1990         return s;
1991       } else {
1992         return (java.lang.String) ref;
1993       }
1994     }
1995     /**
1996      *
1997      *
1998      * <pre>
1999      * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
2000      * </pre>
2001      *
2002      * <code>optional string service = 373540533;</code>
2003      *
2004      * @return The bytes for service.
2005      */
getServiceBytes()2006     public com.google.protobuf.ByteString getServiceBytes() {
2007       java.lang.Object ref = service_;
2008       if (ref instanceof String) {
2009         com.google.protobuf.ByteString b =
2010             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2011         service_ = b;
2012         return b;
2013       } else {
2014         return (com.google.protobuf.ByteString) ref;
2015       }
2016     }
2017     /**
2018      *
2019      *
2020      * <pre>
2021      * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
2022      * </pre>
2023      *
2024      * <code>optional string service = 373540533;</code>
2025      *
2026      * @param value The service to set.
2027      * @return This builder for chaining.
2028      */
setService(java.lang.String value)2029     public Builder setService(java.lang.String value) {
2030       if (value == null) {
2031         throw new NullPointerException();
2032       }
2033       service_ = value;
2034       bitField0_ |= 0x00000020;
2035       onChanged();
2036       return this;
2037     }
2038     /**
2039      *
2040      *
2041      * <pre>
2042      * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
2043      * </pre>
2044      *
2045      * <code>optional string service = 373540533;</code>
2046      *
2047      * @return This builder for chaining.
2048      */
clearService()2049     public Builder clearService() {
2050       service_ = getDefaultInstance().getService();
2051       bitField0_ = (bitField0_ & ~0x00000020);
2052       onChanged();
2053       return this;
2054     }
2055     /**
2056      *
2057      *
2058      * <pre>
2059      * The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.
2060      * </pre>
2061      *
2062      * <code>optional string service = 373540533;</code>
2063      *
2064      * @param value The bytes for service to set.
2065      * @return This builder for chaining.
2066      */
setServiceBytes(com.google.protobuf.ByteString value)2067     public Builder setServiceBytes(com.google.protobuf.ByteString value) {
2068       if (value == null) {
2069         throw new NullPointerException();
2070       }
2071       checkByteStringIsUtf8(value);
2072       service_ = value;
2073       bitField0_ |= 0x00000020;
2074       onChanged();
2075       return this;
2076     }
2077 
2078     private com.google.cloud.compute.v1.HttpRedirectAction urlRedirect_;
2079     private com.google.protobuf.SingleFieldBuilderV3<
2080             com.google.cloud.compute.v1.HttpRedirectAction,
2081             com.google.cloud.compute.v1.HttpRedirectAction.Builder,
2082             com.google.cloud.compute.v1.HttpRedirectActionOrBuilder>
2083         urlRedirectBuilder_;
2084     /**
2085      *
2086      *
2087      * <pre>
2088      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2089      * </pre>
2090      *
2091      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2092      *
2093      * @return Whether the urlRedirect field is set.
2094      */
hasUrlRedirect()2095     public boolean hasUrlRedirect() {
2096       return ((bitField0_ & 0x00000040) != 0);
2097     }
2098     /**
2099      *
2100      *
2101      * <pre>
2102      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2103      * </pre>
2104      *
2105      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2106      *
2107      * @return The urlRedirect.
2108      */
getUrlRedirect()2109     public com.google.cloud.compute.v1.HttpRedirectAction getUrlRedirect() {
2110       if (urlRedirectBuilder_ == null) {
2111         return urlRedirect_ == null
2112             ? com.google.cloud.compute.v1.HttpRedirectAction.getDefaultInstance()
2113             : urlRedirect_;
2114       } else {
2115         return urlRedirectBuilder_.getMessage();
2116       }
2117     }
2118     /**
2119      *
2120      *
2121      * <pre>
2122      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2123      * </pre>
2124      *
2125      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2126      */
setUrlRedirect(com.google.cloud.compute.v1.HttpRedirectAction value)2127     public Builder setUrlRedirect(com.google.cloud.compute.v1.HttpRedirectAction value) {
2128       if (urlRedirectBuilder_ == null) {
2129         if (value == null) {
2130           throw new NullPointerException();
2131         }
2132         urlRedirect_ = value;
2133       } else {
2134         urlRedirectBuilder_.setMessage(value);
2135       }
2136       bitField0_ |= 0x00000040;
2137       onChanged();
2138       return this;
2139     }
2140     /**
2141      *
2142      *
2143      * <pre>
2144      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2145      * </pre>
2146      *
2147      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2148      */
setUrlRedirect( com.google.cloud.compute.v1.HttpRedirectAction.Builder builderForValue)2149     public Builder setUrlRedirect(
2150         com.google.cloud.compute.v1.HttpRedirectAction.Builder builderForValue) {
2151       if (urlRedirectBuilder_ == null) {
2152         urlRedirect_ = builderForValue.build();
2153       } else {
2154         urlRedirectBuilder_.setMessage(builderForValue.build());
2155       }
2156       bitField0_ |= 0x00000040;
2157       onChanged();
2158       return this;
2159     }
2160     /**
2161      *
2162      *
2163      * <pre>
2164      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2165      * </pre>
2166      *
2167      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2168      */
mergeUrlRedirect(com.google.cloud.compute.v1.HttpRedirectAction value)2169     public Builder mergeUrlRedirect(com.google.cloud.compute.v1.HttpRedirectAction value) {
2170       if (urlRedirectBuilder_ == null) {
2171         if (((bitField0_ & 0x00000040) != 0)
2172             && urlRedirect_ != null
2173             && urlRedirect_
2174                 != com.google.cloud.compute.v1.HttpRedirectAction.getDefaultInstance()) {
2175           getUrlRedirectBuilder().mergeFrom(value);
2176         } else {
2177           urlRedirect_ = value;
2178         }
2179       } else {
2180         urlRedirectBuilder_.mergeFrom(value);
2181       }
2182       bitField0_ |= 0x00000040;
2183       onChanged();
2184       return this;
2185     }
2186     /**
2187      *
2188      *
2189      * <pre>
2190      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2191      * </pre>
2192      *
2193      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2194      */
clearUrlRedirect()2195     public Builder clearUrlRedirect() {
2196       bitField0_ = (bitField0_ & ~0x00000040);
2197       urlRedirect_ = null;
2198       if (urlRedirectBuilder_ != null) {
2199         urlRedirectBuilder_.dispose();
2200         urlRedirectBuilder_ = null;
2201       }
2202       onChanged();
2203       return this;
2204     }
2205     /**
2206      *
2207      *
2208      * <pre>
2209      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2210      * </pre>
2211      *
2212      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2213      */
getUrlRedirectBuilder()2214     public com.google.cloud.compute.v1.HttpRedirectAction.Builder getUrlRedirectBuilder() {
2215       bitField0_ |= 0x00000040;
2216       onChanged();
2217       return getUrlRedirectFieldBuilder().getBuilder();
2218     }
2219     /**
2220      *
2221      *
2222      * <pre>
2223      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2224      * </pre>
2225      *
2226      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2227      */
getUrlRedirectOrBuilder()2228     public com.google.cloud.compute.v1.HttpRedirectActionOrBuilder getUrlRedirectOrBuilder() {
2229       if (urlRedirectBuilder_ != null) {
2230         return urlRedirectBuilder_.getMessageOrBuilder();
2231       } else {
2232         return urlRedirect_ == null
2233             ? com.google.cloud.compute.v1.HttpRedirectAction.getDefaultInstance()
2234             : urlRedirect_;
2235       }
2236     }
2237     /**
2238      *
2239      *
2240      * <pre>
2241      * When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy.
2242      * </pre>
2243      *
2244      * <code>optional .google.cloud.compute.v1.HttpRedirectAction url_redirect = 405147820;</code>
2245      */
2246     private com.google.protobuf.SingleFieldBuilderV3<
2247             com.google.cloud.compute.v1.HttpRedirectAction,
2248             com.google.cloud.compute.v1.HttpRedirectAction.Builder,
2249             com.google.cloud.compute.v1.HttpRedirectActionOrBuilder>
getUrlRedirectFieldBuilder()2250         getUrlRedirectFieldBuilder() {
2251       if (urlRedirectBuilder_ == null) {
2252         urlRedirectBuilder_ =
2253             new com.google.protobuf.SingleFieldBuilderV3<
2254                 com.google.cloud.compute.v1.HttpRedirectAction,
2255                 com.google.cloud.compute.v1.HttpRedirectAction.Builder,
2256                 com.google.cloud.compute.v1.HttpRedirectActionOrBuilder>(
2257                 getUrlRedirect(), getParentForChildren(), isClean());
2258         urlRedirect_ = null;
2259       }
2260       return urlRedirectBuilder_;
2261     }
2262 
2263     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)2264     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
2265       return super.setUnknownFields(unknownFields);
2266     }
2267 
2268     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)2269     public final Builder mergeUnknownFields(
2270         final com.google.protobuf.UnknownFieldSet unknownFields) {
2271       return super.mergeUnknownFields(unknownFields);
2272     }
2273 
2274     // @@protoc_insertion_point(builder_scope:google.cloud.compute.v1.HttpRouteRule)
2275   }
2276 
2277   // @@protoc_insertion_point(class_scope:google.cloud.compute.v1.HttpRouteRule)
2278   private static final com.google.cloud.compute.v1.HttpRouteRule DEFAULT_INSTANCE;
2279 
2280   static {
2281     DEFAULT_INSTANCE = new com.google.cloud.compute.v1.HttpRouteRule();
2282   }
2283 
getDefaultInstance()2284   public static com.google.cloud.compute.v1.HttpRouteRule getDefaultInstance() {
2285     return DEFAULT_INSTANCE;
2286   }
2287 
2288   private static final com.google.protobuf.Parser<HttpRouteRule> PARSER =
2289       new com.google.protobuf.AbstractParser<HttpRouteRule>() {
2290         @java.lang.Override
2291         public HttpRouteRule parsePartialFrom(
2292             com.google.protobuf.CodedInputStream input,
2293             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2294             throws com.google.protobuf.InvalidProtocolBufferException {
2295           Builder builder = newBuilder();
2296           try {
2297             builder.mergeFrom(input, extensionRegistry);
2298           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2299             throw e.setUnfinishedMessage(builder.buildPartial());
2300           } catch (com.google.protobuf.UninitializedMessageException e) {
2301             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
2302           } catch (java.io.IOException e) {
2303             throw new com.google.protobuf.InvalidProtocolBufferException(e)
2304                 .setUnfinishedMessage(builder.buildPartial());
2305           }
2306           return builder.buildPartial();
2307         }
2308       };
2309 
parser()2310   public static com.google.protobuf.Parser<HttpRouteRule> parser() {
2311     return PARSER;
2312   }
2313 
2314   @java.lang.Override
getParserForType()2315   public com.google.protobuf.Parser<HttpRouteRule> getParserForType() {
2316     return PARSER;
2317   }
2318 
2319   @java.lang.Override
getDefaultInstanceForType()2320   public com.google.cloud.compute.v1.HttpRouteRule getDefaultInstanceForType() {
2321     return DEFAULT_INSTANCE;
2322   }
2323 }
2324