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