• 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  * Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.
26  * </pre>
27  *
28  * Protobuf type {@code google.cloud.compute.v1.Subnetwork}
29  */
30 public final class Subnetwork extends com.google.protobuf.GeneratedMessageV3
31     implements
32     // @@protoc_insertion_point(message_implements:google.cloud.compute.v1.Subnetwork)
33     SubnetworkOrBuilder {
34   private static final long serialVersionUID = 0L;
35   // Use Subnetwork.newBuilder() to construct.
Subnetwork(com.google.protobuf.GeneratedMessageV3.Builder<?> builder)36   private Subnetwork(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
37     super(builder);
38   }
39 
Subnetwork()40   private Subnetwork() {
41     creationTimestamp_ = "";
42     description_ = "";
43     externalIpv6Prefix_ = "";
44     fingerprint_ = "";
45     gatewayAddress_ = "";
46     internalIpv6Prefix_ = "";
47     ipCidrRange_ = "";
48     ipv6AccessType_ = "";
49     ipv6CidrRange_ = "";
50     kind_ = "";
51     name_ = "";
52     network_ = "";
53     privateIpv6GoogleAccess_ = "";
54     purpose_ = "";
55     region_ = "";
56     role_ = "";
57     secondaryIpRanges_ = java.util.Collections.emptyList();
58     selfLink_ = "";
59     stackType_ = "";
60     state_ = "";
61   }
62 
63   @java.lang.Override
64   @SuppressWarnings({"unused"})
newInstance(UnusedPrivateParameter unused)65   protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
66     return new Subnetwork();
67   }
68 
69   @java.lang.Override
getUnknownFields()70   public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
71     return this.unknownFields;
72   }
73 
getDescriptor()74   public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
75     return com.google.cloud.compute.v1.Compute
76         .internal_static_google_cloud_compute_v1_Subnetwork_descriptor;
77   }
78 
79   @java.lang.Override
80   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()81       internalGetFieldAccessorTable() {
82     return com.google.cloud.compute.v1.Compute
83         .internal_static_google_cloud_compute_v1_Subnetwork_fieldAccessorTable
84         .ensureFieldAccessorsInitialized(
85             com.google.cloud.compute.v1.Subnetwork.class,
86             com.google.cloud.compute.v1.Subnetwork.Builder.class);
87   }
88 
89   /**
90    *
91    *
92    * <pre>
93    * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
94    * </pre>
95    *
96    * Protobuf enum {@code google.cloud.compute.v1.Subnetwork.Ipv6AccessType}
97    */
98   public enum Ipv6AccessType implements com.google.protobuf.ProtocolMessageEnum {
99     /**
100      *
101      *
102      * <pre>
103      * A value indicating that the enum field is not set.
104      * </pre>
105      *
106      * <code>UNDEFINED_IPV6_ACCESS_TYPE = 0;</code>
107      */
108     UNDEFINED_IPV6_ACCESS_TYPE(0),
109     /**
110      *
111      *
112      * <pre>
113      * VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.
114      * </pre>
115      *
116      * <code>EXTERNAL = 35607499;</code>
117      */
118     EXTERNAL(35607499),
119     /**
120      *
121      *
122      * <pre>
123      * VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network.
124      * </pre>
125      *
126      * <code>INTERNAL = 279295677;</code>
127      */
128     INTERNAL(279295677),
129     /** <code>UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613;</code> */
130     UNSPECIFIED_IPV6_ACCESS_TYPE(313080613),
131     UNRECOGNIZED(-1),
132     ;
133 
134     /**
135      *
136      *
137      * <pre>
138      * A value indicating that the enum field is not set.
139      * </pre>
140      *
141      * <code>UNDEFINED_IPV6_ACCESS_TYPE = 0;</code>
142      */
143     public static final int UNDEFINED_IPV6_ACCESS_TYPE_VALUE = 0;
144     /**
145      *
146      *
147      * <pre>
148      * VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.
149      * </pre>
150      *
151      * <code>EXTERNAL = 35607499;</code>
152      */
153     public static final int EXTERNAL_VALUE = 35607499;
154     /**
155      *
156      *
157      * <pre>
158      * VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network.
159      * </pre>
160      *
161      * <code>INTERNAL = 279295677;</code>
162      */
163     public static final int INTERNAL_VALUE = 279295677;
164     /** <code>UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613;</code> */
165     public static final int UNSPECIFIED_IPV6_ACCESS_TYPE_VALUE = 313080613;
166 
getNumber()167     public final int getNumber() {
168       if (this == UNRECOGNIZED) {
169         throw new java.lang.IllegalArgumentException(
170             "Can't get the number of an unknown enum value.");
171       }
172       return value;
173     }
174 
175     /**
176      * @param value The numeric wire value of the corresponding enum entry.
177      * @return The enum associated with the given numeric wire value.
178      * @deprecated Use {@link #forNumber(int)} instead.
179      */
180     @java.lang.Deprecated
valueOf(int value)181     public static Ipv6AccessType valueOf(int value) {
182       return forNumber(value);
183     }
184 
185     /**
186      * @param value The numeric wire value of the corresponding enum entry.
187      * @return The enum associated with the given numeric wire value.
188      */
forNumber(int value)189     public static Ipv6AccessType forNumber(int value) {
190       switch (value) {
191         case 0:
192           return UNDEFINED_IPV6_ACCESS_TYPE;
193         case 35607499:
194           return EXTERNAL;
195         case 279295677:
196           return INTERNAL;
197         case 313080613:
198           return UNSPECIFIED_IPV6_ACCESS_TYPE;
199         default:
200           return null;
201       }
202     }
203 
internalGetValueMap()204     public static com.google.protobuf.Internal.EnumLiteMap<Ipv6AccessType> internalGetValueMap() {
205       return internalValueMap;
206     }
207 
208     private static final com.google.protobuf.Internal.EnumLiteMap<Ipv6AccessType> internalValueMap =
209         new com.google.protobuf.Internal.EnumLiteMap<Ipv6AccessType>() {
210           public Ipv6AccessType findValueByNumber(int number) {
211             return Ipv6AccessType.forNumber(number);
212           }
213         };
214 
getValueDescriptor()215     public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
216       if (this == UNRECOGNIZED) {
217         throw new java.lang.IllegalStateException(
218             "Can't get the descriptor of an unrecognized enum value.");
219       }
220       return getDescriptor().getValues().get(ordinal());
221     }
222 
getDescriptorForType()223     public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
224       return getDescriptor();
225     }
226 
getDescriptor()227     public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
228       return com.google.cloud.compute.v1.Subnetwork.getDescriptor().getEnumTypes().get(0);
229     }
230 
231     private static final Ipv6AccessType[] VALUES = values();
232 
valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)233     public static Ipv6AccessType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
234       if (desc.getType() != getDescriptor()) {
235         throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
236       }
237       if (desc.getIndex() == -1) {
238         return UNRECOGNIZED;
239       }
240       return VALUES[desc.getIndex()];
241     }
242 
243     private final int value;
244 
Ipv6AccessType(int value)245     private Ipv6AccessType(int value) {
246       this.value = value;
247     }
248 
249     // @@protoc_insertion_point(enum_scope:google.cloud.compute.v1.Subnetwork.Ipv6AccessType)
250   }
251 
252   /**
253    *
254    *
255    * <pre>
256    * This field is for internal use. This field can be both set at resource creation time and updated using patch.
257    * </pre>
258    *
259    * Protobuf enum {@code google.cloud.compute.v1.Subnetwork.PrivateIpv6GoogleAccess}
260    */
261   public enum PrivateIpv6GoogleAccess implements com.google.protobuf.ProtocolMessageEnum {
262     /**
263      *
264      *
265      * <pre>
266      * A value indicating that the enum field is not set.
267      * </pre>
268      *
269      * <code>UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0;</code>
270      */
271     UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS(0),
272     /**
273      *
274      *
275      * <pre>
276      * Disable private IPv6 access to/from Google services.
277      * </pre>
278      *
279      * <code>DISABLE_GOOGLE_ACCESS = 450958579;</code>
280      */
281     DISABLE_GOOGLE_ACCESS(450958579),
282     /**
283      *
284      *
285      * <pre>
286      * Bidirectional private IPv6 access to/from Google services.
287      * </pre>
288      *
289      * <code>ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994;</code>
290      */
291     ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE(427975994),
292     /**
293      *
294      *
295      * <pre>
296      * Outbound private IPv6 access from VMs in this subnet to Google services.
297      * </pre>
298      *
299      * <code>ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263;</code>
300      */
301     ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE(288210263),
302     UNRECOGNIZED(-1),
303     ;
304 
305     /**
306      *
307      *
308      * <pre>
309      * A value indicating that the enum field is not set.
310      * </pre>
311      *
312      * <code>UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0;</code>
313      */
314     public static final int UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS_VALUE = 0;
315     /**
316      *
317      *
318      * <pre>
319      * Disable private IPv6 access to/from Google services.
320      * </pre>
321      *
322      * <code>DISABLE_GOOGLE_ACCESS = 450958579;</code>
323      */
324     public static final int DISABLE_GOOGLE_ACCESS_VALUE = 450958579;
325     /**
326      *
327      *
328      * <pre>
329      * Bidirectional private IPv6 access to/from Google services.
330      * </pre>
331      *
332      * <code>ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994;</code>
333      */
334     public static final int ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_VALUE = 427975994;
335     /**
336      *
337      *
338      * <pre>
339      * Outbound private IPv6 access from VMs in this subnet to Google services.
340      * </pre>
341      *
342      * <code>ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263;</code>
343      */
344     public static final int ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_VALUE = 288210263;
345 
getNumber()346     public final int getNumber() {
347       if (this == UNRECOGNIZED) {
348         throw new java.lang.IllegalArgumentException(
349             "Can't get the number of an unknown enum value.");
350       }
351       return value;
352     }
353 
354     /**
355      * @param value The numeric wire value of the corresponding enum entry.
356      * @return The enum associated with the given numeric wire value.
357      * @deprecated Use {@link #forNumber(int)} instead.
358      */
359     @java.lang.Deprecated
valueOf(int value)360     public static PrivateIpv6GoogleAccess valueOf(int value) {
361       return forNumber(value);
362     }
363 
364     /**
365      * @param value The numeric wire value of the corresponding enum entry.
366      * @return The enum associated with the given numeric wire value.
367      */
forNumber(int value)368     public static PrivateIpv6GoogleAccess forNumber(int value) {
369       switch (value) {
370         case 0:
371           return UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS;
372         case 450958579:
373           return DISABLE_GOOGLE_ACCESS;
374         case 427975994:
375           return ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE;
376         case 288210263:
377           return ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE;
378         default:
379           return null;
380       }
381     }
382 
383     public static com.google.protobuf.Internal.EnumLiteMap<PrivateIpv6GoogleAccess>
internalGetValueMap()384         internalGetValueMap() {
385       return internalValueMap;
386     }
387 
388     private static final com.google.protobuf.Internal.EnumLiteMap<PrivateIpv6GoogleAccess>
389         internalValueMap =
390             new com.google.protobuf.Internal.EnumLiteMap<PrivateIpv6GoogleAccess>() {
391               public PrivateIpv6GoogleAccess findValueByNumber(int number) {
392                 return PrivateIpv6GoogleAccess.forNumber(number);
393               }
394             };
395 
getValueDescriptor()396     public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
397       if (this == UNRECOGNIZED) {
398         throw new java.lang.IllegalStateException(
399             "Can't get the descriptor of an unrecognized enum value.");
400       }
401       return getDescriptor().getValues().get(ordinal());
402     }
403 
getDescriptorForType()404     public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
405       return getDescriptor();
406     }
407 
getDescriptor()408     public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
409       return com.google.cloud.compute.v1.Subnetwork.getDescriptor().getEnumTypes().get(1);
410     }
411 
412     private static final PrivateIpv6GoogleAccess[] VALUES = values();
413 
valueOf( com.google.protobuf.Descriptors.EnumValueDescriptor desc)414     public static PrivateIpv6GoogleAccess valueOf(
415         com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
416       if (desc.getType() != getDescriptor()) {
417         throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
418       }
419       if (desc.getIndex() == -1) {
420         return UNRECOGNIZED;
421       }
422       return VALUES[desc.getIndex()];
423     }
424 
425     private final int value;
426 
PrivateIpv6GoogleAccess(int value)427     private PrivateIpv6GoogleAccess(int value) {
428       this.value = value;
429     }
430 
431     // @@protoc_insertion_point(enum_scope:google.cloud.compute.v1.Subnetwork.PrivateIpv6GoogleAccess)
432   }
433 
434   /**
435    *
436    *
437    * <pre>
438    * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
439    * </pre>
440    *
441    * Protobuf enum {@code google.cloud.compute.v1.Subnetwork.Purpose}
442    */
443   public enum Purpose implements com.google.protobuf.ProtocolMessageEnum {
444     /**
445      *
446      *
447      * <pre>
448      * A value indicating that the enum field is not set.
449      * </pre>
450      *
451      * <code>UNDEFINED_PURPOSE = 0;</code>
452      */
453     UNDEFINED_PURPOSE(0),
454     /**
455      *
456      *
457      * <pre>
458      * Subnet reserved for Internal HTTP(S) Load Balancing.
459      * </pre>
460      *
461      * <code>INTERNAL_HTTPS_LOAD_BALANCER = 248748889;</code>
462      */
463     INTERNAL_HTTPS_LOAD_BALANCER(248748889),
464     /**
465      *
466      *
467      * <pre>
468      * Regular user created or automatically created subnet.
469      * </pre>
470      *
471      * <code>PRIVATE = 403485027;</code>
472      */
473     PRIVATE(403485027),
474     /**
475      *
476      *
477      * <pre>
478      * Regular user created or automatically created subnet.
479      * </pre>
480      *
481      * <code>PRIVATE_RFC_1918 = 254902107;</code>
482      */
483     PRIVATE_RFC_1918(254902107),
484     /**
485      *
486      *
487      * <pre>
488      * Subnetworks created for Private Service Connect in the producer network.
489      * </pre>
490      *
491      * <code>PRIVATE_SERVICE_CONNECT = 48134724;</code>
492      */
493     PRIVATE_SERVICE_CONNECT(48134724),
494     /**
495      *
496      *
497      * <pre>
498      * Subnetwork used for Regional Internal/External HTTP(S) Load Balancing.
499      * </pre>
500      *
501      * <code>REGIONAL_MANAGED_PROXY = 153049966;</code>
502      */
503     REGIONAL_MANAGED_PROXY(153049966),
504     UNRECOGNIZED(-1),
505     ;
506 
507     /**
508      *
509      *
510      * <pre>
511      * A value indicating that the enum field is not set.
512      * </pre>
513      *
514      * <code>UNDEFINED_PURPOSE = 0;</code>
515      */
516     public static final int UNDEFINED_PURPOSE_VALUE = 0;
517     /**
518      *
519      *
520      * <pre>
521      * Subnet reserved for Internal HTTP(S) Load Balancing.
522      * </pre>
523      *
524      * <code>INTERNAL_HTTPS_LOAD_BALANCER = 248748889;</code>
525      */
526     public static final int INTERNAL_HTTPS_LOAD_BALANCER_VALUE = 248748889;
527     /**
528      *
529      *
530      * <pre>
531      * Regular user created or automatically created subnet.
532      * </pre>
533      *
534      * <code>PRIVATE = 403485027;</code>
535      */
536     public static final int PRIVATE_VALUE = 403485027;
537     /**
538      *
539      *
540      * <pre>
541      * Regular user created or automatically created subnet.
542      * </pre>
543      *
544      * <code>PRIVATE_RFC_1918 = 254902107;</code>
545      */
546     public static final int PRIVATE_RFC_1918_VALUE = 254902107;
547     /**
548      *
549      *
550      * <pre>
551      * Subnetworks created for Private Service Connect in the producer network.
552      * </pre>
553      *
554      * <code>PRIVATE_SERVICE_CONNECT = 48134724;</code>
555      */
556     public static final int PRIVATE_SERVICE_CONNECT_VALUE = 48134724;
557     /**
558      *
559      *
560      * <pre>
561      * Subnetwork used for Regional Internal/External HTTP(S) Load Balancing.
562      * </pre>
563      *
564      * <code>REGIONAL_MANAGED_PROXY = 153049966;</code>
565      */
566     public static final int REGIONAL_MANAGED_PROXY_VALUE = 153049966;
567 
getNumber()568     public final int getNumber() {
569       if (this == UNRECOGNIZED) {
570         throw new java.lang.IllegalArgumentException(
571             "Can't get the number of an unknown enum value.");
572       }
573       return value;
574     }
575 
576     /**
577      * @param value The numeric wire value of the corresponding enum entry.
578      * @return The enum associated with the given numeric wire value.
579      * @deprecated Use {@link #forNumber(int)} instead.
580      */
581     @java.lang.Deprecated
valueOf(int value)582     public static Purpose valueOf(int value) {
583       return forNumber(value);
584     }
585 
586     /**
587      * @param value The numeric wire value of the corresponding enum entry.
588      * @return The enum associated with the given numeric wire value.
589      */
forNumber(int value)590     public static Purpose forNumber(int value) {
591       switch (value) {
592         case 0:
593           return UNDEFINED_PURPOSE;
594         case 248748889:
595           return INTERNAL_HTTPS_LOAD_BALANCER;
596         case 403485027:
597           return PRIVATE;
598         case 254902107:
599           return PRIVATE_RFC_1918;
600         case 48134724:
601           return PRIVATE_SERVICE_CONNECT;
602         case 153049966:
603           return REGIONAL_MANAGED_PROXY;
604         default:
605           return null;
606       }
607     }
608 
internalGetValueMap()609     public static com.google.protobuf.Internal.EnumLiteMap<Purpose> internalGetValueMap() {
610       return internalValueMap;
611     }
612 
613     private static final com.google.protobuf.Internal.EnumLiteMap<Purpose> internalValueMap =
614         new com.google.protobuf.Internal.EnumLiteMap<Purpose>() {
615           public Purpose findValueByNumber(int number) {
616             return Purpose.forNumber(number);
617           }
618         };
619 
getValueDescriptor()620     public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
621       if (this == UNRECOGNIZED) {
622         throw new java.lang.IllegalStateException(
623             "Can't get the descriptor of an unrecognized enum value.");
624       }
625       return getDescriptor().getValues().get(ordinal());
626     }
627 
getDescriptorForType()628     public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
629       return getDescriptor();
630     }
631 
getDescriptor()632     public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
633       return com.google.cloud.compute.v1.Subnetwork.getDescriptor().getEnumTypes().get(2);
634     }
635 
636     private static final Purpose[] VALUES = values();
637 
valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)638     public static Purpose valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
639       if (desc.getType() != getDescriptor()) {
640         throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
641       }
642       if (desc.getIndex() == -1) {
643         return UNRECOGNIZED;
644       }
645       return VALUES[desc.getIndex()];
646     }
647 
648     private final int value;
649 
Purpose(int value)650     private Purpose(int value) {
651       this.value = value;
652     }
653 
654     // @@protoc_insertion_point(enum_scope:google.cloud.compute.v1.Subnetwork.Purpose)
655   }
656 
657   /**
658    *
659    *
660    * <pre>
661    * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
662    * </pre>
663    *
664    * Protobuf enum {@code google.cloud.compute.v1.Subnetwork.Role}
665    */
666   public enum Role implements com.google.protobuf.ProtocolMessageEnum {
667     /**
668      *
669      *
670      * <pre>
671      * A value indicating that the enum field is not set.
672      * </pre>
673      *
674      * <code>UNDEFINED_ROLE = 0;</code>
675      */
676     UNDEFINED_ROLE(0),
677     /**
678      *
679      *
680      * <pre>
681      * The ACTIVE subnet that is currently used.
682      * </pre>
683      *
684      * <code>ACTIVE = 314733318;</code>
685      */
686     ACTIVE(314733318),
687     /**
688      *
689      *
690      * <pre>
691      * The BACKUP subnet that could be promoted to ACTIVE.
692      * </pre>
693      *
694      * <code>BACKUP = 341010882;</code>
695      */
696     BACKUP(341010882),
697     UNRECOGNIZED(-1),
698     ;
699 
700     /**
701      *
702      *
703      * <pre>
704      * A value indicating that the enum field is not set.
705      * </pre>
706      *
707      * <code>UNDEFINED_ROLE = 0;</code>
708      */
709     public static final int UNDEFINED_ROLE_VALUE = 0;
710     /**
711      *
712      *
713      * <pre>
714      * The ACTIVE subnet that is currently used.
715      * </pre>
716      *
717      * <code>ACTIVE = 314733318;</code>
718      */
719     public static final int ACTIVE_VALUE = 314733318;
720     /**
721      *
722      *
723      * <pre>
724      * The BACKUP subnet that could be promoted to ACTIVE.
725      * </pre>
726      *
727      * <code>BACKUP = 341010882;</code>
728      */
729     public static final int BACKUP_VALUE = 341010882;
730 
getNumber()731     public final int getNumber() {
732       if (this == UNRECOGNIZED) {
733         throw new java.lang.IllegalArgumentException(
734             "Can't get the number of an unknown enum value.");
735       }
736       return value;
737     }
738 
739     /**
740      * @param value The numeric wire value of the corresponding enum entry.
741      * @return The enum associated with the given numeric wire value.
742      * @deprecated Use {@link #forNumber(int)} instead.
743      */
744     @java.lang.Deprecated
valueOf(int value)745     public static Role valueOf(int value) {
746       return forNumber(value);
747     }
748 
749     /**
750      * @param value The numeric wire value of the corresponding enum entry.
751      * @return The enum associated with the given numeric wire value.
752      */
forNumber(int value)753     public static Role forNumber(int value) {
754       switch (value) {
755         case 0:
756           return UNDEFINED_ROLE;
757         case 314733318:
758           return ACTIVE;
759         case 341010882:
760           return BACKUP;
761         default:
762           return null;
763       }
764     }
765 
internalGetValueMap()766     public static com.google.protobuf.Internal.EnumLiteMap<Role> internalGetValueMap() {
767       return internalValueMap;
768     }
769 
770     private static final com.google.protobuf.Internal.EnumLiteMap<Role> internalValueMap =
771         new com.google.protobuf.Internal.EnumLiteMap<Role>() {
772           public Role findValueByNumber(int number) {
773             return Role.forNumber(number);
774           }
775         };
776 
getValueDescriptor()777     public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
778       if (this == UNRECOGNIZED) {
779         throw new java.lang.IllegalStateException(
780             "Can't get the descriptor of an unrecognized enum value.");
781       }
782       return getDescriptor().getValues().get(ordinal());
783     }
784 
getDescriptorForType()785     public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
786       return getDescriptor();
787     }
788 
getDescriptor()789     public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
790       return com.google.cloud.compute.v1.Subnetwork.getDescriptor().getEnumTypes().get(3);
791     }
792 
793     private static final Role[] VALUES = values();
794 
valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)795     public static Role valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
796       if (desc.getType() != getDescriptor()) {
797         throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
798       }
799       if (desc.getIndex() == -1) {
800         return UNRECOGNIZED;
801       }
802       return VALUES[desc.getIndex()];
803     }
804 
805     private final int value;
806 
Role(int value)807     private Role(int value) {
808       this.value = value;
809     }
810 
811     // @@protoc_insertion_point(enum_scope:google.cloud.compute.v1.Subnetwork.Role)
812   }
813 
814   /**
815    *
816    *
817    * <pre>
818    * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
819    * </pre>
820    *
821    * Protobuf enum {@code google.cloud.compute.v1.Subnetwork.StackType}
822    */
823   public enum StackType implements com.google.protobuf.ProtocolMessageEnum {
824     /**
825      *
826      *
827      * <pre>
828      * A value indicating that the enum field is not set.
829      * </pre>
830      *
831      * <code>UNDEFINED_STACK_TYPE = 0;</code>
832      */
833     UNDEFINED_STACK_TYPE(0),
834     /**
835      *
836      *
837      * <pre>
838      * New VMs in this subnet can have both IPv4 and IPv6 addresses.
839      * </pre>
840      *
841      * <code>IPV4_IPV6 = 22197249;</code>
842      */
843     IPV4_IPV6(22197249),
844     /**
845      *
846      *
847      * <pre>
848      * New VMs in this subnet will only be assigned IPv4 addresses.
849      * </pre>
850      *
851      * <code>IPV4_ONLY = 22373798;</code>
852      */
853     IPV4_ONLY(22373798),
854     /** <code>UNSPECIFIED_STACK_TYPE = 298084569;</code> */
855     UNSPECIFIED_STACK_TYPE(298084569),
856     UNRECOGNIZED(-1),
857     ;
858 
859     /**
860      *
861      *
862      * <pre>
863      * A value indicating that the enum field is not set.
864      * </pre>
865      *
866      * <code>UNDEFINED_STACK_TYPE = 0;</code>
867      */
868     public static final int UNDEFINED_STACK_TYPE_VALUE = 0;
869     /**
870      *
871      *
872      * <pre>
873      * New VMs in this subnet can have both IPv4 and IPv6 addresses.
874      * </pre>
875      *
876      * <code>IPV4_IPV6 = 22197249;</code>
877      */
878     public static final int IPV4_IPV6_VALUE = 22197249;
879     /**
880      *
881      *
882      * <pre>
883      * New VMs in this subnet will only be assigned IPv4 addresses.
884      * </pre>
885      *
886      * <code>IPV4_ONLY = 22373798;</code>
887      */
888     public static final int IPV4_ONLY_VALUE = 22373798;
889     /** <code>UNSPECIFIED_STACK_TYPE = 298084569;</code> */
890     public static final int UNSPECIFIED_STACK_TYPE_VALUE = 298084569;
891 
getNumber()892     public final int getNumber() {
893       if (this == UNRECOGNIZED) {
894         throw new java.lang.IllegalArgumentException(
895             "Can't get the number of an unknown enum value.");
896       }
897       return value;
898     }
899 
900     /**
901      * @param value The numeric wire value of the corresponding enum entry.
902      * @return The enum associated with the given numeric wire value.
903      * @deprecated Use {@link #forNumber(int)} instead.
904      */
905     @java.lang.Deprecated
valueOf(int value)906     public static StackType valueOf(int value) {
907       return forNumber(value);
908     }
909 
910     /**
911      * @param value The numeric wire value of the corresponding enum entry.
912      * @return The enum associated with the given numeric wire value.
913      */
forNumber(int value)914     public static StackType forNumber(int value) {
915       switch (value) {
916         case 0:
917           return UNDEFINED_STACK_TYPE;
918         case 22197249:
919           return IPV4_IPV6;
920         case 22373798:
921           return IPV4_ONLY;
922         case 298084569:
923           return UNSPECIFIED_STACK_TYPE;
924         default:
925           return null;
926       }
927     }
928 
internalGetValueMap()929     public static com.google.protobuf.Internal.EnumLiteMap<StackType> internalGetValueMap() {
930       return internalValueMap;
931     }
932 
933     private static final com.google.protobuf.Internal.EnumLiteMap<StackType> internalValueMap =
934         new com.google.protobuf.Internal.EnumLiteMap<StackType>() {
935           public StackType findValueByNumber(int number) {
936             return StackType.forNumber(number);
937           }
938         };
939 
getValueDescriptor()940     public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
941       if (this == UNRECOGNIZED) {
942         throw new java.lang.IllegalStateException(
943             "Can't get the descriptor of an unrecognized enum value.");
944       }
945       return getDescriptor().getValues().get(ordinal());
946     }
947 
getDescriptorForType()948     public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
949       return getDescriptor();
950     }
951 
getDescriptor()952     public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
953       return com.google.cloud.compute.v1.Subnetwork.getDescriptor().getEnumTypes().get(4);
954     }
955 
956     private static final StackType[] VALUES = values();
957 
valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)958     public static StackType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
959       if (desc.getType() != getDescriptor()) {
960         throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
961       }
962       if (desc.getIndex() == -1) {
963         return UNRECOGNIZED;
964       }
965       return VALUES[desc.getIndex()];
966     }
967 
968     private final int value;
969 
StackType(int value)970     private StackType(int value) {
971       this.value = value;
972     }
973 
974     // @@protoc_insertion_point(enum_scope:google.cloud.compute.v1.Subnetwork.StackType)
975   }
976 
977   /**
978    *
979    *
980    * <pre>
981    * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
982    * </pre>
983    *
984    * Protobuf enum {@code google.cloud.compute.v1.Subnetwork.State}
985    */
986   public enum State implements com.google.protobuf.ProtocolMessageEnum {
987     /**
988      *
989      *
990      * <pre>
991      * A value indicating that the enum field is not set.
992      * </pre>
993      *
994      * <code>UNDEFINED_STATE = 0;</code>
995      */
996     UNDEFINED_STATE(0),
997     /**
998      *
999      *
1000      * <pre>
1001      * Subnetwork is being drained.
1002      * </pre>
1003      *
1004      * <code>DRAINING = 480455402;</code>
1005      */
1006     DRAINING(480455402),
1007     /**
1008      *
1009      *
1010      * <pre>
1011      * Subnetwork is ready for use.
1012      * </pre>
1013      *
1014      * <code>READY = 77848963;</code>
1015      */
1016     READY(77848963),
1017     UNRECOGNIZED(-1),
1018     ;
1019 
1020     /**
1021      *
1022      *
1023      * <pre>
1024      * A value indicating that the enum field is not set.
1025      * </pre>
1026      *
1027      * <code>UNDEFINED_STATE = 0;</code>
1028      */
1029     public static final int UNDEFINED_STATE_VALUE = 0;
1030     /**
1031      *
1032      *
1033      * <pre>
1034      * Subnetwork is being drained.
1035      * </pre>
1036      *
1037      * <code>DRAINING = 480455402;</code>
1038      */
1039     public static final int DRAINING_VALUE = 480455402;
1040     /**
1041      *
1042      *
1043      * <pre>
1044      * Subnetwork is ready for use.
1045      * </pre>
1046      *
1047      * <code>READY = 77848963;</code>
1048      */
1049     public static final int READY_VALUE = 77848963;
1050 
getNumber()1051     public final int getNumber() {
1052       if (this == UNRECOGNIZED) {
1053         throw new java.lang.IllegalArgumentException(
1054             "Can't get the number of an unknown enum value.");
1055       }
1056       return value;
1057     }
1058 
1059     /**
1060      * @param value The numeric wire value of the corresponding enum entry.
1061      * @return The enum associated with the given numeric wire value.
1062      * @deprecated Use {@link #forNumber(int)} instead.
1063      */
1064     @java.lang.Deprecated
valueOf(int value)1065     public static State valueOf(int value) {
1066       return forNumber(value);
1067     }
1068 
1069     /**
1070      * @param value The numeric wire value of the corresponding enum entry.
1071      * @return The enum associated with the given numeric wire value.
1072      */
forNumber(int value)1073     public static State forNumber(int value) {
1074       switch (value) {
1075         case 0:
1076           return UNDEFINED_STATE;
1077         case 480455402:
1078           return DRAINING;
1079         case 77848963:
1080           return READY;
1081         default:
1082           return null;
1083       }
1084     }
1085 
internalGetValueMap()1086     public static com.google.protobuf.Internal.EnumLiteMap<State> internalGetValueMap() {
1087       return internalValueMap;
1088     }
1089 
1090     private static final com.google.protobuf.Internal.EnumLiteMap<State> internalValueMap =
1091         new com.google.protobuf.Internal.EnumLiteMap<State>() {
1092           public State findValueByNumber(int number) {
1093             return State.forNumber(number);
1094           }
1095         };
1096 
getValueDescriptor()1097     public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
1098       if (this == UNRECOGNIZED) {
1099         throw new java.lang.IllegalStateException(
1100             "Can't get the descriptor of an unrecognized enum value.");
1101       }
1102       return getDescriptor().getValues().get(ordinal());
1103     }
1104 
getDescriptorForType()1105     public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
1106       return getDescriptor();
1107     }
1108 
getDescriptor()1109     public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
1110       return com.google.cloud.compute.v1.Subnetwork.getDescriptor().getEnumTypes().get(5);
1111     }
1112 
1113     private static final State[] VALUES = values();
1114 
valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)1115     public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1116       if (desc.getType() != getDescriptor()) {
1117         throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
1118       }
1119       if (desc.getIndex() == -1) {
1120         return UNRECOGNIZED;
1121       }
1122       return VALUES[desc.getIndex()];
1123     }
1124 
1125     private final int value;
1126 
State(int value)1127     private State(int value) {
1128       this.value = value;
1129     }
1130 
1131     // @@protoc_insertion_point(enum_scope:google.cloud.compute.v1.Subnetwork.State)
1132   }
1133 
1134   private int bitField0_;
1135   public static final int CREATION_TIMESTAMP_FIELD_NUMBER = 30525366;
1136 
1137   @SuppressWarnings("serial")
1138   private volatile java.lang.Object creationTimestamp_ = "";
1139   /**
1140    *
1141    *
1142    * <pre>
1143    * [Output Only] Creation timestamp in RFC3339 text format.
1144    * </pre>
1145    *
1146    * <code>optional string creation_timestamp = 30525366;</code>
1147    *
1148    * @return Whether the creationTimestamp field is set.
1149    */
1150   @java.lang.Override
hasCreationTimestamp()1151   public boolean hasCreationTimestamp() {
1152     return ((bitField0_ & 0x00000001) != 0);
1153   }
1154   /**
1155    *
1156    *
1157    * <pre>
1158    * [Output Only] Creation timestamp in RFC3339 text format.
1159    * </pre>
1160    *
1161    * <code>optional string creation_timestamp = 30525366;</code>
1162    *
1163    * @return The creationTimestamp.
1164    */
1165   @java.lang.Override
getCreationTimestamp()1166   public java.lang.String getCreationTimestamp() {
1167     java.lang.Object ref = creationTimestamp_;
1168     if (ref instanceof java.lang.String) {
1169       return (java.lang.String) ref;
1170     } else {
1171       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1172       java.lang.String s = bs.toStringUtf8();
1173       creationTimestamp_ = s;
1174       return s;
1175     }
1176   }
1177   /**
1178    *
1179    *
1180    * <pre>
1181    * [Output Only] Creation timestamp in RFC3339 text format.
1182    * </pre>
1183    *
1184    * <code>optional string creation_timestamp = 30525366;</code>
1185    *
1186    * @return The bytes for creationTimestamp.
1187    */
1188   @java.lang.Override
getCreationTimestampBytes()1189   public com.google.protobuf.ByteString getCreationTimestampBytes() {
1190     java.lang.Object ref = creationTimestamp_;
1191     if (ref instanceof java.lang.String) {
1192       com.google.protobuf.ByteString b =
1193           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1194       creationTimestamp_ = b;
1195       return b;
1196     } else {
1197       return (com.google.protobuf.ByteString) ref;
1198     }
1199   }
1200 
1201   public static final int DESCRIPTION_FIELD_NUMBER = 422937596;
1202 
1203   @SuppressWarnings("serial")
1204   private volatile java.lang.Object description_ = "";
1205   /**
1206    *
1207    *
1208    * <pre>
1209    * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
1210    * </pre>
1211    *
1212    * <code>optional string description = 422937596;</code>
1213    *
1214    * @return Whether the description field is set.
1215    */
1216   @java.lang.Override
hasDescription()1217   public boolean hasDescription() {
1218     return ((bitField0_ & 0x00000002) != 0);
1219   }
1220   /**
1221    *
1222    *
1223    * <pre>
1224    * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
1225    * </pre>
1226    *
1227    * <code>optional string description = 422937596;</code>
1228    *
1229    * @return The description.
1230    */
1231   @java.lang.Override
getDescription()1232   public java.lang.String getDescription() {
1233     java.lang.Object ref = description_;
1234     if (ref instanceof java.lang.String) {
1235       return (java.lang.String) ref;
1236     } else {
1237       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1238       java.lang.String s = bs.toStringUtf8();
1239       description_ = s;
1240       return s;
1241     }
1242   }
1243   /**
1244    *
1245    *
1246    * <pre>
1247    * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
1248    * </pre>
1249    *
1250    * <code>optional string description = 422937596;</code>
1251    *
1252    * @return The bytes for description.
1253    */
1254   @java.lang.Override
getDescriptionBytes()1255   public com.google.protobuf.ByteString getDescriptionBytes() {
1256     java.lang.Object ref = description_;
1257     if (ref instanceof java.lang.String) {
1258       com.google.protobuf.ByteString b =
1259           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1260       description_ = b;
1261       return b;
1262     } else {
1263       return (com.google.protobuf.ByteString) ref;
1264     }
1265   }
1266 
1267   public static final int ENABLE_FLOW_LOGS_FIELD_NUMBER = 151544420;
1268   private boolean enableFlowLogs_ = false;
1269   /**
1270    *
1271    *
1272    * <pre>
1273    * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
1274    * </pre>
1275    *
1276    * <code>optional bool enable_flow_logs = 151544420;</code>
1277    *
1278    * @return Whether the enableFlowLogs field is set.
1279    */
1280   @java.lang.Override
hasEnableFlowLogs()1281   public boolean hasEnableFlowLogs() {
1282     return ((bitField0_ & 0x00000004) != 0);
1283   }
1284   /**
1285    *
1286    *
1287    * <pre>
1288    * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
1289    * </pre>
1290    *
1291    * <code>optional bool enable_flow_logs = 151544420;</code>
1292    *
1293    * @return The enableFlowLogs.
1294    */
1295   @java.lang.Override
getEnableFlowLogs()1296   public boolean getEnableFlowLogs() {
1297     return enableFlowLogs_;
1298   }
1299 
1300   public static final int EXTERNAL_IPV6_PREFIX_FIELD_NUMBER = 139299190;
1301 
1302   @SuppressWarnings("serial")
1303   private volatile java.lang.Object externalIpv6Prefix_ = "";
1304   /**
1305    *
1306    *
1307    * <pre>
1308    * The external IPv6 address range that is owned by this subnetwork.
1309    * </pre>
1310    *
1311    * <code>optional string external_ipv6_prefix = 139299190;</code>
1312    *
1313    * @return Whether the externalIpv6Prefix field is set.
1314    */
1315   @java.lang.Override
hasExternalIpv6Prefix()1316   public boolean hasExternalIpv6Prefix() {
1317     return ((bitField0_ & 0x00000008) != 0);
1318   }
1319   /**
1320    *
1321    *
1322    * <pre>
1323    * The external IPv6 address range that is owned by this subnetwork.
1324    * </pre>
1325    *
1326    * <code>optional string external_ipv6_prefix = 139299190;</code>
1327    *
1328    * @return The externalIpv6Prefix.
1329    */
1330   @java.lang.Override
getExternalIpv6Prefix()1331   public java.lang.String getExternalIpv6Prefix() {
1332     java.lang.Object ref = externalIpv6Prefix_;
1333     if (ref instanceof java.lang.String) {
1334       return (java.lang.String) ref;
1335     } else {
1336       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1337       java.lang.String s = bs.toStringUtf8();
1338       externalIpv6Prefix_ = s;
1339       return s;
1340     }
1341   }
1342   /**
1343    *
1344    *
1345    * <pre>
1346    * The external IPv6 address range that is owned by this subnetwork.
1347    * </pre>
1348    *
1349    * <code>optional string external_ipv6_prefix = 139299190;</code>
1350    *
1351    * @return The bytes for externalIpv6Prefix.
1352    */
1353   @java.lang.Override
getExternalIpv6PrefixBytes()1354   public com.google.protobuf.ByteString getExternalIpv6PrefixBytes() {
1355     java.lang.Object ref = externalIpv6Prefix_;
1356     if (ref instanceof java.lang.String) {
1357       com.google.protobuf.ByteString b =
1358           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1359       externalIpv6Prefix_ = b;
1360       return b;
1361     } else {
1362       return (com.google.protobuf.ByteString) ref;
1363     }
1364   }
1365 
1366   public static final int FINGERPRINT_FIELD_NUMBER = 234678500;
1367 
1368   @SuppressWarnings("serial")
1369   private volatile java.lang.Object fingerprint_ = "";
1370   /**
1371    *
1372    *
1373    * <pre>
1374    * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
1375    * </pre>
1376    *
1377    * <code>optional string fingerprint = 234678500;</code>
1378    *
1379    * @return Whether the fingerprint field is set.
1380    */
1381   @java.lang.Override
hasFingerprint()1382   public boolean hasFingerprint() {
1383     return ((bitField0_ & 0x00000010) != 0);
1384   }
1385   /**
1386    *
1387    *
1388    * <pre>
1389    * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
1390    * </pre>
1391    *
1392    * <code>optional string fingerprint = 234678500;</code>
1393    *
1394    * @return The fingerprint.
1395    */
1396   @java.lang.Override
getFingerprint()1397   public java.lang.String getFingerprint() {
1398     java.lang.Object ref = fingerprint_;
1399     if (ref instanceof java.lang.String) {
1400       return (java.lang.String) ref;
1401     } else {
1402       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1403       java.lang.String s = bs.toStringUtf8();
1404       fingerprint_ = s;
1405       return s;
1406     }
1407   }
1408   /**
1409    *
1410    *
1411    * <pre>
1412    * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
1413    * </pre>
1414    *
1415    * <code>optional string fingerprint = 234678500;</code>
1416    *
1417    * @return The bytes for fingerprint.
1418    */
1419   @java.lang.Override
getFingerprintBytes()1420   public com.google.protobuf.ByteString getFingerprintBytes() {
1421     java.lang.Object ref = fingerprint_;
1422     if (ref instanceof java.lang.String) {
1423       com.google.protobuf.ByteString b =
1424           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1425       fingerprint_ = b;
1426       return b;
1427     } else {
1428       return (com.google.protobuf.ByteString) ref;
1429     }
1430   }
1431 
1432   public static final int GATEWAY_ADDRESS_FIELD_NUMBER = 459867385;
1433 
1434   @SuppressWarnings("serial")
1435   private volatile java.lang.Object gatewayAddress_ = "";
1436   /**
1437    *
1438    *
1439    * <pre>
1440    * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
1441    * </pre>
1442    *
1443    * <code>optional string gateway_address = 459867385;</code>
1444    *
1445    * @return Whether the gatewayAddress field is set.
1446    */
1447   @java.lang.Override
hasGatewayAddress()1448   public boolean hasGatewayAddress() {
1449     return ((bitField0_ & 0x00000020) != 0);
1450   }
1451   /**
1452    *
1453    *
1454    * <pre>
1455    * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
1456    * </pre>
1457    *
1458    * <code>optional string gateway_address = 459867385;</code>
1459    *
1460    * @return The gatewayAddress.
1461    */
1462   @java.lang.Override
getGatewayAddress()1463   public java.lang.String getGatewayAddress() {
1464     java.lang.Object ref = gatewayAddress_;
1465     if (ref instanceof java.lang.String) {
1466       return (java.lang.String) ref;
1467     } else {
1468       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1469       java.lang.String s = bs.toStringUtf8();
1470       gatewayAddress_ = s;
1471       return s;
1472     }
1473   }
1474   /**
1475    *
1476    *
1477    * <pre>
1478    * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
1479    * </pre>
1480    *
1481    * <code>optional string gateway_address = 459867385;</code>
1482    *
1483    * @return The bytes for gatewayAddress.
1484    */
1485   @java.lang.Override
getGatewayAddressBytes()1486   public com.google.protobuf.ByteString getGatewayAddressBytes() {
1487     java.lang.Object ref = gatewayAddress_;
1488     if (ref instanceof java.lang.String) {
1489       com.google.protobuf.ByteString b =
1490           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1491       gatewayAddress_ = b;
1492       return b;
1493     } else {
1494       return (com.google.protobuf.ByteString) ref;
1495     }
1496   }
1497 
1498   public static final int ID_FIELD_NUMBER = 3355;
1499   private long id_ = 0L;
1500   /**
1501    *
1502    *
1503    * <pre>
1504    * [Output Only] The unique identifier for the resource. This identifier is defined by the server.
1505    * </pre>
1506    *
1507    * <code>optional uint64 id = 3355;</code>
1508    *
1509    * @return Whether the id field is set.
1510    */
1511   @java.lang.Override
hasId()1512   public boolean hasId() {
1513     return ((bitField0_ & 0x00000040) != 0);
1514   }
1515   /**
1516    *
1517    *
1518    * <pre>
1519    * [Output Only] The unique identifier for the resource. This identifier is defined by the server.
1520    * </pre>
1521    *
1522    * <code>optional uint64 id = 3355;</code>
1523    *
1524    * @return The id.
1525    */
1526   @java.lang.Override
getId()1527   public long getId() {
1528     return id_;
1529   }
1530 
1531   public static final int INTERNAL_IPV6_PREFIX_FIELD_NUMBER = 506270056;
1532 
1533   @SuppressWarnings("serial")
1534   private volatile java.lang.Object internalIpv6Prefix_ = "";
1535   /**
1536    *
1537    *
1538    * <pre>
1539    * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
1540    * </pre>
1541    *
1542    * <code>optional string internal_ipv6_prefix = 506270056;</code>
1543    *
1544    * @return Whether the internalIpv6Prefix field is set.
1545    */
1546   @java.lang.Override
hasInternalIpv6Prefix()1547   public boolean hasInternalIpv6Prefix() {
1548     return ((bitField0_ & 0x00000080) != 0);
1549   }
1550   /**
1551    *
1552    *
1553    * <pre>
1554    * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
1555    * </pre>
1556    *
1557    * <code>optional string internal_ipv6_prefix = 506270056;</code>
1558    *
1559    * @return The internalIpv6Prefix.
1560    */
1561   @java.lang.Override
getInternalIpv6Prefix()1562   public java.lang.String getInternalIpv6Prefix() {
1563     java.lang.Object ref = internalIpv6Prefix_;
1564     if (ref instanceof java.lang.String) {
1565       return (java.lang.String) ref;
1566     } else {
1567       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1568       java.lang.String s = bs.toStringUtf8();
1569       internalIpv6Prefix_ = s;
1570       return s;
1571     }
1572   }
1573   /**
1574    *
1575    *
1576    * <pre>
1577    * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
1578    * </pre>
1579    *
1580    * <code>optional string internal_ipv6_prefix = 506270056;</code>
1581    *
1582    * @return The bytes for internalIpv6Prefix.
1583    */
1584   @java.lang.Override
getInternalIpv6PrefixBytes()1585   public com.google.protobuf.ByteString getInternalIpv6PrefixBytes() {
1586     java.lang.Object ref = internalIpv6Prefix_;
1587     if (ref instanceof java.lang.String) {
1588       com.google.protobuf.ByteString b =
1589           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1590       internalIpv6Prefix_ = b;
1591       return b;
1592     } else {
1593       return (com.google.protobuf.ByteString) ref;
1594     }
1595   }
1596 
1597   public static final int IP_CIDR_RANGE_FIELD_NUMBER = 98117322;
1598 
1599   @SuppressWarnings("serial")
1600   private volatile java.lang.Object ipCidrRange_ = "";
1601   /**
1602    *
1603    *
1604    * <pre>
1605    * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
1606    * </pre>
1607    *
1608    * <code>optional string ip_cidr_range = 98117322;</code>
1609    *
1610    * @return Whether the ipCidrRange field is set.
1611    */
1612   @java.lang.Override
hasIpCidrRange()1613   public boolean hasIpCidrRange() {
1614     return ((bitField0_ & 0x00000100) != 0);
1615   }
1616   /**
1617    *
1618    *
1619    * <pre>
1620    * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
1621    * </pre>
1622    *
1623    * <code>optional string ip_cidr_range = 98117322;</code>
1624    *
1625    * @return The ipCidrRange.
1626    */
1627   @java.lang.Override
getIpCidrRange()1628   public java.lang.String getIpCidrRange() {
1629     java.lang.Object ref = ipCidrRange_;
1630     if (ref instanceof java.lang.String) {
1631       return (java.lang.String) ref;
1632     } else {
1633       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1634       java.lang.String s = bs.toStringUtf8();
1635       ipCidrRange_ = s;
1636       return s;
1637     }
1638   }
1639   /**
1640    *
1641    *
1642    * <pre>
1643    * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
1644    * </pre>
1645    *
1646    * <code>optional string ip_cidr_range = 98117322;</code>
1647    *
1648    * @return The bytes for ipCidrRange.
1649    */
1650   @java.lang.Override
getIpCidrRangeBytes()1651   public com.google.protobuf.ByteString getIpCidrRangeBytes() {
1652     java.lang.Object ref = ipCidrRange_;
1653     if (ref instanceof java.lang.String) {
1654       com.google.protobuf.ByteString b =
1655           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1656       ipCidrRange_ = b;
1657       return b;
1658     } else {
1659       return (com.google.protobuf.ByteString) ref;
1660     }
1661   }
1662 
1663   public static final int IPV6_ACCESS_TYPE_FIELD_NUMBER = 504658653;
1664 
1665   @SuppressWarnings("serial")
1666   private volatile java.lang.Object ipv6AccessType_ = "";
1667   /**
1668    *
1669    *
1670    * <pre>
1671    * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
1672    * Check the Ipv6AccessType enum for the list of possible values.
1673    * </pre>
1674    *
1675    * <code>optional string ipv6_access_type = 504658653;</code>
1676    *
1677    * @return Whether the ipv6AccessType field is set.
1678    */
1679   @java.lang.Override
hasIpv6AccessType()1680   public boolean hasIpv6AccessType() {
1681     return ((bitField0_ & 0x00000200) != 0);
1682   }
1683   /**
1684    *
1685    *
1686    * <pre>
1687    * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
1688    * Check the Ipv6AccessType enum for the list of possible values.
1689    * </pre>
1690    *
1691    * <code>optional string ipv6_access_type = 504658653;</code>
1692    *
1693    * @return The ipv6AccessType.
1694    */
1695   @java.lang.Override
getIpv6AccessType()1696   public java.lang.String getIpv6AccessType() {
1697     java.lang.Object ref = ipv6AccessType_;
1698     if (ref instanceof java.lang.String) {
1699       return (java.lang.String) ref;
1700     } else {
1701       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1702       java.lang.String s = bs.toStringUtf8();
1703       ipv6AccessType_ = s;
1704       return s;
1705     }
1706   }
1707   /**
1708    *
1709    *
1710    * <pre>
1711    * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
1712    * Check the Ipv6AccessType enum for the list of possible values.
1713    * </pre>
1714    *
1715    * <code>optional string ipv6_access_type = 504658653;</code>
1716    *
1717    * @return The bytes for ipv6AccessType.
1718    */
1719   @java.lang.Override
getIpv6AccessTypeBytes()1720   public com.google.protobuf.ByteString getIpv6AccessTypeBytes() {
1721     java.lang.Object ref = ipv6AccessType_;
1722     if (ref instanceof java.lang.String) {
1723       com.google.protobuf.ByteString b =
1724           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1725       ipv6AccessType_ = b;
1726       return b;
1727     } else {
1728       return (com.google.protobuf.ByteString) ref;
1729     }
1730   }
1731 
1732   public static final int IPV6_CIDR_RANGE_FIELD_NUMBER = 273141258;
1733 
1734   @SuppressWarnings("serial")
1735   private volatile java.lang.Object ipv6CidrRange_ = "";
1736   /**
1737    *
1738    *
1739    * <pre>
1740    * [Output Only] This field is for internal use.
1741    * </pre>
1742    *
1743    * <code>optional string ipv6_cidr_range = 273141258;</code>
1744    *
1745    * @return Whether the ipv6CidrRange field is set.
1746    */
1747   @java.lang.Override
hasIpv6CidrRange()1748   public boolean hasIpv6CidrRange() {
1749     return ((bitField0_ & 0x00000400) != 0);
1750   }
1751   /**
1752    *
1753    *
1754    * <pre>
1755    * [Output Only] This field is for internal use.
1756    * </pre>
1757    *
1758    * <code>optional string ipv6_cidr_range = 273141258;</code>
1759    *
1760    * @return The ipv6CidrRange.
1761    */
1762   @java.lang.Override
getIpv6CidrRange()1763   public java.lang.String getIpv6CidrRange() {
1764     java.lang.Object ref = ipv6CidrRange_;
1765     if (ref instanceof java.lang.String) {
1766       return (java.lang.String) ref;
1767     } else {
1768       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1769       java.lang.String s = bs.toStringUtf8();
1770       ipv6CidrRange_ = s;
1771       return s;
1772     }
1773   }
1774   /**
1775    *
1776    *
1777    * <pre>
1778    * [Output Only] This field is for internal use.
1779    * </pre>
1780    *
1781    * <code>optional string ipv6_cidr_range = 273141258;</code>
1782    *
1783    * @return The bytes for ipv6CidrRange.
1784    */
1785   @java.lang.Override
getIpv6CidrRangeBytes()1786   public com.google.protobuf.ByteString getIpv6CidrRangeBytes() {
1787     java.lang.Object ref = ipv6CidrRange_;
1788     if (ref instanceof java.lang.String) {
1789       com.google.protobuf.ByteString b =
1790           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1791       ipv6CidrRange_ = b;
1792       return b;
1793     } else {
1794       return (com.google.protobuf.ByteString) ref;
1795     }
1796   }
1797 
1798   public static final int KIND_FIELD_NUMBER = 3292052;
1799 
1800   @SuppressWarnings("serial")
1801   private volatile java.lang.Object kind_ = "";
1802   /**
1803    *
1804    *
1805    * <pre>
1806    * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
1807    * </pre>
1808    *
1809    * <code>optional string kind = 3292052;</code>
1810    *
1811    * @return Whether the kind field is set.
1812    */
1813   @java.lang.Override
hasKind()1814   public boolean hasKind() {
1815     return ((bitField0_ & 0x00000800) != 0);
1816   }
1817   /**
1818    *
1819    *
1820    * <pre>
1821    * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
1822    * </pre>
1823    *
1824    * <code>optional string kind = 3292052;</code>
1825    *
1826    * @return The kind.
1827    */
1828   @java.lang.Override
getKind()1829   public java.lang.String getKind() {
1830     java.lang.Object ref = kind_;
1831     if (ref instanceof java.lang.String) {
1832       return (java.lang.String) ref;
1833     } else {
1834       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1835       java.lang.String s = bs.toStringUtf8();
1836       kind_ = s;
1837       return s;
1838     }
1839   }
1840   /**
1841    *
1842    *
1843    * <pre>
1844    * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
1845    * </pre>
1846    *
1847    * <code>optional string kind = 3292052;</code>
1848    *
1849    * @return The bytes for kind.
1850    */
1851   @java.lang.Override
getKindBytes()1852   public com.google.protobuf.ByteString getKindBytes() {
1853     java.lang.Object ref = kind_;
1854     if (ref instanceof java.lang.String) {
1855       com.google.protobuf.ByteString b =
1856           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1857       kind_ = b;
1858       return b;
1859     } else {
1860       return (com.google.protobuf.ByteString) ref;
1861     }
1862   }
1863 
1864   public static final int LOG_CONFIG_FIELD_NUMBER = 351299741;
1865   private com.google.cloud.compute.v1.SubnetworkLogConfig logConfig_;
1866   /**
1867    *
1868    *
1869    * <pre>
1870    * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
1871    * </pre>
1872    *
1873    * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
1874    *
1875    * @return Whether the logConfig field is set.
1876    */
1877   @java.lang.Override
hasLogConfig()1878   public boolean hasLogConfig() {
1879     return ((bitField0_ & 0x00001000) != 0);
1880   }
1881   /**
1882    *
1883    *
1884    * <pre>
1885    * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
1886    * </pre>
1887    *
1888    * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
1889    *
1890    * @return The logConfig.
1891    */
1892   @java.lang.Override
getLogConfig()1893   public com.google.cloud.compute.v1.SubnetworkLogConfig getLogConfig() {
1894     return logConfig_ == null
1895         ? com.google.cloud.compute.v1.SubnetworkLogConfig.getDefaultInstance()
1896         : logConfig_;
1897   }
1898   /**
1899    *
1900    *
1901    * <pre>
1902    * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
1903    * </pre>
1904    *
1905    * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
1906    */
1907   @java.lang.Override
getLogConfigOrBuilder()1908   public com.google.cloud.compute.v1.SubnetworkLogConfigOrBuilder getLogConfigOrBuilder() {
1909     return logConfig_ == null
1910         ? com.google.cloud.compute.v1.SubnetworkLogConfig.getDefaultInstance()
1911         : logConfig_;
1912   }
1913 
1914   public static final int NAME_FIELD_NUMBER = 3373707;
1915 
1916   @SuppressWarnings("serial")
1917   private volatile java.lang.Object name_ = "";
1918   /**
1919    *
1920    *
1921    * <pre>
1922    * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
1923    * </pre>
1924    *
1925    * <code>optional string name = 3373707;</code>
1926    *
1927    * @return Whether the name field is set.
1928    */
1929   @java.lang.Override
hasName()1930   public boolean hasName() {
1931     return ((bitField0_ & 0x00002000) != 0);
1932   }
1933   /**
1934    *
1935    *
1936    * <pre>
1937    * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
1938    * </pre>
1939    *
1940    * <code>optional string name = 3373707;</code>
1941    *
1942    * @return The name.
1943    */
1944   @java.lang.Override
getName()1945   public java.lang.String getName() {
1946     java.lang.Object ref = name_;
1947     if (ref instanceof java.lang.String) {
1948       return (java.lang.String) ref;
1949     } else {
1950       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
1951       java.lang.String s = bs.toStringUtf8();
1952       name_ = s;
1953       return s;
1954     }
1955   }
1956   /**
1957    *
1958    *
1959    * <pre>
1960    * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
1961    * </pre>
1962    *
1963    * <code>optional string name = 3373707;</code>
1964    *
1965    * @return The bytes for name.
1966    */
1967   @java.lang.Override
getNameBytes()1968   public com.google.protobuf.ByteString getNameBytes() {
1969     java.lang.Object ref = name_;
1970     if (ref instanceof java.lang.String) {
1971       com.google.protobuf.ByteString b =
1972           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
1973       name_ = b;
1974       return b;
1975     } else {
1976       return (com.google.protobuf.ByteString) ref;
1977     }
1978   }
1979 
1980   public static final int NETWORK_FIELD_NUMBER = 232872494;
1981 
1982   @SuppressWarnings("serial")
1983   private volatile java.lang.Object network_ = "";
1984   /**
1985    *
1986    *
1987    * <pre>
1988    * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
1989    * </pre>
1990    *
1991    * <code>optional string network = 232872494;</code>
1992    *
1993    * @return Whether the network field is set.
1994    */
1995   @java.lang.Override
hasNetwork()1996   public boolean hasNetwork() {
1997     return ((bitField0_ & 0x00004000) != 0);
1998   }
1999   /**
2000    *
2001    *
2002    * <pre>
2003    * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
2004    * </pre>
2005    *
2006    * <code>optional string network = 232872494;</code>
2007    *
2008    * @return The network.
2009    */
2010   @java.lang.Override
getNetwork()2011   public java.lang.String getNetwork() {
2012     java.lang.Object ref = network_;
2013     if (ref instanceof java.lang.String) {
2014       return (java.lang.String) ref;
2015     } else {
2016       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2017       java.lang.String s = bs.toStringUtf8();
2018       network_ = s;
2019       return s;
2020     }
2021   }
2022   /**
2023    *
2024    *
2025    * <pre>
2026    * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
2027    * </pre>
2028    *
2029    * <code>optional string network = 232872494;</code>
2030    *
2031    * @return The bytes for network.
2032    */
2033   @java.lang.Override
getNetworkBytes()2034   public com.google.protobuf.ByteString getNetworkBytes() {
2035     java.lang.Object ref = network_;
2036     if (ref instanceof java.lang.String) {
2037       com.google.protobuf.ByteString b =
2038           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2039       network_ = b;
2040       return b;
2041     } else {
2042       return (com.google.protobuf.ByteString) ref;
2043     }
2044   }
2045 
2046   public static final int PRIVATE_IP_GOOGLE_ACCESS_FIELD_NUMBER = 421491790;
2047   private boolean privateIpGoogleAccess_ = false;
2048   /**
2049    *
2050    *
2051    * <pre>
2052    * Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
2053    * </pre>
2054    *
2055    * <code>optional bool private_ip_google_access = 421491790;</code>
2056    *
2057    * @return Whether the privateIpGoogleAccess field is set.
2058    */
2059   @java.lang.Override
hasPrivateIpGoogleAccess()2060   public boolean hasPrivateIpGoogleAccess() {
2061     return ((bitField0_ & 0x00008000) != 0);
2062   }
2063   /**
2064    *
2065    *
2066    * <pre>
2067    * Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
2068    * </pre>
2069    *
2070    * <code>optional bool private_ip_google_access = 421491790;</code>
2071    *
2072    * @return The privateIpGoogleAccess.
2073    */
2074   @java.lang.Override
getPrivateIpGoogleAccess()2075   public boolean getPrivateIpGoogleAccess() {
2076     return privateIpGoogleAccess_;
2077   }
2078 
2079   public static final int PRIVATE_IPV6_GOOGLE_ACCESS_FIELD_NUMBER = 48277006;
2080 
2081   @SuppressWarnings("serial")
2082   private volatile java.lang.Object privateIpv6GoogleAccess_ = "";
2083   /**
2084    *
2085    *
2086    * <pre>
2087    * This field is for internal use. This field can be both set at resource creation time and updated using patch.
2088    * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
2089    * </pre>
2090    *
2091    * <code>optional string private_ipv6_google_access = 48277006;</code>
2092    *
2093    * @return Whether the privateIpv6GoogleAccess field is set.
2094    */
2095   @java.lang.Override
hasPrivateIpv6GoogleAccess()2096   public boolean hasPrivateIpv6GoogleAccess() {
2097     return ((bitField0_ & 0x00010000) != 0);
2098   }
2099   /**
2100    *
2101    *
2102    * <pre>
2103    * This field is for internal use. This field can be both set at resource creation time and updated using patch.
2104    * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
2105    * </pre>
2106    *
2107    * <code>optional string private_ipv6_google_access = 48277006;</code>
2108    *
2109    * @return The privateIpv6GoogleAccess.
2110    */
2111   @java.lang.Override
getPrivateIpv6GoogleAccess()2112   public java.lang.String getPrivateIpv6GoogleAccess() {
2113     java.lang.Object ref = privateIpv6GoogleAccess_;
2114     if (ref instanceof java.lang.String) {
2115       return (java.lang.String) ref;
2116     } else {
2117       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2118       java.lang.String s = bs.toStringUtf8();
2119       privateIpv6GoogleAccess_ = s;
2120       return s;
2121     }
2122   }
2123   /**
2124    *
2125    *
2126    * <pre>
2127    * This field is for internal use. This field can be both set at resource creation time and updated using patch.
2128    * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
2129    * </pre>
2130    *
2131    * <code>optional string private_ipv6_google_access = 48277006;</code>
2132    *
2133    * @return The bytes for privateIpv6GoogleAccess.
2134    */
2135   @java.lang.Override
getPrivateIpv6GoogleAccessBytes()2136   public com.google.protobuf.ByteString getPrivateIpv6GoogleAccessBytes() {
2137     java.lang.Object ref = privateIpv6GoogleAccess_;
2138     if (ref instanceof java.lang.String) {
2139       com.google.protobuf.ByteString b =
2140           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2141       privateIpv6GoogleAccess_ = b;
2142       return b;
2143     } else {
2144       return (com.google.protobuf.ByteString) ref;
2145     }
2146   }
2147 
2148   public static final int PURPOSE_FIELD_NUMBER = 316407070;
2149 
2150   @SuppressWarnings("serial")
2151   private volatile java.lang.Object purpose_ = "";
2152   /**
2153    *
2154    *
2155    * <pre>
2156    * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
2157    * Check the Purpose enum for the list of possible values.
2158    * </pre>
2159    *
2160    * <code>optional string purpose = 316407070;</code>
2161    *
2162    * @return Whether the purpose field is set.
2163    */
2164   @java.lang.Override
hasPurpose()2165   public boolean hasPurpose() {
2166     return ((bitField0_ & 0x00020000) != 0);
2167   }
2168   /**
2169    *
2170    *
2171    * <pre>
2172    * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
2173    * Check the Purpose enum for the list of possible values.
2174    * </pre>
2175    *
2176    * <code>optional string purpose = 316407070;</code>
2177    *
2178    * @return The purpose.
2179    */
2180   @java.lang.Override
getPurpose()2181   public java.lang.String getPurpose() {
2182     java.lang.Object ref = purpose_;
2183     if (ref instanceof java.lang.String) {
2184       return (java.lang.String) ref;
2185     } else {
2186       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2187       java.lang.String s = bs.toStringUtf8();
2188       purpose_ = s;
2189       return s;
2190     }
2191   }
2192   /**
2193    *
2194    *
2195    * <pre>
2196    * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
2197    * Check the Purpose enum for the list of possible values.
2198    * </pre>
2199    *
2200    * <code>optional string purpose = 316407070;</code>
2201    *
2202    * @return The bytes for purpose.
2203    */
2204   @java.lang.Override
getPurposeBytes()2205   public com.google.protobuf.ByteString getPurposeBytes() {
2206     java.lang.Object ref = purpose_;
2207     if (ref instanceof java.lang.String) {
2208       com.google.protobuf.ByteString b =
2209           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2210       purpose_ = b;
2211       return b;
2212     } else {
2213       return (com.google.protobuf.ByteString) ref;
2214     }
2215   }
2216 
2217   public static final int REGION_FIELD_NUMBER = 138946292;
2218 
2219   @SuppressWarnings("serial")
2220   private volatile java.lang.Object region_ = "";
2221   /**
2222    *
2223    *
2224    * <pre>
2225    * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
2226    * </pre>
2227    *
2228    * <code>optional string region = 138946292;</code>
2229    *
2230    * @return Whether the region field is set.
2231    */
2232   @java.lang.Override
hasRegion()2233   public boolean hasRegion() {
2234     return ((bitField0_ & 0x00040000) != 0);
2235   }
2236   /**
2237    *
2238    *
2239    * <pre>
2240    * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
2241    * </pre>
2242    *
2243    * <code>optional string region = 138946292;</code>
2244    *
2245    * @return The region.
2246    */
2247   @java.lang.Override
getRegion()2248   public java.lang.String getRegion() {
2249     java.lang.Object ref = region_;
2250     if (ref instanceof java.lang.String) {
2251       return (java.lang.String) ref;
2252     } else {
2253       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2254       java.lang.String s = bs.toStringUtf8();
2255       region_ = s;
2256       return s;
2257     }
2258   }
2259   /**
2260    *
2261    *
2262    * <pre>
2263    * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
2264    * </pre>
2265    *
2266    * <code>optional string region = 138946292;</code>
2267    *
2268    * @return The bytes for region.
2269    */
2270   @java.lang.Override
getRegionBytes()2271   public com.google.protobuf.ByteString getRegionBytes() {
2272     java.lang.Object ref = region_;
2273     if (ref instanceof java.lang.String) {
2274       com.google.protobuf.ByteString b =
2275           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2276       region_ = b;
2277       return b;
2278     } else {
2279       return (com.google.protobuf.ByteString) ref;
2280     }
2281   }
2282 
2283   public static final int ROLE_FIELD_NUMBER = 3506294;
2284 
2285   @SuppressWarnings("serial")
2286   private volatile java.lang.Object role_ = "";
2287   /**
2288    *
2289    *
2290    * <pre>
2291    * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
2292    * Check the Role enum for the list of possible values.
2293    * </pre>
2294    *
2295    * <code>optional string role = 3506294;</code>
2296    *
2297    * @return Whether the role field is set.
2298    */
2299   @java.lang.Override
hasRole()2300   public boolean hasRole() {
2301     return ((bitField0_ & 0x00080000) != 0);
2302   }
2303   /**
2304    *
2305    *
2306    * <pre>
2307    * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
2308    * Check the Role enum for the list of possible values.
2309    * </pre>
2310    *
2311    * <code>optional string role = 3506294;</code>
2312    *
2313    * @return The role.
2314    */
2315   @java.lang.Override
getRole()2316   public java.lang.String getRole() {
2317     java.lang.Object ref = role_;
2318     if (ref instanceof java.lang.String) {
2319       return (java.lang.String) ref;
2320     } else {
2321       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2322       java.lang.String s = bs.toStringUtf8();
2323       role_ = s;
2324       return s;
2325     }
2326   }
2327   /**
2328    *
2329    *
2330    * <pre>
2331    * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
2332    * Check the Role enum for the list of possible values.
2333    * </pre>
2334    *
2335    * <code>optional string role = 3506294;</code>
2336    *
2337    * @return The bytes for role.
2338    */
2339   @java.lang.Override
getRoleBytes()2340   public com.google.protobuf.ByteString getRoleBytes() {
2341     java.lang.Object ref = role_;
2342     if (ref instanceof java.lang.String) {
2343       com.google.protobuf.ByteString b =
2344           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2345       role_ = b;
2346       return b;
2347     } else {
2348       return (com.google.protobuf.ByteString) ref;
2349     }
2350   }
2351 
2352   public static final int SECONDARY_IP_RANGES_FIELD_NUMBER = 136658915;
2353 
2354   @SuppressWarnings("serial")
2355   private java.util.List<com.google.cloud.compute.v1.SubnetworkSecondaryRange> secondaryIpRanges_;
2356   /**
2357    *
2358    *
2359    * <pre>
2360    * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
2361    * </pre>
2362    *
2363    * <code>
2364    * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
2365    * </code>
2366    */
2367   @java.lang.Override
2368   public java.util.List<com.google.cloud.compute.v1.SubnetworkSecondaryRange>
getSecondaryIpRangesList()2369       getSecondaryIpRangesList() {
2370     return secondaryIpRanges_;
2371   }
2372   /**
2373    *
2374    *
2375    * <pre>
2376    * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
2377    * </pre>
2378    *
2379    * <code>
2380    * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
2381    * </code>
2382    */
2383   @java.lang.Override
2384   public java.util.List<? extends com.google.cloud.compute.v1.SubnetworkSecondaryRangeOrBuilder>
getSecondaryIpRangesOrBuilderList()2385       getSecondaryIpRangesOrBuilderList() {
2386     return secondaryIpRanges_;
2387   }
2388   /**
2389    *
2390    *
2391    * <pre>
2392    * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
2393    * </pre>
2394    *
2395    * <code>
2396    * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
2397    * </code>
2398    */
2399   @java.lang.Override
getSecondaryIpRangesCount()2400   public int getSecondaryIpRangesCount() {
2401     return secondaryIpRanges_.size();
2402   }
2403   /**
2404    *
2405    *
2406    * <pre>
2407    * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
2408    * </pre>
2409    *
2410    * <code>
2411    * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
2412    * </code>
2413    */
2414   @java.lang.Override
getSecondaryIpRanges(int index)2415   public com.google.cloud.compute.v1.SubnetworkSecondaryRange getSecondaryIpRanges(int index) {
2416     return secondaryIpRanges_.get(index);
2417   }
2418   /**
2419    *
2420    *
2421    * <pre>
2422    * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
2423    * </pre>
2424    *
2425    * <code>
2426    * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
2427    * </code>
2428    */
2429   @java.lang.Override
2430   public com.google.cloud.compute.v1.SubnetworkSecondaryRangeOrBuilder
getSecondaryIpRangesOrBuilder(int index)2431       getSecondaryIpRangesOrBuilder(int index) {
2432     return secondaryIpRanges_.get(index);
2433   }
2434 
2435   public static final int SELF_LINK_FIELD_NUMBER = 456214797;
2436 
2437   @SuppressWarnings("serial")
2438   private volatile java.lang.Object selfLink_ = "";
2439   /**
2440    *
2441    *
2442    * <pre>
2443    * [Output Only] Server-defined URL for the resource.
2444    * </pre>
2445    *
2446    * <code>optional string self_link = 456214797;</code>
2447    *
2448    * @return Whether the selfLink field is set.
2449    */
2450   @java.lang.Override
hasSelfLink()2451   public boolean hasSelfLink() {
2452     return ((bitField0_ & 0x00100000) != 0);
2453   }
2454   /**
2455    *
2456    *
2457    * <pre>
2458    * [Output Only] Server-defined URL for the resource.
2459    * </pre>
2460    *
2461    * <code>optional string self_link = 456214797;</code>
2462    *
2463    * @return The selfLink.
2464    */
2465   @java.lang.Override
getSelfLink()2466   public java.lang.String getSelfLink() {
2467     java.lang.Object ref = selfLink_;
2468     if (ref instanceof java.lang.String) {
2469       return (java.lang.String) ref;
2470     } else {
2471       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2472       java.lang.String s = bs.toStringUtf8();
2473       selfLink_ = s;
2474       return s;
2475     }
2476   }
2477   /**
2478    *
2479    *
2480    * <pre>
2481    * [Output Only] Server-defined URL for the resource.
2482    * </pre>
2483    *
2484    * <code>optional string self_link = 456214797;</code>
2485    *
2486    * @return The bytes for selfLink.
2487    */
2488   @java.lang.Override
getSelfLinkBytes()2489   public com.google.protobuf.ByteString getSelfLinkBytes() {
2490     java.lang.Object ref = selfLink_;
2491     if (ref instanceof java.lang.String) {
2492       com.google.protobuf.ByteString b =
2493           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2494       selfLink_ = b;
2495       return b;
2496     } else {
2497       return (com.google.protobuf.ByteString) ref;
2498     }
2499   }
2500 
2501   public static final int STACK_TYPE_FIELD_NUMBER = 425908881;
2502 
2503   @SuppressWarnings("serial")
2504   private volatile java.lang.Object stackType_ = "";
2505   /**
2506    *
2507    *
2508    * <pre>
2509    * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
2510    * Check the StackType enum for the list of possible values.
2511    * </pre>
2512    *
2513    * <code>optional string stack_type = 425908881;</code>
2514    *
2515    * @return Whether the stackType field is set.
2516    */
2517   @java.lang.Override
hasStackType()2518   public boolean hasStackType() {
2519     return ((bitField0_ & 0x00200000) != 0);
2520   }
2521   /**
2522    *
2523    *
2524    * <pre>
2525    * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
2526    * Check the StackType enum for the list of possible values.
2527    * </pre>
2528    *
2529    * <code>optional string stack_type = 425908881;</code>
2530    *
2531    * @return The stackType.
2532    */
2533   @java.lang.Override
getStackType()2534   public java.lang.String getStackType() {
2535     java.lang.Object ref = stackType_;
2536     if (ref instanceof java.lang.String) {
2537       return (java.lang.String) ref;
2538     } else {
2539       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2540       java.lang.String s = bs.toStringUtf8();
2541       stackType_ = s;
2542       return s;
2543     }
2544   }
2545   /**
2546    *
2547    *
2548    * <pre>
2549    * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
2550    * Check the StackType enum for the list of possible values.
2551    * </pre>
2552    *
2553    * <code>optional string stack_type = 425908881;</code>
2554    *
2555    * @return The bytes for stackType.
2556    */
2557   @java.lang.Override
getStackTypeBytes()2558   public com.google.protobuf.ByteString getStackTypeBytes() {
2559     java.lang.Object ref = stackType_;
2560     if (ref instanceof java.lang.String) {
2561       com.google.protobuf.ByteString b =
2562           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2563       stackType_ = b;
2564       return b;
2565     } else {
2566       return (com.google.protobuf.ByteString) ref;
2567     }
2568   }
2569 
2570   public static final int STATE_FIELD_NUMBER = 109757585;
2571 
2572   @SuppressWarnings("serial")
2573   private volatile java.lang.Object state_ = "";
2574   /**
2575    *
2576    *
2577    * <pre>
2578    * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
2579    * Check the State enum for the list of possible values.
2580    * </pre>
2581    *
2582    * <code>optional string state = 109757585;</code>
2583    *
2584    * @return Whether the state field is set.
2585    */
2586   @java.lang.Override
hasState()2587   public boolean hasState() {
2588     return ((bitField0_ & 0x00400000) != 0);
2589   }
2590   /**
2591    *
2592    *
2593    * <pre>
2594    * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
2595    * Check the State enum for the list of possible values.
2596    * </pre>
2597    *
2598    * <code>optional string state = 109757585;</code>
2599    *
2600    * @return The state.
2601    */
2602   @java.lang.Override
getState()2603   public java.lang.String getState() {
2604     java.lang.Object ref = state_;
2605     if (ref instanceof java.lang.String) {
2606       return (java.lang.String) ref;
2607     } else {
2608       com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
2609       java.lang.String s = bs.toStringUtf8();
2610       state_ = s;
2611       return s;
2612     }
2613   }
2614   /**
2615    *
2616    *
2617    * <pre>
2618    * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
2619    * Check the State enum for the list of possible values.
2620    * </pre>
2621    *
2622    * <code>optional string state = 109757585;</code>
2623    *
2624    * @return The bytes for state.
2625    */
2626   @java.lang.Override
getStateBytes()2627   public com.google.protobuf.ByteString getStateBytes() {
2628     java.lang.Object ref = state_;
2629     if (ref instanceof java.lang.String) {
2630       com.google.protobuf.ByteString b =
2631           com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
2632       state_ = b;
2633       return b;
2634     } else {
2635       return (com.google.protobuf.ByteString) ref;
2636     }
2637   }
2638 
2639   private byte memoizedIsInitialized = -1;
2640 
2641   @java.lang.Override
isInitialized()2642   public final boolean isInitialized() {
2643     byte isInitialized = memoizedIsInitialized;
2644     if (isInitialized == 1) return true;
2645     if (isInitialized == 0) return false;
2646 
2647     memoizedIsInitialized = 1;
2648     return true;
2649   }
2650 
2651   @java.lang.Override
writeTo(com.google.protobuf.CodedOutputStream output)2652   public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
2653     if (((bitField0_ & 0x00000040) != 0)) {
2654       output.writeUInt64(3355, id_);
2655     }
2656     if (((bitField0_ & 0x00000800) != 0)) {
2657       com.google.protobuf.GeneratedMessageV3.writeString(output, 3292052, kind_);
2658     }
2659     if (((bitField0_ & 0x00002000) != 0)) {
2660       com.google.protobuf.GeneratedMessageV3.writeString(output, 3373707, name_);
2661     }
2662     if (((bitField0_ & 0x00080000) != 0)) {
2663       com.google.protobuf.GeneratedMessageV3.writeString(output, 3506294, role_);
2664     }
2665     if (((bitField0_ & 0x00000001) != 0)) {
2666       com.google.protobuf.GeneratedMessageV3.writeString(output, 30525366, creationTimestamp_);
2667     }
2668     if (((bitField0_ & 0x00010000) != 0)) {
2669       com.google.protobuf.GeneratedMessageV3.writeString(
2670           output, 48277006, privateIpv6GoogleAccess_);
2671     }
2672     if (((bitField0_ & 0x00000100) != 0)) {
2673       com.google.protobuf.GeneratedMessageV3.writeString(output, 98117322, ipCidrRange_);
2674     }
2675     if (((bitField0_ & 0x00400000) != 0)) {
2676       com.google.protobuf.GeneratedMessageV3.writeString(output, 109757585, state_);
2677     }
2678     for (int i = 0; i < secondaryIpRanges_.size(); i++) {
2679       output.writeMessage(136658915, secondaryIpRanges_.get(i));
2680     }
2681     if (((bitField0_ & 0x00040000) != 0)) {
2682       com.google.protobuf.GeneratedMessageV3.writeString(output, 138946292, region_);
2683     }
2684     if (((bitField0_ & 0x00000008) != 0)) {
2685       com.google.protobuf.GeneratedMessageV3.writeString(output, 139299190, externalIpv6Prefix_);
2686     }
2687     if (((bitField0_ & 0x00000004) != 0)) {
2688       output.writeBool(151544420, enableFlowLogs_);
2689     }
2690     if (((bitField0_ & 0x00004000) != 0)) {
2691       com.google.protobuf.GeneratedMessageV3.writeString(output, 232872494, network_);
2692     }
2693     if (((bitField0_ & 0x00000010) != 0)) {
2694       com.google.protobuf.GeneratedMessageV3.writeString(output, 234678500, fingerprint_);
2695     }
2696     if (((bitField0_ & 0x00000400) != 0)) {
2697       com.google.protobuf.GeneratedMessageV3.writeString(output, 273141258, ipv6CidrRange_);
2698     }
2699     if (((bitField0_ & 0x00020000) != 0)) {
2700       com.google.protobuf.GeneratedMessageV3.writeString(output, 316407070, purpose_);
2701     }
2702     if (((bitField0_ & 0x00001000) != 0)) {
2703       output.writeMessage(351299741, getLogConfig());
2704     }
2705     if (((bitField0_ & 0x00008000) != 0)) {
2706       output.writeBool(421491790, privateIpGoogleAccess_);
2707     }
2708     if (((bitField0_ & 0x00000002) != 0)) {
2709       com.google.protobuf.GeneratedMessageV3.writeString(output, 422937596, description_);
2710     }
2711     if (((bitField0_ & 0x00200000) != 0)) {
2712       com.google.protobuf.GeneratedMessageV3.writeString(output, 425908881, stackType_);
2713     }
2714     if (((bitField0_ & 0x00100000) != 0)) {
2715       com.google.protobuf.GeneratedMessageV3.writeString(output, 456214797, selfLink_);
2716     }
2717     if (((bitField0_ & 0x00000020) != 0)) {
2718       com.google.protobuf.GeneratedMessageV3.writeString(output, 459867385, gatewayAddress_);
2719     }
2720     if (((bitField0_ & 0x00000200) != 0)) {
2721       com.google.protobuf.GeneratedMessageV3.writeString(output, 504658653, ipv6AccessType_);
2722     }
2723     if (((bitField0_ & 0x00000080) != 0)) {
2724       com.google.protobuf.GeneratedMessageV3.writeString(output, 506270056, internalIpv6Prefix_);
2725     }
2726     getUnknownFields().writeTo(output);
2727   }
2728 
2729   @java.lang.Override
getSerializedSize()2730   public int getSerializedSize() {
2731     int size = memoizedSize;
2732     if (size != -1) return size;
2733 
2734     size = 0;
2735     if (((bitField0_ & 0x00000040) != 0)) {
2736       size += com.google.protobuf.CodedOutputStream.computeUInt64Size(3355, id_);
2737     }
2738     if (((bitField0_ & 0x00000800) != 0)) {
2739       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3292052, kind_);
2740     }
2741     if (((bitField0_ & 0x00002000) != 0)) {
2742       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3373707, name_);
2743     }
2744     if (((bitField0_ & 0x00080000) != 0)) {
2745       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3506294, role_);
2746     }
2747     if (((bitField0_ & 0x00000001) != 0)) {
2748       size +=
2749           com.google.protobuf.GeneratedMessageV3.computeStringSize(30525366, creationTimestamp_);
2750     }
2751     if (((bitField0_ & 0x00010000) != 0)) {
2752       size +=
2753           com.google.protobuf.GeneratedMessageV3.computeStringSize(
2754               48277006, privateIpv6GoogleAccess_);
2755     }
2756     if (((bitField0_ & 0x00000100) != 0)) {
2757       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(98117322, ipCidrRange_);
2758     }
2759     if (((bitField0_ & 0x00400000) != 0)) {
2760       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(109757585, state_);
2761     }
2762     for (int i = 0; i < secondaryIpRanges_.size(); i++) {
2763       size +=
2764           com.google.protobuf.CodedOutputStream.computeMessageSize(
2765               136658915, secondaryIpRanges_.get(i));
2766     }
2767     if (((bitField0_ & 0x00040000) != 0)) {
2768       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(138946292, region_);
2769     }
2770     if (((bitField0_ & 0x00000008) != 0)) {
2771       size +=
2772           com.google.protobuf.GeneratedMessageV3.computeStringSize(139299190, externalIpv6Prefix_);
2773     }
2774     if (((bitField0_ & 0x00000004) != 0)) {
2775       size += com.google.protobuf.CodedOutputStream.computeBoolSize(151544420, enableFlowLogs_);
2776     }
2777     if (((bitField0_ & 0x00004000) != 0)) {
2778       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(232872494, network_);
2779     }
2780     if (((bitField0_ & 0x00000010) != 0)) {
2781       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(234678500, fingerprint_);
2782     }
2783     if (((bitField0_ & 0x00000400) != 0)) {
2784       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(273141258, ipv6CidrRange_);
2785     }
2786     if (((bitField0_ & 0x00020000) != 0)) {
2787       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(316407070, purpose_);
2788     }
2789     if (((bitField0_ & 0x00001000) != 0)) {
2790       size += com.google.protobuf.CodedOutputStream.computeMessageSize(351299741, getLogConfig());
2791     }
2792     if (((bitField0_ & 0x00008000) != 0)) {
2793       size +=
2794           com.google.protobuf.CodedOutputStream.computeBoolSize(421491790, privateIpGoogleAccess_);
2795     }
2796     if (((bitField0_ & 0x00000002) != 0)) {
2797       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(422937596, description_);
2798     }
2799     if (((bitField0_ & 0x00200000) != 0)) {
2800       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(425908881, stackType_);
2801     }
2802     if (((bitField0_ & 0x00100000) != 0)) {
2803       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(456214797, selfLink_);
2804     }
2805     if (((bitField0_ & 0x00000020) != 0)) {
2806       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(459867385, gatewayAddress_);
2807     }
2808     if (((bitField0_ & 0x00000200) != 0)) {
2809       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(504658653, ipv6AccessType_);
2810     }
2811     if (((bitField0_ & 0x00000080) != 0)) {
2812       size +=
2813           com.google.protobuf.GeneratedMessageV3.computeStringSize(506270056, internalIpv6Prefix_);
2814     }
2815     size += getUnknownFields().getSerializedSize();
2816     memoizedSize = size;
2817     return size;
2818   }
2819 
2820   @java.lang.Override
equals(final java.lang.Object obj)2821   public boolean equals(final java.lang.Object obj) {
2822     if (obj == this) {
2823       return true;
2824     }
2825     if (!(obj instanceof com.google.cloud.compute.v1.Subnetwork)) {
2826       return super.equals(obj);
2827     }
2828     com.google.cloud.compute.v1.Subnetwork other = (com.google.cloud.compute.v1.Subnetwork) obj;
2829 
2830     if (hasCreationTimestamp() != other.hasCreationTimestamp()) return false;
2831     if (hasCreationTimestamp()) {
2832       if (!getCreationTimestamp().equals(other.getCreationTimestamp())) return false;
2833     }
2834     if (hasDescription() != other.hasDescription()) return false;
2835     if (hasDescription()) {
2836       if (!getDescription().equals(other.getDescription())) return false;
2837     }
2838     if (hasEnableFlowLogs() != other.hasEnableFlowLogs()) return false;
2839     if (hasEnableFlowLogs()) {
2840       if (getEnableFlowLogs() != other.getEnableFlowLogs()) return false;
2841     }
2842     if (hasExternalIpv6Prefix() != other.hasExternalIpv6Prefix()) return false;
2843     if (hasExternalIpv6Prefix()) {
2844       if (!getExternalIpv6Prefix().equals(other.getExternalIpv6Prefix())) return false;
2845     }
2846     if (hasFingerprint() != other.hasFingerprint()) return false;
2847     if (hasFingerprint()) {
2848       if (!getFingerprint().equals(other.getFingerprint())) return false;
2849     }
2850     if (hasGatewayAddress() != other.hasGatewayAddress()) return false;
2851     if (hasGatewayAddress()) {
2852       if (!getGatewayAddress().equals(other.getGatewayAddress())) return false;
2853     }
2854     if (hasId() != other.hasId()) return false;
2855     if (hasId()) {
2856       if (getId() != other.getId()) return false;
2857     }
2858     if (hasInternalIpv6Prefix() != other.hasInternalIpv6Prefix()) return false;
2859     if (hasInternalIpv6Prefix()) {
2860       if (!getInternalIpv6Prefix().equals(other.getInternalIpv6Prefix())) return false;
2861     }
2862     if (hasIpCidrRange() != other.hasIpCidrRange()) return false;
2863     if (hasIpCidrRange()) {
2864       if (!getIpCidrRange().equals(other.getIpCidrRange())) return false;
2865     }
2866     if (hasIpv6AccessType() != other.hasIpv6AccessType()) return false;
2867     if (hasIpv6AccessType()) {
2868       if (!getIpv6AccessType().equals(other.getIpv6AccessType())) return false;
2869     }
2870     if (hasIpv6CidrRange() != other.hasIpv6CidrRange()) return false;
2871     if (hasIpv6CidrRange()) {
2872       if (!getIpv6CidrRange().equals(other.getIpv6CidrRange())) return false;
2873     }
2874     if (hasKind() != other.hasKind()) return false;
2875     if (hasKind()) {
2876       if (!getKind().equals(other.getKind())) return false;
2877     }
2878     if (hasLogConfig() != other.hasLogConfig()) return false;
2879     if (hasLogConfig()) {
2880       if (!getLogConfig().equals(other.getLogConfig())) return false;
2881     }
2882     if (hasName() != other.hasName()) return false;
2883     if (hasName()) {
2884       if (!getName().equals(other.getName())) return false;
2885     }
2886     if (hasNetwork() != other.hasNetwork()) return false;
2887     if (hasNetwork()) {
2888       if (!getNetwork().equals(other.getNetwork())) return false;
2889     }
2890     if (hasPrivateIpGoogleAccess() != other.hasPrivateIpGoogleAccess()) return false;
2891     if (hasPrivateIpGoogleAccess()) {
2892       if (getPrivateIpGoogleAccess() != other.getPrivateIpGoogleAccess()) return false;
2893     }
2894     if (hasPrivateIpv6GoogleAccess() != other.hasPrivateIpv6GoogleAccess()) return false;
2895     if (hasPrivateIpv6GoogleAccess()) {
2896       if (!getPrivateIpv6GoogleAccess().equals(other.getPrivateIpv6GoogleAccess())) return false;
2897     }
2898     if (hasPurpose() != other.hasPurpose()) return false;
2899     if (hasPurpose()) {
2900       if (!getPurpose().equals(other.getPurpose())) return false;
2901     }
2902     if (hasRegion() != other.hasRegion()) return false;
2903     if (hasRegion()) {
2904       if (!getRegion().equals(other.getRegion())) return false;
2905     }
2906     if (hasRole() != other.hasRole()) return false;
2907     if (hasRole()) {
2908       if (!getRole().equals(other.getRole())) return false;
2909     }
2910     if (!getSecondaryIpRangesList().equals(other.getSecondaryIpRangesList())) return false;
2911     if (hasSelfLink() != other.hasSelfLink()) return false;
2912     if (hasSelfLink()) {
2913       if (!getSelfLink().equals(other.getSelfLink())) return false;
2914     }
2915     if (hasStackType() != other.hasStackType()) return false;
2916     if (hasStackType()) {
2917       if (!getStackType().equals(other.getStackType())) return false;
2918     }
2919     if (hasState() != other.hasState()) return false;
2920     if (hasState()) {
2921       if (!getState().equals(other.getState())) return false;
2922     }
2923     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
2924     return true;
2925   }
2926 
2927   @java.lang.Override
hashCode()2928   public int hashCode() {
2929     if (memoizedHashCode != 0) {
2930       return memoizedHashCode;
2931     }
2932     int hash = 41;
2933     hash = (19 * hash) + getDescriptor().hashCode();
2934     if (hasCreationTimestamp()) {
2935       hash = (37 * hash) + CREATION_TIMESTAMP_FIELD_NUMBER;
2936       hash = (53 * hash) + getCreationTimestamp().hashCode();
2937     }
2938     if (hasDescription()) {
2939       hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
2940       hash = (53 * hash) + getDescription().hashCode();
2941     }
2942     if (hasEnableFlowLogs()) {
2943       hash = (37 * hash) + ENABLE_FLOW_LOGS_FIELD_NUMBER;
2944       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableFlowLogs());
2945     }
2946     if (hasExternalIpv6Prefix()) {
2947       hash = (37 * hash) + EXTERNAL_IPV6_PREFIX_FIELD_NUMBER;
2948       hash = (53 * hash) + getExternalIpv6Prefix().hashCode();
2949     }
2950     if (hasFingerprint()) {
2951       hash = (37 * hash) + FINGERPRINT_FIELD_NUMBER;
2952       hash = (53 * hash) + getFingerprint().hashCode();
2953     }
2954     if (hasGatewayAddress()) {
2955       hash = (37 * hash) + GATEWAY_ADDRESS_FIELD_NUMBER;
2956       hash = (53 * hash) + getGatewayAddress().hashCode();
2957     }
2958     if (hasId()) {
2959       hash = (37 * hash) + ID_FIELD_NUMBER;
2960       hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getId());
2961     }
2962     if (hasInternalIpv6Prefix()) {
2963       hash = (37 * hash) + INTERNAL_IPV6_PREFIX_FIELD_NUMBER;
2964       hash = (53 * hash) + getInternalIpv6Prefix().hashCode();
2965     }
2966     if (hasIpCidrRange()) {
2967       hash = (37 * hash) + IP_CIDR_RANGE_FIELD_NUMBER;
2968       hash = (53 * hash) + getIpCidrRange().hashCode();
2969     }
2970     if (hasIpv6AccessType()) {
2971       hash = (37 * hash) + IPV6_ACCESS_TYPE_FIELD_NUMBER;
2972       hash = (53 * hash) + getIpv6AccessType().hashCode();
2973     }
2974     if (hasIpv6CidrRange()) {
2975       hash = (37 * hash) + IPV6_CIDR_RANGE_FIELD_NUMBER;
2976       hash = (53 * hash) + getIpv6CidrRange().hashCode();
2977     }
2978     if (hasKind()) {
2979       hash = (37 * hash) + KIND_FIELD_NUMBER;
2980       hash = (53 * hash) + getKind().hashCode();
2981     }
2982     if (hasLogConfig()) {
2983       hash = (37 * hash) + LOG_CONFIG_FIELD_NUMBER;
2984       hash = (53 * hash) + getLogConfig().hashCode();
2985     }
2986     if (hasName()) {
2987       hash = (37 * hash) + NAME_FIELD_NUMBER;
2988       hash = (53 * hash) + getName().hashCode();
2989     }
2990     if (hasNetwork()) {
2991       hash = (37 * hash) + NETWORK_FIELD_NUMBER;
2992       hash = (53 * hash) + getNetwork().hashCode();
2993     }
2994     if (hasPrivateIpGoogleAccess()) {
2995       hash = (37 * hash) + PRIVATE_IP_GOOGLE_ACCESS_FIELD_NUMBER;
2996       hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getPrivateIpGoogleAccess());
2997     }
2998     if (hasPrivateIpv6GoogleAccess()) {
2999       hash = (37 * hash) + PRIVATE_IPV6_GOOGLE_ACCESS_FIELD_NUMBER;
3000       hash = (53 * hash) + getPrivateIpv6GoogleAccess().hashCode();
3001     }
3002     if (hasPurpose()) {
3003       hash = (37 * hash) + PURPOSE_FIELD_NUMBER;
3004       hash = (53 * hash) + getPurpose().hashCode();
3005     }
3006     if (hasRegion()) {
3007       hash = (37 * hash) + REGION_FIELD_NUMBER;
3008       hash = (53 * hash) + getRegion().hashCode();
3009     }
3010     if (hasRole()) {
3011       hash = (37 * hash) + ROLE_FIELD_NUMBER;
3012       hash = (53 * hash) + getRole().hashCode();
3013     }
3014     if (getSecondaryIpRangesCount() > 0) {
3015       hash = (37 * hash) + SECONDARY_IP_RANGES_FIELD_NUMBER;
3016       hash = (53 * hash) + getSecondaryIpRangesList().hashCode();
3017     }
3018     if (hasSelfLink()) {
3019       hash = (37 * hash) + SELF_LINK_FIELD_NUMBER;
3020       hash = (53 * hash) + getSelfLink().hashCode();
3021     }
3022     if (hasStackType()) {
3023       hash = (37 * hash) + STACK_TYPE_FIELD_NUMBER;
3024       hash = (53 * hash) + getStackType().hashCode();
3025     }
3026     if (hasState()) {
3027       hash = (37 * hash) + STATE_FIELD_NUMBER;
3028       hash = (53 * hash) + getState().hashCode();
3029     }
3030     hash = (29 * hash) + getUnknownFields().hashCode();
3031     memoizedHashCode = hash;
3032     return hash;
3033   }
3034 
parseFrom(java.nio.ByteBuffer data)3035   public static com.google.cloud.compute.v1.Subnetwork parseFrom(java.nio.ByteBuffer data)
3036       throws com.google.protobuf.InvalidProtocolBufferException {
3037     return PARSER.parseFrom(data);
3038   }
3039 
parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3040   public static com.google.cloud.compute.v1.Subnetwork parseFrom(
3041       java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3042       throws com.google.protobuf.InvalidProtocolBufferException {
3043     return PARSER.parseFrom(data, extensionRegistry);
3044   }
3045 
parseFrom( com.google.protobuf.ByteString data)3046   public static com.google.cloud.compute.v1.Subnetwork parseFrom(
3047       com.google.protobuf.ByteString data)
3048       throws com.google.protobuf.InvalidProtocolBufferException {
3049     return PARSER.parseFrom(data);
3050   }
3051 
parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3052   public static com.google.cloud.compute.v1.Subnetwork parseFrom(
3053       com.google.protobuf.ByteString data,
3054       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3055       throws com.google.protobuf.InvalidProtocolBufferException {
3056     return PARSER.parseFrom(data, extensionRegistry);
3057   }
3058 
parseFrom(byte[] data)3059   public static com.google.cloud.compute.v1.Subnetwork parseFrom(byte[] data)
3060       throws com.google.protobuf.InvalidProtocolBufferException {
3061     return PARSER.parseFrom(data);
3062   }
3063 
parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3064   public static com.google.cloud.compute.v1.Subnetwork parseFrom(
3065       byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3066       throws com.google.protobuf.InvalidProtocolBufferException {
3067     return PARSER.parseFrom(data, extensionRegistry);
3068   }
3069 
parseFrom(java.io.InputStream input)3070   public static com.google.cloud.compute.v1.Subnetwork parseFrom(java.io.InputStream input)
3071       throws java.io.IOException {
3072     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
3073   }
3074 
parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3075   public static com.google.cloud.compute.v1.Subnetwork parseFrom(
3076       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3077       throws java.io.IOException {
3078     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
3079         PARSER, input, extensionRegistry);
3080   }
3081 
parseDelimitedFrom(java.io.InputStream input)3082   public static com.google.cloud.compute.v1.Subnetwork parseDelimitedFrom(java.io.InputStream input)
3083       throws java.io.IOException {
3084     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
3085   }
3086 
parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3087   public static com.google.cloud.compute.v1.Subnetwork parseDelimitedFrom(
3088       java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3089       throws java.io.IOException {
3090     return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
3091         PARSER, input, extensionRegistry);
3092   }
3093 
parseFrom( com.google.protobuf.CodedInputStream input)3094   public static com.google.cloud.compute.v1.Subnetwork parseFrom(
3095       com.google.protobuf.CodedInputStream input) throws java.io.IOException {
3096     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
3097   }
3098 
parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3099   public static com.google.cloud.compute.v1.Subnetwork parseFrom(
3100       com.google.protobuf.CodedInputStream input,
3101       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3102       throws java.io.IOException {
3103     return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
3104         PARSER, input, extensionRegistry);
3105   }
3106 
3107   @java.lang.Override
newBuilderForType()3108   public Builder newBuilderForType() {
3109     return newBuilder();
3110   }
3111 
newBuilder()3112   public static Builder newBuilder() {
3113     return DEFAULT_INSTANCE.toBuilder();
3114   }
3115 
newBuilder(com.google.cloud.compute.v1.Subnetwork prototype)3116   public static Builder newBuilder(com.google.cloud.compute.v1.Subnetwork prototype) {
3117     return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3118   }
3119 
3120   @java.lang.Override
toBuilder()3121   public Builder toBuilder() {
3122     return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
3123   }
3124 
3125   @java.lang.Override
newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)3126   protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3127     Builder builder = new Builder(parent);
3128     return builder;
3129   }
3130   /**
3131    *
3132    *
3133    * <pre>
3134    * Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.
3135    * </pre>
3136    *
3137    * Protobuf type {@code google.cloud.compute.v1.Subnetwork}
3138    */
3139   public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
3140       implements
3141       // @@protoc_insertion_point(builder_implements:google.cloud.compute.v1.Subnetwork)
3142       com.google.cloud.compute.v1.SubnetworkOrBuilder {
getDescriptor()3143     public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
3144       return com.google.cloud.compute.v1.Compute
3145           .internal_static_google_cloud_compute_v1_Subnetwork_descriptor;
3146     }
3147 
3148     @java.lang.Override
3149     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable()3150         internalGetFieldAccessorTable() {
3151       return com.google.cloud.compute.v1.Compute
3152           .internal_static_google_cloud_compute_v1_Subnetwork_fieldAccessorTable
3153           .ensureFieldAccessorsInitialized(
3154               com.google.cloud.compute.v1.Subnetwork.class,
3155               com.google.cloud.compute.v1.Subnetwork.Builder.class);
3156     }
3157 
3158     // Construct using com.google.cloud.compute.v1.Subnetwork.newBuilder()
Builder()3159     private Builder() {
3160       maybeForceBuilderInitialization();
3161     }
3162 
Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)3163     private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3164       super(parent);
3165       maybeForceBuilderInitialization();
3166     }
3167 
maybeForceBuilderInitialization()3168     private void maybeForceBuilderInitialization() {
3169       if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
3170         getLogConfigFieldBuilder();
3171         getSecondaryIpRangesFieldBuilder();
3172       }
3173     }
3174 
3175     @java.lang.Override
clear()3176     public Builder clear() {
3177       super.clear();
3178       bitField0_ = 0;
3179       creationTimestamp_ = "";
3180       description_ = "";
3181       enableFlowLogs_ = false;
3182       externalIpv6Prefix_ = "";
3183       fingerprint_ = "";
3184       gatewayAddress_ = "";
3185       id_ = 0L;
3186       internalIpv6Prefix_ = "";
3187       ipCidrRange_ = "";
3188       ipv6AccessType_ = "";
3189       ipv6CidrRange_ = "";
3190       kind_ = "";
3191       logConfig_ = null;
3192       if (logConfigBuilder_ != null) {
3193         logConfigBuilder_.dispose();
3194         logConfigBuilder_ = null;
3195       }
3196       name_ = "";
3197       network_ = "";
3198       privateIpGoogleAccess_ = false;
3199       privateIpv6GoogleAccess_ = "";
3200       purpose_ = "";
3201       region_ = "";
3202       role_ = "";
3203       if (secondaryIpRangesBuilder_ == null) {
3204         secondaryIpRanges_ = java.util.Collections.emptyList();
3205       } else {
3206         secondaryIpRanges_ = null;
3207         secondaryIpRangesBuilder_.clear();
3208       }
3209       bitField0_ = (bitField0_ & ~0x00100000);
3210       selfLink_ = "";
3211       stackType_ = "";
3212       state_ = "";
3213       return this;
3214     }
3215 
3216     @java.lang.Override
getDescriptorForType()3217     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
3218       return com.google.cloud.compute.v1.Compute
3219           .internal_static_google_cloud_compute_v1_Subnetwork_descriptor;
3220     }
3221 
3222     @java.lang.Override
getDefaultInstanceForType()3223     public com.google.cloud.compute.v1.Subnetwork getDefaultInstanceForType() {
3224       return com.google.cloud.compute.v1.Subnetwork.getDefaultInstance();
3225     }
3226 
3227     @java.lang.Override
build()3228     public com.google.cloud.compute.v1.Subnetwork build() {
3229       com.google.cloud.compute.v1.Subnetwork result = buildPartial();
3230       if (!result.isInitialized()) {
3231         throw newUninitializedMessageException(result);
3232       }
3233       return result;
3234     }
3235 
3236     @java.lang.Override
buildPartial()3237     public com.google.cloud.compute.v1.Subnetwork buildPartial() {
3238       com.google.cloud.compute.v1.Subnetwork result =
3239           new com.google.cloud.compute.v1.Subnetwork(this);
3240       buildPartialRepeatedFields(result);
3241       if (bitField0_ != 0) {
3242         buildPartial0(result);
3243       }
3244       onBuilt();
3245       return result;
3246     }
3247 
buildPartialRepeatedFields(com.google.cloud.compute.v1.Subnetwork result)3248     private void buildPartialRepeatedFields(com.google.cloud.compute.v1.Subnetwork result) {
3249       if (secondaryIpRangesBuilder_ == null) {
3250         if (((bitField0_ & 0x00100000) != 0)) {
3251           secondaryIpRanges_ = java.util.Collections.unmodifiableList(secondaryIpRanges_);
3252           bitField0_ = (bitField0_ & ~0x00100000);
3253         }
3254         result.secondaryIpRanges_ = secondaryIpRanges_;
3255       } else {
3256         result.secondaryIpRanges_ = secondaryIpRangesBuilder_.build();
3257       }
3258     }
3259 
buildPartial0(com.google.cloud.compute.v1.Subnetwork result)3260     private void buildPartial0(com.google.cloud.compute.v1.Subnetwork result) {
3261       int from_bitField0_ = bitField0_;
3262       int to_bitField0_ = 0;
3263       if (((from_bitField0_ & 0x00000001) != 0)) {
3264         result.creationTimestamp_ = creationTimestamp_;
3265         to_bitField0_ |= 0x00000001;
3266       }
3267       if (((from_bitField0_ & 0x00000002) != 0)) {
3268         result.description_ = description_;
3269         to_bitField0_ |= 0x00000002;
3270       }
3271       if (((from_bitField0_ & 0x00000004) != 0)) {
3272         result.enableFlowLogs_ = enableFlowLogs_;
3273         to_bitField0_ |= 0x00000004;
3274       }
3275       if (((from_bitField0_ & 0x00000008) != 0)) {
3276         result.externalIpv6Prefix_ = externalIpv6Prefix_;
3277         to_bitField0_ |= 0x00000008;
3278       }
3279       if (((from_bitField0_ & 0x00000010) != 0)) {
3280         result.fingerprint_ = fingerprint_;
3281         to_bitField0_ |= 0x00000010;
3282       }
3283       if (((from_bitField0_ & 0x00000020) != 0)) {
3284         result.gatewayAddress_ = gatewayAddress_;
3285         to_bitField0_ |= 0x00000020;
3286       }
3287       if (((from_bitField0_ & 0x00000040) != 0)) {
3288         result.id_ = id_;
3289         to_bitField0_ |= 0x00000040;
3290       }
3291       if (((from_bitField0_ & 0x00000080) != 0)) {
3292         result.internalIpv6Prefix_ = internalIpv6Prefix_;
3293         to_bitField0_ |= 0x00000080;
3294       }
3295       if (((from_bitField0_ & 0x00000100) != 0)) {
3296         result.ipCidrRange_ = ipCidrRange_;
3297         to_bitField0_ |= 0x00000100;
3298       }
3299       if (((from_bitField0_ & 0x00000200) != 0)) {
3300         result.ipv6AccessType_ = ipv6AccessType_;
3301         to_bitField0_ |= 0x00000200;
3302       }
3303       if (((from_bitField0_ & 0x00000400) != 0)) {
3304         result.ipv6CidrRange_ = ipv6CidrRange_;
3305         to_bitField0_ |= 0x00000400;
3306       }
3307       if (((from_bitField0_ & 0x00000800) != 0)) {
3308         result.kind_ = kind_;
3309         to_bitField0_ |= 0x00000800;
3310       }
3311       if (((from_bitField0_ & 0x00001000) != 0)) {
3312         result.logConfig_ = logConfigBuilder_ == null ? logConfig_ : logConfigBuilder_.build();
3313         to_bitField0_ |= 0x00001000;
3314       }
3315       if (((from_bitField0_ & 0x00002000) != 0)) {
3316         result.name_ = name_;
3317         to_bitField0_ |= 0x00002000;
3318       }
3319       if (((from_bitField0_ & 0x00004000) != 0)) {
3320         result.network_ = network_;
3321         to_bitField0_ |= 0x00004000;
3322       }
3323       if (((from_bitField0_ & 0x00008000) != 0)) {
3324         result.privateIpGoogleAccess_ = privateIpGoogleAccess_;
3325         to_bitField0_ |= 0x00008000;
3326       }
3327       if (((from_bitField0_ & 0x00010000) != 0)) {
3328         result.privateIpv6GoogleAccess_ = privateIpv6GoogleAccess_;
3329         to_bitField0_ |= 0x00010000;
3330       }
3331       if (((from_bitField0_ & 0x00020000) != 0)) {
3332         result.purpose_ = purpose_;
3333         to_bitField0_ |= 0x00020000;
3334       }
3335       if (((from_bitField0_ & 0x00040000) != 0)) {
3336         result.region_ = region_;
3337         to_bitField0_ |= 0x00040000;
3338       }
3339       if (((from_bitField0_ & 0x00080000) != 0)) {
3340         result.role_ = role_;
3341         to_bitField0_ |= 0x00080000;
3342       }
3343       if (((from_bitField0_ & 0x00200000) != 0)) {
3344         result.selfLink_ = selfLink_;
3345         to_bitField0_ |= 0x00100000;
3346       }
3347       if (((from_bitField0_ & 0x00400000) != 0)) {
3348         result.stackType_ = stackType_;
3349         to_bitField0_ |= 0x00200000;
3350       }
3351       if (((from_bitField0_ & 0x00800000) != 0)) {
3352         result.state_ = state_;
3353         to_bitField0_ |= 0x00400000;
3354       }
3355       result.bitField0_ |= to_bitField0_;
3356     }
3357 
3358     @java.lang.Override
clone()3359     public Builder clone() {
3360       return super.clone();
3361     }
3362 
3363     @java.lang.Override
setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)3364     public Builder setField(
3365         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
3366       return super.setField(field, value);
3367     }
3368 
3369     @java.lang.Override
clearField(com.google.protobuf.Descriptors.FieldDescriptor field)3370     public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
3371       return super.clearField(field);
3372     }
3373 
3374     @java.lang.Override
clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)3375     public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
3376       return super.clearOneof(oneof);
3377     }
3378 
3379     @java.lang.Override
setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)3380     public Builder setRepeatedField(
3381         com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
3382       return super.setRepeatedField(field, index, value);
3383     }
3384 
3385     @java.lang.Override
addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)3386     public Builder addRepeatedField(
3387         com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
3388       return super.addRepeatedField(field, value);
3389     }
3390 
3391     @java.lang.Override
mergeFrom(com.google.protobuf.Message other)3392     public Builder mergeFrom(com.google.protobuf.Message other) {
3393       if (other instanceof com.google.cloud.compute.v1.Subnetwork) {
3394         return mergeFrom((com.google.cloud.compute.v1.Subnetwork) other);
3395       } else {
3396         super.mergeFrom(other);
3397         return this;
3398       }
3399     }
3400 
mergeFrom(com.google.cloud.compute.v1.Subnetwork other)3401     public Builder mergeFrom(com.google.cloud.compute.v1.Subnetwork other) {
3402       if (other == com.google.cloud.compute.v1.Subnetwork.getDefaultInstance()) return this;
3403       if (other.hasCreationTimestamp()) {
3404         creationTimestamp_ = other.creationTimestamp_;
3405         bitField0_ |= 0x00000001;
3406         onChanged();
3407       }
3408       if (other.hasDescription()) {
3409         description_ = other.description_;
3410         bitField0_ |= 0x00000002;
3411         onChanged();
3412       }
3413       if (other.hasEnableFlowLogs()) {
3414         setEnableFlowLogs(other.getEnableFlowLogs());
3415       }
3416       if (other.hasExternalIpv6Prefix()) {
3417         externalIpv6Prefix_ = other.externalIpv6Prefix_;
3418         bitField0_ |= 0x00000008;
3419         onChanged();
3420       }
3421       if (other.hasFingerprint()) {
3422         fingerprint_ = other.fingerprint_;
3423         bitField0_ |= 0x00000010;
3424         onChanged();
3425       }
3426       if (other.hasGatewayAddress()) {
3427         gatewayAddress_ = other.gatewayAddress_;
3428         bitField0_ |= 0x00000020;
3429         onChanged();
3430       }
3431       if (other.hasId()) {
3432         setId(other.getId());
3433       }
3434       if (other.hasInternalIpv6Prefix()) {
3435         internalIpv6Prefix_ = other.internalIpv6Prefix_;
3436         bitField0_ |= 0x00000080;
3437         onChanged();
3438       }
3439       if (other.hasIpCidrRange()) {
3440         ipCidrRange_ = other.ipCidrRange_;
3441         bitField0_ |= 0x00000100;
3442         onChanged();
3443       }
3444       if (other.hasIpv6AccessType()) {
3445         ipv6AccessType_ = other.ipv6AccessType_;
3446         bitField0_ |= 0x00000200;
3447         onChanged();
3448       }
3449       if (other.hasIpv6CidrRange()) {
3450         ipv6CidrRange_ = other.ipv6CidrRange_;
3451         bitField0_ |= 0x00000400;
3452         onChanged();
3453       }
3454       if (other.hasKind()) {
3455         kind_ = other.kind_;
3456         bitField0_ |= 0x00000800;
3457         onChanged();
3458       }
3459       if (other.hasLogConfig()) {
3460         mergeLogConfig(other.getLogConfig());
3461       }
3462       if (other.hasName()) {
3463         name_ = other.name_;
3464         bitField0_ |= 0x00002000;
3465         onChanged();
3466       }
3467       if (other.hasNetwork()) {
3468         network_ = other.network_;
3469         bitField0_ |= 0x00004000;
3470         onChanged();
3471       }
3472       if (other.hasPrivateIpGoogleAccess()) {
3473         setPrivateIpGoogleAccess(other.getPrivateIpGoogleAccess());
3474       }
3475       if (other.hasPrivateIpv6GoogleAccess()) {
3476         privateIpv6GoogleAccess_ = other.privateIpv6GoogleAccess_;
3477         bitField0_ |= 0x00010000;
3478         onChanged();
3479       }
3480       if (other.hasPurpose()) {
3481         purpose_ = other.purpose_;
3482         bitField0_ |= 0x00020000;
3483         onChanged();
3484       }
3485       if (other.hasRegion()) {
3486         region_ = other.region_;
3487         bitField0_ |= 0x00040000;
3488         onChanged();
3489       }
3490       if (other.hasRole()) {
3491         role_ = other.role_;
3492         bitField0_ |= 0x00080000;
3493         onChanged();
3494       }
3495       if (secondaryIpRangesBuilder_ == null) {
3496         if (!other.secondaryIpRanges_.isEmpty()) {
3497           if (secondaryIpRanges_.isEmpty()) {
3498             secondaryIpRanges_ = other.secondaryIpRanges_;
3499             bitField0_ = (bitField0_ & ~0x00100000);
3500           } else {
3501             ensureSecondaryIpRangesIsMutable();
3502             secondaryIpRanges_.addAll(other.secondaryIpRanges_);
3503           }
3504           onChanged();
3505         }
3506       } else {
3507         if (!other.secondaryIpRanges_.isEmpty()) {
3508           if (secondaryIpRangesBuilder_.isEmpty()) {
3509             secondaryIpRangesBuilder_.dispose();
3510             secondaryIpRangesBuilder_ = null;
3511             secondaryIpRanges_ = other.secondaryIpRanges_;
3512             bitField0_ = (bitField0_ & ~0x00100000);
3513             secondaryIpRangesBuilder_ =
3514                 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
3515                     ? getSecondaryIpRangesFieldBuilder()
3516                     : null;
3517           } else {
3518             secondaryIpRangesBuilder_.addAllMessages(other.secondaryIpRanges_);
3519           }
3520         }
3521       }
3522       if (other.hasSelfLink()) {
3523         selfLink_ = other.selfLink_;
3524         bitField0_ |= 0x00200000;
3525         onChanged();
3526       }
3527       if (other.hasStackType()) {
3528         stackType_ = other.stackType_;
3529         bitField0_ |= 0x00400000;
3530         onChanged();
3531       }
3532       if (other.hasState()) {
3533         state_ = other.state_;
3534         bitField0_ |= 0x00800000;
3535         onChanged();
3536       }
3537       this.mergeUnknownFields(other.getUnknownFields());
3538       onChanged();
3539       return this;
3540     }
3541 
3542     @java.lang.Override
isInitialized()3543     public final boolean isInitialized() {
3544       return true;
3545     }
3546 
3547     @java.lang.Override
mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)3548     public Builder mergeFrom(
3549         com.google.protobuf.CodedInputStream input,
3550         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3551         throws java.io.IOException {
3552       if (extensionRegistry == null) {
3553         throw new java.lang.NullPointerException();
3554       }
3555       try {
3556         boolean done = false;
3557         while (!done) {
3558           int tag = input.readTag();
3559           switch (tag) {
3560             case 0:
3561               done = true;
3562               break;
3563             case 26840:
3564               {
3565                 id_ = input.readUInt64();
3566                 bitField0_ |= 0x00000040;
3567                 break;
3568               } // case 26840
3569             case 26336418:
3570               {
3571                 kind_ = input.readStringRequireUtf8();
3572                 bitField0_ |= 0x00000800;
3573                 break;
3574               } // case 26336418
3575             case 26989658:
3576               {
3577                 name_ = input.readStringRequireUtf8();
3578                 bitField0_ |= 0x00002000;
3579                 break;
3580               } // case 26989658
3581             case 28050354:
3582               {
3583                 role_ = input.readStringRequireUtf8();
3584                 bitField0_ |= 0x00080000;
3585                 break;
3586               } // case 28050354
3587             case 244202930:
3588               {
3589                 creationTimestamp_ = input.readStringRequireUtf8();
3590                 bitField0_ |= 0x00000001;
3591                 break;
3592               } // case 244202930
3593             case 386216050:
3594               {
3595                 privateIpv6GoogleAccess_ = input.readStringRequireUtf8();
3596                 bitField0_ |= 0x00010000;
3597                 break;
3598               } // case 386216050
3599             case 784938578:
3600               {
3601                 ipCidrRange_ = input.readStringRequireUtf8();
3602                 bitField0_ |= 0x00000100;
3603                 break;
3604               } // case 784938578
3605             case 878060682:
3606               {
3607                 state_ = input.readStringRequireUtf8();
3608                 bitField0_ |= 0x00800000;
3609                 break;
3610               } // case 878060682
3611             case 1093271322:
3612               {
3613                 com.google.cloud.compute.v1.SubnetworkSecondaryRange m =
3614                     input.readMessage(
3615                         com.google.cloud.compute.v1.SubnetworkSecondaryRange.parser(),
3616                         extensionRegistry);
3617                 if (secondaryIpRangesBuilder_ == null) {
3618                   ensureSecondaryIpRangesIsMutable();
3619                   secondaryIpRanges_.add(m);
3620                 } else {
3621                   secondaryIpRangesBuilder_.addMessage(m);
3622                 }
3623                 break;
3624               } // case 1093271322
3625             case 1111570338:
3626               {
3627                 region_ = input.readStringRequireUtf8();
3628                 bitField0_ |= 0x00040000;
3629                 break;
3630               } // case 1111570338
3631             case 1114393522:
3632               {
3633                 externalIpv6Prefix_ = input.readStringRequireUtf8();
3634                 bitField0_ |= 0x00000008;
3635                 break;
3636               } // case 1114393522
3637             case 1212355360:
3638               {
3639                 enableFlowLogs_ = input.readBool();
3640                 bitField0_ |= 0x00000004;
3641                 break;
3642               } // case 1212355360
3643             case 1862979954:
3644               {
3645                 network_ = input.readStringRequireUtf8();
3646                 bitField0_ |= 0x00004000;
3647                 break;
3648               } // case 1862979954
3649             case 1877428002:
3650               {
3651                 fingerprint_ = input.readStringRequireUtf8();
3652                 bitField0_ |= 0x00000010;
3653                 break;
3654               } // case 1877428002
3655             case -2109837230:
3656               {
3657                 ipv6CidrRange_ = input.readStringRequireUtf8();
3658                 bitField0_ |= 0x00000400;
3659                 break;
3660               } // case -2109837230
3661             case -1763710734:
3662               {
3663                 purpose_ = input.readStringRequireUtf8();
3664                 bitField0_ |= 0x00020000;
3665                 break;
3666               } // case -1763710734
3667             case -1484569366:
3668               {
3669                 input.readMessage(getLogConfigFieldBuilder().getBuilder(), extensionRegistry);
3670                 bitField0_ |= 0x00001000;
3671                 break;
3672               } // case -1484569366
3673             case -923032976:
3674               {
3675                 privateIpGoogleAccess_ = input.readBool();
3676                 bitField0_ |= 0x00008000;
3677                 break;
3678               } // case -923032976
3679             case -911466526:
3680               {
3681                 description_ = input.readStringRequireUtf8();
3682                 bitField0_ |= 0x00000002;
3683                 break;
3684               } // case -911466526
3685             case -887696246:
3686               {
3687                 stackType_ = input.readStringRequireUtf8();
3688                 bitField0_ |= 0x00400000;
3689                 break;
3690               } // case -887696246
3691             case -645248918:
3692               {
3693                 selfLink_ = input.readStringRequireUtf8();
3694                 bitField0_ |= 0x00200000;
3695                 break;
3696               } // case -645248918
3697             case -616028214:
3698               {
3699                 gatewayAddress_ = input.readStringRequireUtf8();
3700                 bitField0_ |= 0x00000020;
3701                 break;
3702               } // case -616028214
3703             case -257698070:
3704               {
3705                 ipv6AccessType_ = input.readStringRequireUtf8();
3706                 bitField0_ |= 0x00000200;
3707                 break;
3708               } // case -257698070
3709             case -244806846:
3710               {
3711                 internalIpv6Prefix_ = input.readStringRequireUtf8();
3712                 bitField0_ |= 0x00000080;
3713                 break;
3714               } // case -244806846
3715             default:
3716               {
3717                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
3718                   done = true; // was an endgroup tag
3719                 }
3720                 break;
3721               } // default:
3722           } // switch (tag)
3723         } // while (!done)
3724       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3725         throw e.unwrapIOException();
3726       } finally {
3727         onChanged();
3728       } // finally
3729       return this;
3730     }
3731 
3732     private int bitField0_;
3733 
3734     private java.lang.Object creationTimestamp_ = "";
3735     /**
3736      *
3737      *
3738      * <pre>
3739      * [Output Only] Creation timestamp in RFC3339 text format.
3740      * </pre>
3741      *
3742      * <code>optional string creation_timestamp = 30525366;</code>
3743      *
3744      * @return Whether the creationTimestamp field is set.
3745      */
hasCreationTimestamp()3746     public boolean hasCreationTimestamp() {
3747       return ((bitField0_ & 0x00000001) != 0);
3748     }
3749     /**
3750      *
3751      *
3752      * <pre>
3753      * [Output Only] Creation timestamp in RFC3339 text format.
3754      * </pre>
3755      *
3756      * <code>optional string creation_timestamp = 30525366;</code>
3757      *
3758      * @return The creationTimestamp.
3759      */
getCreationTimestamp()3760     public java.lang.String getCreationTimestamp() {
3761       java.lang.Object ref = creationTimestamp_;
3762       if (!(ref instanceof java.lang.String)) {
3763         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3764         java.lang.String s = bs.toStringUtf8();
3765         creationTimestamp_ = s;
3766         return s;
3767       } else {
3768         return (java.lang.String) ref;
3769       }
3770     }
3771     /**
3772      *
3773      *
3774      * <pre>
3775      * [Output Only] Creation timestamp in RFC3339 text format.
3776      * </pre>
3777      *
3778      * <code>optional string creation_timestamp = 30525366;</code>
3779      *
3780      * @return The bytes for creationTimestamp.
3781      */
getCreationTimestampBytes()3782     public com.google.protobuf.ByteString getCreationTimestampBytes() {
3783       java.lang.Object ref = creationTimestamp_;
3784       if (ref instanceof String) {
3785         com.google.protobuf.ByteString b =
3786             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3787         creationTimestamp_ = b;
3788         return b;
3789       } else {
3790         return (com.google.protobuf.ByteString) ref;
3791       }
3792     }
3793     /**
3794      *
3795      *
3796      * <pre>
3797      * [Output Only] Creation timestamp in RFC3339 text format.
3798      * </pre>
3799      *
3800      * <code>optional string creation_timestamp = 30525366;</code>
3801      *
3802      * @param value The creationTimestamp to set.
3803      * @return This builder for chaining.
3804      */
setCreationTimestamp(java.lang.String value)3805     public Builder setCreationTimestamp(java.lang.String value) {
3806       if (value == null) {
3807         throw new NullPointerException();
3808       }
3809       creationTimestamp_ = value;
3810       bitField0_ |= 0x00000001;
3811       onChanged();
3812       return this;
3813     }
3814     /**
3815      *
3816      *
3817      * <pre>
3818      * [Output Only] Creation timestamp in RFC3339 text format.
3819      * </pre>
3820      *
3821      * <code>optional string creation_timestamp = 30525366;</code>
3822      *
3823      * @return This builder for chaining.
3824      */
clearCreationTimestamp()3825     public Builder clearCreationTimestamp() {
3826       creationTimestamp_ = getDefaultInstance().getCreationTimestamp();
3827       bitField0_ = (bitField0_ & ~0x00000001);
3828       onChanged();
3829       return this;
3830     }
3831     /**
3832      *
3833      *
3834      * <pre>
3835      * [Output Only] Creation timestamp in RFC3339 text format.
3836      * </pre>
3837      *
3838      * <code>optional string creation_timestamp = 30525366;</code>
3839      *
3840      * @param value The bytes for creationTimestamp to set.
3841      * @return This builder for chaining.
3842      */
setCreationTimestampBytes(com.google.protobuf.ByteString value)3843     public Builder setCreationTimestampBytes(com.google.protobuf.ByteString value) {
3844       if (value == null) {
3845         throw new NullPointerException();
3846       }
3847       checkByteStringIsUtf8(value);
3848       creationTimestamp_ = value;
3849       bitField0_ |= 0x00000001;
3850       onChanged();
3851       return this;
3852     }
3853 
3854     private java.lang.Object description_ = "";
3855     /**
3856      *
3857      *
3858      * <pre>
3859      * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
3860      * </pre>
3861      *
3862      * <code>optional string description = 422937596;</code>
3863      *
3864      * @return Whether the description field is set.
3865      */
hasDescription()3866     public boolean hasDescription() {
3867       return ((bitField0_ & 0x00000002) != 0);
3868     }
3869     /**
3870      *
3871      *
3872      * <pre>
3873      * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
3874      * </pre>
3875      *
3876      * <code>optional string description = 422937596;</code>
3877      *
3878      * @return The description.
3879      */
getDescription()3880     public java.lang.String getDescription() {
3881       java.lang.Object ref = description_;
3882       if (!(ref instanceof java.lang.String)) {
3883         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
3884         java.lang.String s = bs.toStringUtf8();
3885         description_ = s;
3886         return s;
3887       } else {
3888         return (java.lang.String) ref;
3889       }
3890     }
3891     /**
3892      *
3893      *
3894      * <pre>
3895      * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
3896      * </pre>
3897      *
3898      * <code>optional string description = 422937596;</code>
3899      *
3900      * @return The bytes for description.
3901      */
getDescriptionBytes()3902     public com.google.protobuf.ByteString getDescriptionBytes() {
3903       java.lang.Object ref = description_;
3904       if (ref instanceof String) {
3905         com.google.protobuf.ByteString b =
3906             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
3907         description_ = b;
3908         return b;
3909       } else {
3910         return (com.google.protobuf.ByteString) ref;
3911       }
3912     }
3913     /**
3914      *
3915      *
3916      * <pre>
3917      * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
3918      * </pre>
3919      *
3920      * <code>optional string description = 422937596;</code>
3921      *
3922      * @param value The description to set.
3923      * @return This builder for chaining.
3924      */
setDescription(java.lang.String value)3925     public Builder setDescription(java.lang.String value) {
3926       if (value == null) {
3927         throw new NullPointerException();
3928       }
3929       description_ = value;
3930       bitField0_ |= 0x00000002;
3931       onChanged();
3932       return this;
3933     }
3934     /**
3935      *
3936      *
3937      * <pre>
3938      * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
3939      * </pre>
3940      *
3941      * <code>optional string description = 422937596;</code>
3942      *
3943      * @return This builder for chaining.
3944      */
clearDescription()3945     public Builder clearDescription() {
3946       description_ = getDefaultInstance().getDescription();
3947       bitField0_ = (bitField0_ & ~0x00000002);
3948       onChanged();
3949       return this;
3950     }
3951     /**
3952      *
3953      *
3954      * <pre>
3955      * An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.
3956      * </pre>
3957      *
3958      * <code>optional string description = 422937596;</code>
3959      *
3960      * @param value The bytes for description to set.
3961      * @return This builder for chaining.
3962      */
setDescriptionBytes(com.google.protobuf.ByteString value)3963     public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
3964       if (value == null) {
3965         throw new NullPointerException();
3966       }
3967       checkByteStringIsUtf8(value);
3968       description_ = value;
3969       bitField0_ |= 0x00000002;
3970       onChanged();
3971       return this;
3972     }
3973 
3974     private boolean enableFlowLogs_;
3975     /**
3976      *
3977      *
3978      * <pre>
3979      * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
3980      * </pre>
3981      *
3982      * <code>optional bool enable_flow_logs = 151544420;</code>
3983      *
3984      * @return Whether the enableFlowLogs field is set.
3985      */
3986     @java.lang.Override
hasEnableFlowLogs()3987     public boolean hasEnableFlowLogs() {
3988       return ((bitField0_ & 0x00000004) != 0);
3989     }
3990     /**
3991      *
3992      *
3993      * <pre>
3994      * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
3995      * </pre>
3996      *
3997      * <code>optional bool enable_flow_logs = 151544420;</code>
3998      *
3999      * @return The enableFlowLogs.
4000      */
4001     @java.lang.Override
getEnableFlowLogs()4002     public boolean getEnableFlowLogs() {
4003       return enableFlowLogs_;
4004     }
4005     /**
4006      *
4007      *
4008      * <pre>
4009      * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
4010      * </pre>
4011      *
4012      * <code>optional bool enable_flow_logs = 151544420;</code>
4013      *
4014      * @param value The enableFlowLogs to set.
4015      * @return This builder for chaining.
4016      */
setEnableFlowLogs(boolean value)4017     public Builder setEnableFlowLogs(boolean value) {
4018 
4019       enableFlowLogs_ = value;
4020       bitField0_ |= 0x00000004;
4021       onChanged();
4022       return this;
4023     }
4024     /**
4025      *
4026      *
4027      * <pre>
4028      * Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
4029      * </pre>
4030      *
4031      * <code>optional bool enable_flow_logs = 151544420;</code>
4032      *
4033      * @return This builder for chaining.
4034      */
clearEnableFlowLogs()4035     public Builder clearEnableFlowLogs() {
4036       bitField0_ = (bitField0_ & ~0x00000004);
4037       enableFlowLogs_ = false;
4038       onChanged();
4039       return this;
4040     }
4041 
4042     private java.lang.Object externalIpv6Prefix_ = "";
4043     /**
4044      *
4045      *
4046      * <pre>
4047      * The external IPv6 address range that is owned by this subnetwork.
4048      * </pre>
4049      *
4050      * <code>optional string external_ipv6_prefix = 139299190;</code>
4051      *
4052      * @return Whether the externalIpv6Prefix field is set.
4053      */
hasExternalIpv6Prefix()4054     public boolean hasExternalIpv6Prefix() {
4055       return ((bitField0_ & 0x00000008) != 0);
4056     }
4057     /**
4058      *
4059      *
4060      * <pre>
4061      * The external IPv6 address range that is owned by this subnetwork.
4062      * </pre>
4063      *
4064      * <code>optional string external_ipv6_prefix = 139299190;</code>
4065      *
4066      * @return The externalIpv6Prefix.
4067      */
getExternalIpv6Prefix()4068     public java.lang.String getExternalIpv6Prefix() {
4069       java.lang.Object ref = externalIpv6Prefix_;
4070       if (!(ref instanceof java.lang.String)) {
4071         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4072         java.lang.String s = bs.toStringUtf8();
4073         externalIpv6Prefix_ = s;
4074         return s;
4075       } else {
4076         return (java.lang.String) ref;
4077       }
4078     }
4079     /**
4080      *
4081      *
4082      * <pre>
4083      * The external IPv6 address range that is owned by this subnetwork.
4084      * </pre>
4085      *
4086      * <code>optional string external_ipv6_prefix = 139299190;</code>
4087      *
4088      * @return The bytes for externalIpv6Prefix.
4089      */
getExternalIpv6PrefixBytes()4090     public com.google.protobuf.ByteString getExternalIpv6PrefixBytes() {
4091       java.lang.Object ref = externalIpv6Prefix_;
4092       if (ref instanceof String) {
4093         com.google.protobuf.ByteString b =
4094             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4095         externalIpv6Prefix_ = b;
4096         return b;
4097       } else {
4098         return (com.google.protobuf.ByteString) ref;
4099       }
4100     }
4101     /**
4102      *
4103      *
4104      * <pre>
4105      * The external IPv6 address range that is owned by this subnetwork.
4106      * </pre>
4107      *
4108      * <code>optional string external_ipv6_prefix = 139299190;</code>
4109      *
4110      * @param value The externalIpv6Prefix to set.
4111      * @return This builder for chaining.
4112      */
setExternalIpv6Prefix(java.lang.String value)4113     public Builder setExternalIpv6Prefix(java.lang.String value) {
4114       if (value == null) {
4115         throw new NullPointerException();
4116       }
4117       externalIpv6Prefix_ = value;
4118       bitField0_ |= 0x00000008;
4119       onChanged();
4120       return this;
4121     }
4122     /**
4123      *
4124      *
4125      * <pre>
4126      * The external IPv6 address range that is owned by this subnetwork.
4127      * </pre>
4128      *
4129      * <code>optional string external_ipv6_prefix = 139299190;</code>
4130      *
4131      * @return This builder for chaining.
4132      */
clearExternalIpv6Prefix()4133     public Builder clearExternalIpv6Prefix() {
4134       externalIpv6Prefix_ = getDefaultInstance().getExternalIpv6Prefix();
4135       bitField0_ = (bitField0_ & ~0x00000008);
4136       onChanged();
4137       return this;
4138     }
4139     /**
4140      *
4141      *
4142      * <pre>
4143      * The external IPv6 address range that is owned by this subnetwork.
4144      * </pre>
4145      *
4146      * <code>optional string external_ipv6_prefix = 139299190;</code>
4147      *
4148      * @param value The bytes for externalIpv6Prefix to set.
4149      * @return This builder for chaining.
4150      */
setExternalIpv6PrefixBytes(com.google.protobuf.ByteString value)4151     public Builder setExternalIpv6PrefixBytes(com.google.protobuf.ByteString value) {
4152       if (value == null) {
4153         throw new NullPointerException();
4154       }
4155       checkByteStringIsUtf8(value);
4156       externalIpv6Prefix_ = value;
4157       bitField0_ |= 0x00000008;
4158       onChanged();
4159       return this;
4160     }
4161 
4162     private java.lang.Object fingerprint_ = "";
4163     /**
4164      *
4165      *
4166      * <pre>
4167      * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
4168      * </pre>
4169      *
4170      * <code>optional string fingerprint = 234678500;</code>
4171      *
4172      * @return Whether the fingerprint field is set.
4173      */
hasFingerprint()4174     public boolean hasFingerprint() {
4175       return ((bitField0_ & 0x00000010) != 0);
4176     }
4177     /**
4178      *
4179      *
4180      * <pre>
4181      * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
4182      * </pre>
4183      *
4184      * <code>optional string fingerprint = 234678500;</code>
4185      *
4186      * @return The fingerprint.
4187      */
getFingerprint()4188     public java.lang.String getFingerprint() {
4189       java.lang.Object ref = fingerprint_;
4190       if (!(ref instanceof java.lang.String)) {
4191         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4192         java.lang.String s = bs.toStringUtf8();
4193         fingerprint_ = s;
4194         return s;
4195       } else {
4196         return (java.lang.String) ref;
4197       }
4198     }
4199     /**
4200      *
4201      *
4202      * <pre>
4203      * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
4204      * </pre>
4205      *
4206      * <code>optional string fingerprint = 234678500;</code>
4207      *
4208      * @return The bytes for fingerprint.
4209      */
getFingerprintBytes()4210     public com.google.protobuf.ByteString getFingerprintBytes() {
4211       java.lang.Object ref = fingerprint_;
4212       if (ref instanceof String) {
4213         com.google.protobuf.ByteString b =
4214             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4215         fingerprint_ = b;
4216         return b;
4217       } else {
4218         return (com.google.protobuf.ByteString) ref;
4219       }
4220     }
4221     /**
4222      *
4223      *
4224      * <pre>
4225      * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
4226      * </pre>
4227      *
4228      * <code>optional string fingerprint = 234678500;</code>
4229      *
4230      * @param value The fingerprint to set.
4231      * @return This builder for chaining.
4232      */
setFingerprint(java.lang.String value)4233     public Builder setFingerprint(java.lang.String value) {
4234       if (value == null) {
4235         throw new NullPointerException();
4236       }
4237       fingerprint_ = value;
4238       bitField0_ |= 0x00000010;
4239       onChanged();
4240       return this;
4241     }
4242     /**
4243      *
4244      *
4245      * <pre>
4246      * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
4247      * </pre>
4248      *
4249      * <code>optional string fingerprint = 234678500;</code>
4250      *
4251      * @return This builder for chaining.
4252      */
clearFingerprint()4253     public Builder clearFingerprint() {
4254       fingerprint_ = getDefaultInstance().getFingerprint();
4255       bitField0_ = (bitField0_ & ~0x00000010);
4256       onChanged();
4257       return this;
4258     }
4259     /**
4260      *
4261      *
4262      * <pre>
4263      * Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.
4264      * </pre>
4265      *
4266      * <code>optional string fingerprint = 234678500;</code>
4267      *
4268      * @param value The bytes for fingerprint to set.
4269      * @return This builder for chaining.
4270      */
setFingerprintBytes(com.google.protobuf.ByteString value)4271     public Builder setFingerprintBytes(com.google.protobuf.ByteString value) {
4272       if (value == null) {
4273         throw new NullPointerException();
4274       }
4275       checkByteStringIsUtf8(value);
4276       fingerprint_ = value;
4277       bitField0_ |= 0x00000010;
4278       onChanged();
4279       return this;
4280     }
4281 
4282     private java.lang.Object gatewayAddress_ = "";
4283     /**
4284      *
4285      *
4286      * <pre>
4287      * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
4288      * </pre>
4289      *
4290      * <code>optional string gateway_address = 459867385;</code>
4291      *
4292      * @return Whether the gatewayAddress field is set.
4293      */
hasGatewayAddress()4294     public boolean hasGatewayAddress() {
4295       return ((bitField0_ & 0x00000020) != 0);
4296     }
4297     /**
4298      *
4299      *
4300      * <pre>
4301      * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
4302      * </pre>
4303      *
4304      * <code>optional string gateway_address = 459867385;</code>
4305      *
4306      * @return The gatewayAddress.
4307      */
getGatewayAddress()4308     public java.lang.String getGatewayAddress() {
4309       java.lang.Object ref = gatewayAddress_;
4310       if (!(ref instanceof java.lang.String)) {
4311         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4312         java.lang.String s = bs.toStringUtf8();
4313         gatewayAddress_ = s;
4314         return s;
4315       } else {
4316         return (java.lang.String) ref;
4317       }
4318     }
4319     /**
4320      *
4321      *
4322      * <pre>
4323      * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
4324      * </pre>
4325      *
4326      * <code>optional string gateway_address = 459867385;</code>
4327      *
4328      * @return The bytes for gatewayAddress.
4329      */
getGatewayAddressBytes()4330     public com.google.protobuf.ByteString getGatewayAddressBytes() {
4331       java.lang.Object ref = gatewayAddress_;
4332       if (ref instanceof String) {
4333         com.google.protobuf.ByteString b =
4334             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4335         gatewayAddress_ = b;
4336         return b;
4337       } else {
4338         return (com.google.protobuf.ByteString) ref;
4339       }
4340     }
4341     /**
4342      *
4343      *
4344      * <pre>
4345      * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
4346      * </pre>
4347      *
4348      * <code>optional string gateway_address = 459867385;</code>
4349      *
4350      * @param value The gatewayAddress to set.
4351      * @return This builder for chaining.
4352      */
setGatewayAddress(java.lang.String value)4353     public Builder setGatewayAddress(java.lang.String value) {
4354       if (value == null) {
4355         throw new NullPointerException();
4356       }
4357       gatewayAddress_ = value;
4358       bitField0_ |= 0x00000020;
4359       onChanged();
4360       return this;
4361     }
4362     /**
4363      *
4364      *
4365      * <pre>
4366      * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
4367      * </pre>
4368      *
4369      * <code>optional string gateway_address = 459867385;</code>
4370      *
4371      * @return This builder for chaining.
4372      */
clearGatewayAddress()4373     public Builder clearGatewayAddress() {
4374       gatewayAddress_ = getDefaultInstance().getGatewayAddress();
4375       bitField0_ = (bitField0_ & ~0x00000020);
4376       onChanged();
4377       return this;
4378     }
4379     /**
4380      *
4381      *
4382      * <pre>
4383      * [Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.
4384      * </pre>
4385      *
4386      * <code>optional string gateway_address = 459867385;</code>
4387      *
4388      * @param value The bytes for gatewayAddress to set.
4389      * @return This builder for chaining.
4390      */
setGatewayAddressBytes(com.google.protobuf.ByteString value)4391     public Builder setGatewayAddressBytes(com.google.protobuf.ByteString value) {
4392       if (value == null) {
4393         throw new NullPointerException();
4394       }
4395       checkByteStringIsUtf8(value);
4396       gatewayAddress_ = value;
4397       bitField0_ |= 0x00000020;
4398       onChanged();
4399       return this;
4400     }
4401 
4402     private long id_;
4403     /**
4404      *
4405      *
4406      * <pre>
4407      * [Output Only] The unique identifier for the resource. This identifier is defined by the server.
4408      * </pre>
4409      *
4410      * <code>optional uint64 id = 3355;</code>
4411      *
4412      * @return Whether the id field is set.
4413      */
4414     @java.lang.Override
hasId()4415     public boolean hasId() {
4416       return ((bitField0_ & 0x00000040) != 0);
4417     }
4418     /**
4419      *
4420      *
4421      * <pre>
4422      * [Output Only] The unique identifier for the resource. This identifier is defined by the server.
4423      * </pre>
4424      *
4425      * <code>optional uint64 id = 3355;</code>
4426      *
4427      * @return The id.
4428      */
4429     @java.lang.Override
getId()4430     public long getId() {
4431       return id_;
4432     }
4433     /**
4434      *
4435      *
4436      * <pre>
4437      * [Output Only] The unique identifier for the resource. This identifier is defined by the server.
4438      * </pre>
4439      *
4440      * <code>optional uint64 id = 3355;</code>
4441      *
4442      * @param value The id to set.
4443      * @return This builder for chaining.
4444      */
setId(long value)4445     public Builder setId(long value) {
4446 
4447       id_ = value;
4448       bitField0_ |= 0x00000040;
4449       onChanged();
4450       return this;
4451     }
4452     /**
4453      *
4454      *
4455      * <pre>
4456      * [Output Only] The unique identifier for the resource. This identifier is defined by the server.
4457      * </pre>
4458      *
4459      * <code>optional uint64 id = 3355;</code>
4460      *
4461      * @return This builder for chaining.
4462      */
clearId()4463     public Builder clearId() {
4464       bitField0_ = (bitField0_ & ~0x00000040);
4465       id_ = 0L;
4466       onChanged();
4467       return this;
4468     }
4469 
4470     private java.lang.Object internalIpv6Prefix_ = "";
4471     /**
4472      *
4473      *
4474      * <pre>
4475      * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
4476      * </pre>
4477      *
4478      * <code>optional string internal_ipv6_prefix = 506270056;</code>
4479      *
4480      * @return Whether the internalIpv6Prefix field is set.
4481      */
hasInternalIpv6Prefix()4482     public boolean hasInternalIpv6Prefix() {
4483       return ((bitField0_ & 0x00000080) != 0);
4484     }
4485     /**
4486      *
4487      *
4488      * <pre>
4489      * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
4490      * </pre>
4491      *
4492      * <code>optional string internal_ipv6_prefix = 506270056;</code>
4493      *
4494      * @return The internalIpv6Prefix.
4495      */
getInternalIpv6Prefix()4496     public java.lang.String getInternalIpv6Prefix() {
4497       java.lang.Object ref = internalIpv6Prefix_;
4498       if (!(ref instanceof java.lang.String)) {
4499         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4500         java.lang.String s = bs.toStringUtf8();
4501         internalIpv6Prefix_ = s;
4502         return s;
4503       } else {
4504         return (java.lang.String) ref;
4505       }
4506     }
4507     /**
4508      *
4509      *
4510      * <pre>
4511      * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
4512      * </pre>
4513      *
4514      * <code>optional string internal_ipv6_prefix = 506270056;</code>
4515      *
4516      * @return The bytes for internalIpv6Prefix.
4517      */
getInternalIpv6PrefixBytes()4518     public com.google.protobuf.ByteString getInternalIpv6PrefixBytes() {
4519       java.lang.Object ref = internalIpv6Prefix_;
4520       if (ref instanceof String) {
4521         com.google.protobuf.ByteString b =
4522             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4523         internalIpv6Prefix_ = b;
4524         return b;
4525       } else {
4526         return (com.google.protobuf.ByteString) ref;
4527       }
4528     }
4529     /**
4530      *
4531      *
4532      * <pre>
4533      * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
4534      * </pre>
4535      *
4536      * <code>optional string internal_ipv6_prefix = 506270056;</code>
4537      *
4538      * @param value The internalIpv6Prefix to set.
4539      * @return This builder for chaining.
4540      */
setInternalIpv6Prefix(java.lang.String value)4541     public Builder setInternalIpv6Prefix(java.lang.String value) {
4542       if (value == null) {
4543         throw new NullPointerException();
4544       }
4545       internalIpv6Prefix_ = value;
4546       bitField0_ |= 0x00000080;
4547       onChanged();
4548       return this;
4549     }
4550     /**
4551      *
4552      *
4553      * <pre>
4554      * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
4555      * </pre>
4556      *
4557      * <code>optional string internal_ipv6_prefix = 506270056;</code>
4558      *
4559      * @return This builder for chaining.
4560      */
clearInternalIpv6Prefix()4561     public Builder clearInternalIpv6Prefix() {
4562       internalIpv6Prefix_ = getDefaultInstance().getInternalIpv6Prefix();
4563       bitField0_ = (bitField0_ & ~0x00000080);
4564       onChanged();
4565       return this;
4566     }
4567     /**
4568      *
4569      *
4570      * <pre>
4571      * [Output Only] The internal IPv6 address range that is assigned to this subnetwork.
4572      * </pre>
4573      *
4574      * <code>optional string internal_ipv6_prefix = 506270056;</code>
4575      *
4576      * @param value The bytes for internalIpv6Prefix to set.
4577      * @return This builder for chaining.
4578      */
setInternalIpv6PrefixBytes(com.google.protobuf.ByteString value)4579     public Builder setInternalIpv6PrefixBytes(com.google.protobuf.ByteString value) {
4580       if (value == null) {
4581         throw new NullPointerException();
4582       }
4583       checkByteStringIsUtf8(value);
4584       internalIpv6Prefix_ = value;
4585       bitField0_ |= 0x00000080;
4586       onChanged();
4587       return this;
4588     }
4589 
4590     private java.lang.Object ipCidrRange_ = "";
4591     /**
4592      *
4593      *
4594      * <pre>
4595      * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
4596      * </pre>
4597      *
4598      * <code>optional string ip_cidr_range = 98117322;</code>
4599      *
4600      * @return Whether the ipCidrRange field is set.
4601      */
hasIpCidrRange()4602     public boolean hasIpCidrRange() {
4603       return ((bitField0_ & 0x00000100) != 0);
4604     }
4605     /**
4606      *
4607      *
4608      * <pre>
4609      * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
4610      * </pre>
4611      *
4612      * <code>optional string ip_cidr_range = 98117322;</code>
4613      *
4614      * @return The ipCidrRange.
4615      */
getIpCidrRange()4616     public java.lang.String getIpCidrRange() {
4617       java.lang.Object ref = ipCidrRange_;
4618       if (!(ref instanceof java.lang.String)) {
4619         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4620         java.lang.String s = bs.toStringUtf8();
4621         ipCidrRange_ = s;
4622         return s;
4623       } else {
4624         return (java.lang.String) ref;
4625       }
4626     }
4627     /**
4628      *
4629      *
4630      * <pre>
4631      * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
4632      * </pre>
4633      *
4634      * <code>optional string ip_cidr_range = 98117322;</code>
4635      *
4636      * @return The bytes for ipCidrRange.
4637      */
getIpCidrRangeBytes()4638     public com.google.protobuf.ByteString getIpCidrRangeBytes() {
4639       java.lang.Object ref = ipCidrRange_;
4640       if (ref instanceof String) {
4641         com.google.protobuf.ByteString b =
4642             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4643         ipCidrRange_ = b;
4644         return b;
4645       } else {
4646         return (com.google.protobuf.ByteString) ref;
4647       }
4648     }
4649     /**
4650      *
4651      *
4652      * <pre>
4653      * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
4654      * </pre>
4655      *
4656      * <code>optional string ip_cidr_range = 98117322;</code>
4657      *
4658      * @param value The ipCidrRange to set.
4659      * @return This builder for chaining.
4660      */
setIpCidrRange(java.lang.String value)4661     public Builder setIpCidrRange(java.lang.String value) {
4662       if (value == null) {
4663         throw new NullPointerException();
4664       }
4665       ipCidrRange_ = value;
4666       bitField0_ |= 0x00000100;
4667       onChanged();
4668       return this;
4669     }
4670     /**
4671      *
4672      *
4673      * <pre>
4674      * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
4675      * </pre>
4676      *
4677      * <code>optional string ip_cidr_range = 98117322;</code>
4678      *
4679      * @return This builder for chaining.
4680      */
clearIpCidrRange()4681     public Builder clearIpCidrRange() {
4682       ipCidrRange_ = getDefaultInstance().getIpCidrRange();
4683       bitField0_ = (bitField0_ & ~0x00000100);
4684       onChanged();
4685       return this;
4686     }
4687     /**
4688      *
4689      *
4690      * <pre>
4691      * The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.
4692      * </pre>
4693      *
4694      * <code>optional string ip_cidr_range = 98117322;</code>
4695      *
4696      * @param value The bytes for ipCidrRange to set.
4697      * @return This builder for chaining.
4698      */
setIpCidrRangeBytes(com.google.protobuf.ByteString value)4699     public Builder setIpCidrRangeBytes(com.google.protobuf.ByteString value) {
4700       if (value == null) {
4701         throw new NullPointerException();
4702       }
4703       checkByteStringIsUtf8(value);
4704       ipCidrRange_ = value;
4705       bitField0_ |= 0x00000100;
4706       onChanged();
4707       return this;
4708     }
4709 
4710     private java.lang.Object ipv6AccessType_ = "";
4711     /**
4712      *
4713      *
4714      * <pre>
4715      * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
4716      * Check the Ipv6AccessType enum for the list of possible values.
4717      * </pre>
4718      *
4719      * <code>optional string ipv6_access_type = 504658653;</code>
4720      *
4721      * @return Whether the ipv6AccessType field is set.
4722      */
hasIpv6AccessType()4723     public boolean hasIpv6AccessType() {
4724       return ((bitField0_ & 0x00000200) != 0);
4725     }
4726     /**
4727      *
4728      *
4729      * <pre>
4730      * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
4731      * Check the Ipv6AccessType enum for the list of possible values.
4732      * </pre>
4733      *
4734      * <code>optional string ipv6_access_type = 504658653;</code>
4735      *
4736      * @return The ipv6AccessType.
4737      */
getIpv6AccessType()4738     public java.lang.String getIpv6AccessType() {
4739       java.lang.Object ref = ipv6AccessType_;
4740       if (!(ref instanceof java.lang.String)) {
4741         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4742         java.lang.String s = bs.toStringUtf8();
4743         ipv6AccessType_ = s;
4744         return s;
4745       } else {
4746         return (java.lang.String) ref;
4747       }
4748     }
4749     /**
4750      *
4751      *
4752      * <pre>
4753      * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
4754      * Check the Ipv6AccessType enum for the list of possible values.
4755      * </pre>
4756      *
4757      * <code>optional string ipv6_access_type = 504658653;</code>
4758      *
4759      * @return The bytes for ipv6AccessType.
4760      */
getIpv6AccessTypeBytes()4761     public com.google.protobuf.ByteString getIpv6AccessTypeBytes() {
4762       java.lang.Object ref = ipv6AccessType_;
4763       if (ref instanceof String) {
4764         com.google.protobuf.ByteString b =
4765             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4766         ipv6AccessType_ = b;
4767         return b;
4768       } else {
4769         return (com.google.protobuf.ByteString) ref;
4770       }
4771     }
4772     /**
4773      *
4774      *
4775      * <pre>
4776      * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
4777      * Check the Ipv6AccessType enum for the list of possible values.
4778      * </pre>
4779      *
4780      * <code>optional string ipv6_access_type = 504658653;</code>
4781      *
4782      * @param value The ipv6AccessType to set.
4783      * @return This builder for chaining.
4784      */
setIpv6AccessType(java.lang.String value)4785     public Builder setIpv6AccessType(java.lang.String value) {
4786       if (value == null) {
4787         throw new NullPointerException();
4788       }
4789       ipv6AccessType_ = value;
4790       bitField0_ |= 0x00000200;
4791       onChanged();
4792       return this;
4793     }
4794     /**
4795      *
4796      *
4797      * <pre>
4798      * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
4799      * Check the Ipv6AccessType enum for the list of possible values.
4800      * </pre>
4801      *
4802      * <code>optional string ipv6_access_type = 504658653;</code>
4803      *
4804      * @return This builder for chaining.
4805      */
clearIpv6AccessType()4806     public Builder clearIpv6AccessType() {
4807       ipv6AccessType_ = getDefaultInstance().getIpv6AccessType();
4808       bitField0_ = (bitField0_ & ~0x00000200);
4809       onChanged();
4810       return this;
4811     }
4812     /**
4813      *
4814      *
4815      * <pre>
4816      * The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.
4817      * Check the Ipv6AccessType enum for the list of possible values.
4818      * </pre>
4819      *
4820      * <code>optional string ipv6_access_type = 504658653;</code>
4821      *
4822      * @param value The bytes for ipv6AccessType to set.
4823      * @return This builder for chaining.
4824      */
setIpv6AccessTypeBytes(com.google.protobuf.ByteString value)4825     public Builder setIpv6AccessTypeBytes(com.google.protobuf.ByteString value) {
4826       if (value == null) {
4827         throw new NullPointerException();
4828       }
4829       checkByteStringIsUtf8(value);
4830       ipv6AccessType_ = value;
4831       bitField0_ |= 0x00000200;
4832       onChanged();
4833       return this;
4834     }
4835 
4836     private java.lang.Object ipv6CidrRange_ = "";
4837     /**
4838      *
4839      *
4840      * <pre>
4841      * [Output Only] This field is for internal use.
4842      * </pre>
4843      *
4844      * <code>optional string ipv6_cidr_range = 273141258;</code>
4845      *
4846      * @return Whether the ipv6CidrRange field is set.
4847      */
hasIpv6CidrRange()4848     public boolean hasIpv6CidrRange() {
4849       return ((bitField0_ & 0x00000400) != 0);
4850     }
4851     /**
4852      *
4853      *
4854      * <pre>
4855      * [Output Only] This field is for internal use.
4856      * </pre>
4857      *
4858      * <code>optional string ipv6_cidr_range = 273141258;</code>
4859      *
4860      * @return The ipv6CidrRange.
4861      */
getIpv6CidrRange()4862     public java.lang.String getIpv6CidrRange() {
4863       java.lang.Object ref = ipv6CidrRange_;
4864       if (!(ref instanceof java.lang.String)) {
4865         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4866         java.lang.String s = bs.toStringUtf8();
4867         ipv6CidrRange_ = s;
4868         return s;
4869       } else {
4870         return (java.lang.String) ref;
4871       }
4872     }
4873     /**
4874      *
4875      *
4876      * <pre>
4877      * [Output Only] This field is for internal use.
4878      * </pre>
4879      *
4880      * <code>optional string ipv6_cidr_range = 273141258;</code>
4881      *
4882      * @return The bytes for ipv6CidrRange.
4883      */
getIpv6CidrRangeBytes()4884     public com.google.protobuf.ByteString getIpv6CidrRangeBytes() {
4885       java.lang.Object ref = ipv6CidrRange_;
4886       if (ref instanceof String) {
4887         com.google.protobuf.ByteString b =
4888             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
4889         ipv6CidrRange_ = b;
4890         return b;
4891       } else {
4892         return (com.google.protobuf.ByteString) ref;
4893       }
4894     }
4895     /**
4896      *
4897      *
4898      * <pre>
4899      * [Output Only] This field is for internal use.
4900      * </pre>
4901      *
4902      * <code>optional string ipv6_cidr_range = 273141258;</code>
4903      *
4904      * @param value The ipv6CidrRange to set.
4905      * @return This builder for chaining.
4906      */
setIpv6CidrRange(java.lang.String value)4907     public Builder setIpv6CidrRange(java.lang.String value) {
4908       if (value == null) {
4909         throw new NullPointerException();
4910       }
4911       ipv6CidrRange_ = value;
4912       bitField0_ |= 0x00000400;
4913       onChanged();
4914       return this;
4915     }
4916     /**
4917      *
4918      *
4919      * <pre>
4920      * [Output Only] This field is for internal use.
4921      * </pre>
4922      *
4923      * <code>optional string ipv6_cidr_range = 273141258;</code>
4924      *
4925      * @return This builder for chaining.
4926      */
clearIpv6CidrRange()4927     public Builder clearIpv6CidrRange() {
4928       ipv6CidrRange_ = getDefaultInstance().getIpv6CidrRange();
4929       bitField0_ = (bitField0_ & ~0x00000400);
4930       onChanged();
4931       return this;
4932     }
4933     /**
4934      *
4935      *
4936      * <pre>
4937      * [Output Only] This field is for internal use.
4938      * </pre>
4939      *
4940      * <code>optional string ipv6_cidr_range = 273141258;</code>
4941      *
4942      * @param value The bytes for ipv6CidrRange to set.
4943      * @return This builder for chaining.
4944      */
setIpv6CidrRangeBytes(com.google.protobuf.ByteString value)4945     public Builder setIpv6CidrRangeBytes(com.google.protobuf.ByteString value) {
4946       if (value == null) {
4947         throw new NullPointerException();
4948       }
4949       checkByteStringIsUtf8(value);
4950       ipv6CidrRange_ = value;
4951       bitField0_ |= 0x00000400;
4952       onChanged();
4953       return this;
4954     }
4955 
4956     private java.lang.Object kind_ = "";
4957     /**
4958      *
4959      *
4960      * <pre>
4961      * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
4962      * </pre>
4963      *
4964      * <code>optional string kind = 3292052;</code>
4965      *
4966      * @return Whether the kind field is set.
4967      */
hasKind()4968     public boolean hasKind() {
4969       return ((bitField0_ & 0x00000800) != 0);
4970     }
4971     /**
4972      *
4973      *
4974      * <pre>
4975      * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
4976      * </pre>
4977      *
4978      * <code>optional string kind = 3292052;</code>
4979      *
4980      * @return The kind.
4981      */
getKind()4982     public java.lang.String getKind() {
4983       java.lang.Object ref = kind_;
4984       if (!(ref instanceof java.lang.String)) {
4985         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
4986         java.lang.String s = bs.toStringUtf8();
4987         kind_ = s;
4988         return s;
4989       } else {
4990         return (java.lang.String) ref;
4991       }
4992     }
4993     /**
4994      *
4995      *
4996      * <pre>
4997      * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
4998      * </pre>
4999      *
5000      * <code>optional string kind = 3292052;</code>
5001      *
5002      * @return The bytes for kind.
5003      */
getKindBytes()5004     public com.google.protobuf.ByteString getKindBytes() {
5005       java.lang.Object ref = kind_;
5006       if (ref instanceof String) {
5007         com.google.protobuf.ByteString b =
5008             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5009         kind_ = b;
5010         return b;
5011       } else {
5012         return (com.google.protobuf.ByteString) ref;
5013       }
5014     }
5015     /**
5016      *
5017      *
5018      * <pre>
5019      * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
5020      * </pre>
5021      *
5022      * <code>optional string kind = 3292052;</code>
5023      *
5024      * @param value The kind to set.
5025      * @return This builder for chaining.
5026      */
setKind(java.lang.String value)5027     public Builder setKind(java.lang.String value) {
5028       if (value == null) {
5029         throw new NullPointerException();
5030       }
5031       kind_ = value;
5032       bitField0_ |= 0x00000800;
5033       onChanged();
5034       return this;
5035     }
5036     /**
5037      *
5038      *
5039      * <pre>
5040      * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
5041      * </pre>
5042      *
5043      * <code>optional string kind = 3292052;</code>
5044      *
5045      * @return This builder for chaining.
5046      */
clearKind()5047     public Builder clearKind() {
5048       kind_ = getDefaultInstance().getKind();
5049       bitField0_ = (bitField0_ & ~0x00000800);
5050       onChanged();
5051       return this;
5052     }
5053     /**
5054      *
5055      *
5056      * <pre>
5057      * [Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.
5058      * </pre>
5059      *
5060      * <code>optional string kind = 3292052;</code>
5061      *
5062      * @param value The bytes for kind to set.
5063      * @return This builder for chaining.
5064      */
setKindBytes(com.google.protobuf.ByteString value)5065     public Builder setKindBytes(com.google.protobuf.ByteString value) {
5066       if (value == null) {
5067         throw new NullPointerException();
5068       }
5069       checkByteStringIsUtf8(value);
5070       kind_ = value;
5071       bitField0_ |= 0x00000800;
5072       onChanged();
5073       return this;
5074     }
5075 
5076     private com.google.cloud.compute.v1.SubnetworkLogConfig logConfig_;
5077     private com.google.protobuf.SingleFieldBuilderV3<
5078             com.google.cloud.compute.v1.SubnetworkLogConfig,
5079             com.google.cloud.compute.v1.SubnetworkLogConfig.Builder,
5080             com.google.cloud.compute.v1.SubnetworkLogConfigOrBuilder>
5081         logConfigBuilder_;
5082     /**
5083      *
5084      *
5085      * <pre>
5086      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5087      * </pre>
5088      *
5089      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5090      *
5091      * @return Whether the logConfig field is set.
5092      */
hasLogConfig()5093     public boolean hasLogConfig() {
5094       return ((bitField0_ & 0x00001000) != 0);
5095     }
5096     /**
5097      *
5098      *
5099      * <pre>
5100      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5101      * </pre>
5102      *
5103      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5104      *
5105      * @return The logConfig.
5106      */
getLogConfig()5107     public com.google.cloud.compute.v1.SubnetworkLogConfig getLogConfig() {
5108       if (logConfigBuilder_ == null) {
5109         return logConfig_ == null
5110             ? com.google.cloud.compute.v1.SubnetworkLogConfig.getDefaultInstance()
5111             : logConfig_;
5112       } else {
5113         return logConfigBuilder_.getMessage();
5114       }
5115     }
5116     /**
5117      *
5118      *
5119      * <pre>
5120      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5121      * </pre>
5122      *
5123      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5124      */
setLogConfig(com.google.cloud.compute.v1.SubnetworkLogConfig value)5125     public Builder setLogConfig(com.google.cloud.compute.v1.SubnetworkLogConfig value) {
5126       if (logConfigBuilder_ == null) {
5127         if (value == null) {
5128           throw new NullPointerException();
5129         }
5130         logConfig_ = value;
5131       } else {
5132         logConfigBuilder_.setMessage(value);
5133       }
5134       bitField0_ |= 0x00001000;
5135       onChanged();
5136       return this;
5137     }
5138     /**
5139      *
5140      *
5141      * <pre>
5142      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5143      * </pre>
5144      *
5145      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5146      */
setLogConfig( com.google.cloud.compute.v1.SubnetworkLogConfig.Builder builderForValue)5147     public Builder setLogConfig(
5148         com.google.cloud.compute.v1.SubnetworkLogConfig.Builder builderForValue) {
5149       if (logConfigBuilder_ == null) {
5150         logConfig_ = builderForValue.build();
5151       } else {
5152         logConfigBuilder_.setMessage(builderForValue.build());
5153       }
5154       bitField0_ |= 0x00001000;
5155       onChanged();
5156       return this;
5157     }
5158     /**
5159      *
5160      *
5161      * <pre>
5162      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5163      * </pre>
5164      *
5165      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5166      */
mergeLogConfig(com.google.cloud.compute.v1.SubnetworkLogConfig value)5167     public Builder mergeLogConfig(com.google.cloud.compute.v1.SubnetworkLogConfig value) {
5168       if (logConfigBuilder_ == null) {
5169         if (((bitField0_ & 0x00001000) != 0)
5170             && logConfig_ != null
5171             && logConfig_ != com.google.cloud.compute.v1.SubnetworkLogConfig.getDefaultInstance()) {
5172           getLogConfigBuilder().mergeFrom(value);
5173         } else {
5174           logConfig_ = value;
5175         }
5176       } else {
5177         logConfigBuilder_.mergeFrom(value);
5178       }
5179       bitField0_ |= 0x00001000;
5180       onChanged();
5181       return this;
5182     }
5183     /**
5184      *
5185      *
5186      * <pre>
5187      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5188      * </pre>
5189      *
5190      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5191      */
clearLogConfig()5192     public Builder clearLogConfig() {
5193       bitField0_ = (bitField0_ & ~0x00001000);
5194       logConfig_ = null;
5195       if (logConfigBuilder_ != null) {
5196         logConfigBuilder_.dispose();
5197         logConfigBuilder_ = null;
5198       }
5199       onChanged();
5200       return this;
5201     }
5202     /**
5203      *
5204      *
5205      * <pre>
5206      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5207      * </pre>
5208      *
5209      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5210      */
getLogConfigBuilder()5211     public com.google.cloud.compute.v1.SubnetworkLogConfig.Builder getLogConfigBuilder() {
5212       bitField0_ |= 0x00001000;
5213       onChanged();
5214       return getLogConfigFieldBuilder().getBuilder();
5215     }
5216     /**
5217      *
5218      *
5219      * <pre>
5220      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5221      * </pre>
5222      *
5223      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5224      */
getLogConfigOrBuilder()5225     public com.google.cloud.compute.v1.SubnetworkLogConfigOrBuilder getLogConfigOrBuilder() {
5226       if (logConfigBuilder_ != null) {
5227         return logConfigBuilder_.getMessageOrBuilder();
5228       } else {
5229         return logConfig_ == null
5230             ? com.google.cloud.compute.v1.SubnetworkLogConfig.getDefaultInstance()
5231             : logConfig_;
5232       }
5233     }
5234     /**
5235      *
5236      *
5237      * <pre>
5238      * This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging.
5239      * </pre>
5240      *
5241      * <code>optional .google.cloud.compute.v1.SubnetworkLogConfig log_config = 351299741;</code>
5242      */
5243     private com.google.protobuf.SingleFieldBuilderV3<
5244             com.google.cloud.compute.v1.SubnetworkLogConfig,
5245             com.google.cloud.compute.v1.SubnetworkLogConfig.Builder,
5246             com.google.cloud.compute.v1.SubnetworkLogConfigOrBuilder>
getLogConfigFieldBuilder()5247         getLogConfigFieldBuilder() {
5248       if (logConfigBuilder_ == null) {
5249         logConfigBuilder_ =
5250             new com.google.protobuf.SingleFieldBuilderV3<
5251                 com.google.cloud.compute.v1.SubnetworkLogConfig,
5252                 com.google.cloud.compute.v1.SubnetworkLogConfig.Builder,
5253                 com.google.cloud.compute.v1.SubnetworkLogConfigOrBuilder>(
5254                 getLogConfig(), getParentForChildren(), isClean());
5255         logConfig_ = null;
5256       }
5257       return logConfigBuilder_;
5258     }
5259 
5260     private java.lang.Object name_ = "";
5261     /**
5262      *
5263      *
5264      * <pre>
5265      * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
5266      * </pre>
5267      *
5268      * <code>optional string name = 3373707;</code>
5269      *
5270      * @return Whether the name field is set.
5271      */
hasName()5272     public boolean hasName() {
5273       return ((bitField0_ & 0x00002000) != 0);
5274     }
5275     /**
5276      *
5277      *
5278      * <pre>
5279      * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
5280      * </pre>
5281      *
5282      * <code>optional string name = 3373707;</code>
5283      *
5284      * @return The name.
5285      */
getName()5286     public java.lang.String getName() {
5287       java.lang.Object ref = name_;
5288       if (!(ref instanceof java.lang.String)) {
5289         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5290         java.lang.String s = bs.toStringUtf8();
5291         name_ = s;
5292         return s;
5293       } else {
5294         return (java.lang.String) ref;
5295       }
5296     }
5297     /**
5298      *
5299      *
5300      * <pre>
5301      * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
5302      * </pre>
5303      *
5304      * <code>optional string name = 3373707;</code>
5305      *
5306      * @return The bytes for name.
5307      */
getNameBytes()5308     public com.google.protobuf.ByteString getNameBytes() {
5309       java.lang.Object ref = name_;
5310       if (ref instanceof String) {
5311         com.google.protobuf.ByteString b =
5312             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5313         name_ = b;
5314         return b;
5315       } else {
5316         return (com.google.protobuf.ByteString) ref;
5317       }
5318     }
5319     /**
5320      *
5321      *
5322      * <pre>
5323      * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
5324      * </pre>
5325      *
5326      * <code>optional string name = 3373707;</code>
5327      *
5328      * @param value The name to set.
5329      * @return This builder for chaining.
5330      */
setName(java.lang.String value)5331     public Builder setName(java.lang.String value) {
5332       if (value == null) {
5333         throw new NullPointerException();
5334       }
5335       name_ = value;
5336       bitField0_ |= 0x00002000;
5337       onChanged();
5338       return this;
5339     }
5340     /**
5341      *
5342      *
5343      * <pre>
5344      * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
5345      * </pre>
5346      *
5347      * <code>optional string name = 3373707;</code>
5348      *
5349      * @return This builder for chaining.
5350      */
clearName()5351     public Builder clearName() {
5352       name_ = getDefaultInstance().getName();
5353       bitField0_ = (bitField0_ & ~0x00002000);
5354       onChanged();
5355       return this;
5356     }
5357     /**
5358      *
5359      *
5360      * <pre>
5361      * The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
5362      * </pre>
5363      *
5364      * <code>optional string name = 3373707;</code>
5365      *
5366      * @param value The bytes for name to set.
5367      * @return This builder for chaining.
5368      */
setNameBytes(com.google.protobuf.ByteString value)5369     public Builder setNameBytes(com.google.protobuf.ByteString value) {
5370       if (value == null) {
5371         throw new NullPointerException();
5372       }
5373       checkByteStringIsUtf8(value);
5374       name_ = value;
5375       bitField0_ |= 0x00002000;
5376       onChanged();
5377       return this;
5378     }
5379 
5380     private java.lang.Object network_ = "";
5381     /**
5382      *
5383      *
5384      * <pre>
5385      * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
5386      * </pre>
5387      *
5388      * <code>optional string network = 232872494;</code>
5389      *
5390      * @return Whether the network field is set.
5391      */
hasNetwork()5392     public boolean hasNetwork() {
5393       return ((bitField0_ & 0x00004000) != 0);
5394     }
5395     /**
5396      *
5397      *
5398      * <pre>
5399      * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
5400      * </pre>
5401      *
5402      * <code>optional string network = 232872494;</code>
5403      *
5404      * @return The network.
5405      */
getNetwork()5406     public java.lang.String getNetwork() {
5407       java.lang.Object ref = network_;
5408       if (!(ref instanceof java.lang.String)) {
5409         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5410         java.lang.String s = bs.toStringUtf8();
5411         network_ = s;
5412         return s;
5413       } else {
5414         return (java.lang.String) ref;
5415       }
5416     }
5417     /**
5418      *
5419      *
5420      * <pre>
5421      * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
5422      * </pre>
5423      *
5424      * <code>optional string network = 232872494;</code>
5425      *
5426      * @return The bytes for network.
5427      */
getNetworkBytes()5428     public com.google.protobuf.ByteString getNetworkBytes() {
5429       java.lang.Object ref = network_;
5430       if (ref instanceof String) {
5431         com.google.protobuf.ByteString b =
5432             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5433         network_ = b;
5434         return b;
5435       } else {
5436         return (com.google.protobuf.ByteString) ref;
5437       }
5438     }
5439     /**
5440      *
5441      *
5442      * <pre>
5443      * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
5444      * </pre>
5445      *
5446      * <code>optional string network = 232872494;</code>
5447      *
5448      * @param value The network to set.
5449      * @return This builder for chaining.
5450      */
setNetwork(java.lang.String value)5451     public Builder setNetwork(java.lang.String value) {
5452       if (value == null) {
5453         throw new NullPointerException();
5454       }
5455       network_ = value;
5456       bitField0_ |= 0x00004000;
5457       onChanged();
5458       return this;
5459     }
5460     /**
5461      *
5462      *
5463      * <pre>
5464      * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
5465      * </pre>
5466      *
5467      * <code>optional string network = 232872494;</code>
5468      *
5469      * @return This builder for chaining.
5470      */
clearNetwork()5471     public Builder clearNetwork() {
5472       network_ = getDefaultInstance().getNetwork();
5473       bitField0_ = (bitField0_ & ~0x00004000);
5474       onChanged();
5475       return this;
5476     }
5477     /**
5478      *
5479      *
5480      * <pre>
5481      * The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.
5482      * </pre>
5483      *
5484      * <code>optional string network = 232872494;</code>
5485      *
5486      * @param value The bytes for network to set.
5487      * @return This builder for chaining.
5488      */
setNetworkBytes(com.google.protobuf.ByteString value)5489     public Builder setNetworkBytes(com.google.protobuf.ByteString value) {
5490       if (value == null) {
5491         throw new NullPointerException();
5492       }
5493       checkByteStringIsUtf8(value);
5494       network_ = value;
5495       bitField0_ |= 0x00004000;
5496       onChanged();
5497       return this;
5498     }
5499 
5500     private boolean privateIpGoogleAccess_;
5501     /**
5502      *
5503      *
5504      * <pre>
5505      * Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
5506      * </pre>
5507      *
5508      * <code>optional bool private_ip_google_access = 421491790;</code>
5509      *
5510      * @return Whether the privateIpGoogleAccess field is set.
5511      */
5512     @java.lang.Override
hasPrivateIpGoogleAccess()5513     public boolean hasPrivateIpGoogleAccess() {
5514       return ((bitField0_ & 0x00008000) != 0);
5515     }
5516     /**
5517      *
5518      *
5519      * <pre>
5520      * Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
5521      * </pre>
5522      *
5523      * <code>optional bool private_ip_google_access = 421491790;</code>
5524      *
5525      * @return The privateIpGoogleAccess.
5526      */
5527     @java.lang.Override
getPrivateIpGoogleAccess()5528     public boolean getPrivateIpGoogleAccess() {
5529       return privateIpGoogleAccess_;
5530     }
5531     /**
5532      *
5533      *
5534      * <pre>
5535      * Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
5536      * </pre>
5537      *
5538      * <code>optional bool private_ip_google_access = 421491790;</code>
5539      *
5540      * @param value The privateIpGoogleAccess to set.
5541      * @return This builder for chaining.
5542      */
setPrivateIpGoogleAccess(boolean value)5543     public Builder setPrivateIpGoogleAccess(boolean value) {
5544 
5545       privateIpGoogleAccess_ = value;
5546       bitField0_ |= 0x00008000;
5547       onChanged();
5548       return this;
5549     }
5550     /**
5551      *
5552      *
5553      * <pre>
5554      * Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
5555      * </pre>
5556      *
5557      * <code>optional bool private_ip_google_access = 421491790;</code>
5558      *
5559      * @return This builder for chaining.
5560      */
clearPrivateIpGoogleAccess()5561     public Builder clearPrivateIpGoogleAccess() {
5562       bitField0_ = (bitField0_ & ~0x00008000);
5563       privateIpGoogleAccess_ = false;
5564       onChanged();
5565       return this;
5566     }
5567 
5568     private java.lang.Object privateIpv6GoogleAccess_ = "";
5569     /**
5570      *
5571      *
5572      * <pre>
5573      * This field is for internal use. This field can be both set at resource creation time and updated using patch.
5574      * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
5575      * </pre>
5576      *
5577      * <code>optional string private_ipv6_google_access = 48277006;</code>
5578      *
5579      * @return Whether the privateIpv6GoogleAccess field is set.
5580      */
hasPrivateIpv6GoogleAccess()5581     public boolean hasPrivateIpv6GoogleAccess() {
5582       return ((bitField0_ & 0x00010000) != 0);
5583     }
5584     /**
5585      *
5586      *
5587      * <pre>
5588      * This field is for internal use. This field can be both set at resource creation time and updated using patch.
5589      * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
5590      * </pre>
5591      *
5592      * <code>optional string private_ipv6_google_access = 48277006;</code>
5593      *
5594      * @return The privateIpv6GoogleAccess.
5595      */
getPrivateIpv6GoogleAccess()5596     public java.lang.String getPrivateIpv6GoogleAccess() {
5597       java.lang.Object ref = privateIpv6GoogleAccess_;
5598       if (!(ref instanceof java.lang.String)) {
5599         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5600         java.lang.String s = bs.toStringUtf8();
5601         privateIpv6GoogleAccess_ = s;
5602         return s;
5603       } else {
5604         return (java.lang.String) ref;
5605       }
5606     }
5607     /**
5608      *
5609      *
5610      * <pre>
5611      * This field is for internal use. This field can be both set at resource creation time and updated using patch.
5612      * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
5613      * </pre>
5614      *
5615      * <code>optional string private_ipv6_google_access = 48277006;</code>
5616      *
5617      * @return The bytes for privateIpv6GoogleAccess.
5618      */
getPrivateIpv6GoogleAccessBytes()5619     public com.google.protobuf.ByteString getPrivateIpv6GoogleAccessBytes() {
5620       java.lang.Object ref = privateIpv6GoogleAccess_;
5621       if (ref instanceof String) {
5622         com.google.protobuf.ByteString b =
5623             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5624         privateIpv6GoogleAccess_ = b;
5625         return b;
5626       } else {
5627         return (com.google.protobuf.ByteString) ref;
5628       }
5629     }
5630     /**
5631      *
5632      *
5633      * <pre>
5634      * This field is for internal use. This field can be both set at resource creation time and updated using patch.
5635      * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
5636      * </pre>
5637      *
5638      * <code>optional string private_ipv6_google_access = 48277006;</code>
5639      *
5640      * @param value The privateIpv6GoogleAccess to set.
5641      * @return This builder for chaining.
5642      */
setPrivateIpv6GoogleAccess(java.lang.String value)5643     public Builder setPrivateIpv6GoogleAccess(java.lang.String value) {
5644       if (value == null) {
5645         throw new NullPointerException();
5646       }
5647       privateIpv6GoogleAccess_ = value;
5648       bitField0_ |= 0x00010000;
5649       onChanged();
5650       return this;
5651     }
5652     /**
5653      *
5654      *
5655      * <pre>
5656      * This field is for internal use. This field can be both set at resource creation time and updated using patch.
5657      * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
5658      * </pre>
5659      *
5660      * <code>optional string private_ipv6_google_access = 48277006;</code>
5661      *
5662      * @return This builder for chaining.
5663      */
clearPrivateIpv6GoogleAccess()5664     public Builder clearPrivateIpv6GoogleAccess() {
5665       privateIpv6GoogleAccess_ = getDefaultInstance().getPrivateIpv6GoogleAccess();
5666       bitField0_ = (bitField0_ & ~0x00010000);
5667       onChanged();
5668       return this;
5669     }
5670     /**
5671      *
5672      *
5673      * <pre>
5674      * This field is for internal use. This field can be both set at resource creation time and updated using patch.
5675      * Check the PrivateIpv6GoogleAccess enum for the list of possible values.
5676      * </pre>
5677      *
5678      * <code>optional string private_ipv6_google_access = 48277006;</code>
5679      *
5680      * @param value The bytes for privateIpv6GoogleAccess to set.
5681      * @return This builder for chaining.
5682      */
setPrivateIpv6GoogleAccessBytes(com.google.protobuf.ByteString value)5683     public Builder setPrivateIpv6GoogleAccessBytes(com.google.protobuf.ByteString value) {
5684       if (value == null) {
5685         throw new NullPointerException();
5686       }
5687       checkByteStringIsUtf8(value);
5688       privateIpv6GoogleAccess_ = value;
5689       bitField0_ |= 0x00010000;
5690       onChanged();
5691       return this;
5692     }
5693 
5694     private java.lang.Object purpose_ = "";
5695     /**
5696      *
5697      *
5698      * <pre>
5699      * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
5700      * Check the Purpose enum for the list of possible values.
5701      * </pre>
5702      *
5703      * <code>optional string purpose = 316407070;</code>
5704      *
5705      * @return Whether the purpose field is set.
5706      */
hasPurpose()5707     public boolean hasPurpose() {
5708       return ((bitField0_ & 0x00020000) != 0);
5709     }
5710     /**
5711      *
5712      *
5713      * <pre>
5714      * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
5715      * Check the Purpose enum for the list of possible values.
5716      * </pre>
5717      *
5718      * <code>optional string purpose = 316407070;</code>
5719      *
5720      * @return The purpose.
5721      */
getPurpose()5722     public java.lang.String getPurpose() {
5723       java.lang.Object ref = purpose_;
5724       if (!(ref instanceof java.lang.String)) {
5725         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5726         java.lang.String s = bs.toStringUtf8();
5727         purpose_ = s;
5728         return s;
5729       } else {
5730         return (java.lang.String) ref;
5731       }
5732     }
5733     /**
5734      *
5735      *
5736      * <pre>
5737      * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
5738      * Check the Purpose enum for the list of possible values.
5739      * </pre>
5740      *
5741      * <code>optional string purpose = 316407070;</code>
5742      *
5743      * @return The bytes for purpose.
5744      */
getPurposeBytes()5745     public com.google.protobuf.ByteString getPurposeBytes() {
5746       java.lang.Object ref = purpose_;
5747       if (ref instanceof String) {
5748         com.google.protobuf.ByteString b =
5749             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5750         purpose_ = b;
5751         return b;
5752       } else {
5753         return (com.google.protobuf.ByteString) ref;
5754       }
5755     }
5756     /**
5757      *
5758      *
5759      * <pre>
5760      * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
5761      * Check the Purpose enum for the list of possible values.
5762      * </pre>
5763      *
5764      * <code>optional string purpose = 316407070;</code>
5765      *
5766      * @param value The purpose to set.
5767      * @return This builder for chaining.
5768      */
setPurpose(java.lang.String value)5769     public Builder setPurpose(java.lang.String value) {
5770       if (value == null) {
5771         throw new NullPointerException();
5772       }
5773       purpose_ = value;
5774       bitField0_ |= 0x00020000;
5775       onChanged();
5776       return this;
5777     }
5778     /**
5779      *
5780      *
5781      * <pre>
5782      * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
5783      * Check the Purpose enum for the list of possible values.
5784      * </pre>
5785      *
5786      * <code>optional string purpose = 316407070;</code>
5787      *
5788      * @return This builder for chaining.
5789      */
clearPurpose()5790     public Builder clearPurpose() {
5791       purpose_ = getDefaultInstance().getPurpose();
5792       bitField0_ = (bitField0_ & ~0x00020000);
5793       onChanged();
5794       return this;
5795     }
5796     /**
5797      *
5798      *
5799      * <pre>
5800      * The purpose of the resource. This field can be either PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created subnetwork that is reserved for Internal HTTP(S) Load Balancing. If unspecified, the purpose defaults to PRIVATE_RFC_1918. The enableFlowLogs field isn't supported with the purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
5801      * Check the Purpose enum for the list of possible values.
5802      * </pre>
5803      *
5804      * <code>optional string purpose = 316407070;</code>
5805      *
5806      * @param value The bytes for purpose to set.
5807      * @return This builder for chaining.
5808      */
setPurposeBytes(com.google.protobuf.ByteString value)5809     public Builder setPurposeBytes(com.google.protobuf.ByteString value) {
5810       if (value == null) {
5811         throw new NullPointerException();
5812       }
5813       checkByteStringIsUtf8(value);
5814       purpose_ = value;
5815       bitField0_ |= 0x00020000;
5816       onChanged();
5817       return this;
5818     }
5819 
5820     private java.lang.Object region_ = "";
5821     /**
5822      *
5823      *
5824      * <pre>
5825      * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
5826      * </pre>
5827      *
5828      * <code>optional string region = 138946292;</code>
5829      *
5830      * @return Whether the region field is set.
5831      */
hasRegion()5832     public boolean hasRegion() {
5833       return ((bitField0_ & 0x00040000) != 0);
5834     }
5835     /**
5836      *
5837      *
5838      * <pre>
5839      * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
5840      * </pre>
5841      *
5842      * <code>optional string region = 138946292;</code>
5843      *
5844      * @return The region.
5845      */
getRegion()5846     public java.lang.String getRegion() {
5847       java.lang.Object ref = region_;
5848       if (!(ref instanceof java.lang.String)) {
5849         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5850         java.lang.String s = bs.toStringUtf8();
5851         region_ = s;
5852         return s;
5853       } else {
5854         return (java.lang.String) ref;
5855       }
5856     }
5857     /**
5858      *
5859      *
5860      * <pre>
5861      * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
5862      * </pre>
5863      *
5864      * <code>optional string region = 138946292;</code>
5865      *
5866      * @return The bytes for region.
5867      */
getRegionBytes()5868     public com.google.protobuf.ByteString getRegionBytes() {
5869       java.lang.Object ref = region_;
5870       if (ref instanceof String) {
5871         com.google.protobuf.ByteString b =
5872             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5873         region_ = b;
5874         return b;
5875       } else {
5876         return (com.google.protobuf.ByteString) ref;
5877       }
5878     }
5879     /**
5880      *
5881      *
5882      * <pre>
5883      * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
5884      * </pre>
5885      *
5886      * <code>optional string region = 138946292;</code>
5887      *
5888      * @param value The region to set.
5889      * @return This builder for chaining.
5890      */
setRegion(java.lang.String value)5891     public Builder setRegion(java.lang.String value) {
5892       if (value == null) {
5893         throw new NullPointerException();
5894       }
5895       region_ = value;
5896       bitField0_ |= 0x00040000;
5897       onChanged();
5898       return this;
5899     }
5900     /**
5901      *
5902      *
5903      * <pre>
5904      * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
5905      * </pre>
5906      *
5907      * <code>optional string region = 138946292;</code>
5908      *
5909      * @return This builder for chaining.
5910      */
clearRegion()5911     public Builder clearRegion() {
5912       region_ = getDefaultInstance().getRegion();
5913       bitField0_ = (bitField0_ & ~0x00040000);
5914       onChanged();
5915       return this;
5916     }
5917     /**
5918      *
5919      *
5920      * <pre>
5921      * URL of the region where the Subnetwork resides. This field can be set only at resource creation time.
5922      * </pre>
5923      *
5924      * <code>optional string region = 138946292;</code>
5925      *
5926      * @param value The bytes for region to set.
5927      * @return This builder for chaining.
5928      */
setRegionBytes(com.google.protobuf.ByteString value)5929     public Builder setRegionBytes(com.google.protobuf.ByteString value) {
5930       if (value == null) {
5931         throw new NullPointerException();
5932       }
5933       checkByteStringIsUtf8(value);
5934       region_ = value;
5935       bitField0_ |= 0x00040000;
5936       onChanged();
5937       return this;
5938     }
5939 
5940     private java.lang.Object role_ = "";
5941     /**
5942      *
5943      *
5944      * <pre>
5945      * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
5946      * Check the Role enum for the list of possible values.
5947      * </pre>
5948      *
5949      * <code>optional string role = 3506294;</code>
5950      *
5951      * @return Whether the role field is set.
5952      */
hasRole()5953     public boolean hasRole() {
5954       return ((bitField0_ & 0x00080000) != 0);
5955     }
5956     /**
5957      *
5958      *
5959      * <pre>
5960      * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
5961      * Check the Role enum for the list of possible values.
5962      * </pre>
5963      *
5964      * <code>optional string role = 3506294;</code>
5965      *
5966      * @return The role.
5967      */
getRole()5968     public java.lang.String getRole() {
5969       java.lang.Object ref = role_;
5970       if (!(ref instanceof java.lang.String)) {
5971         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
5972         java.lang.String s = bs.toStringUtf8();
5973         role_ = s;
5974         return s;
5975       } else {
5976         return (java.lang.String) ref;
5977       }
5978     }
5979     /**
5980      *
5981      *
5982      * <pre>
5983      * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
5984      * Check the Role enum for the list of possible values.
5985      * </pre>
5986      *
5987      * <code>optional string role = 3506294;</code>
5988      *
5989      * @return The bytes for role.
5990      */
getRoleBytes()5991     public com.google.protobuf.ByteString getRoleBytes() {
5992       java.lang.Object ref = role_;
5993       if (ref instanceof String) {
5994         com.google.protobuf.ByteString b =
5995             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
5996         role_ = b;
5997         return b;
5998       } else {
5999         return (com.google.protobuf.ByteString) ref;
6000       }
6001     }
6002     /**
6003      *
6004      *
6005      * <pre>
6006      * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
6007      * Check the Role enum for the list of possible values.
6008      * </pre>
6009      *
6010      * <code>optional string role = 3506294;</code>
6011      *
6012      * @param value The role to set.
6013      * @return This builder for chaining.
6014      */
setRole(java.lang.String value)6015     public Builder setRole(java.lang.String value) {
6016       if (value == null) {
6017         throw new NullPointerException();
6018       }
6019       role_ = value;
6020       bitField0_ |= 0x00080000;
6021       onChanged();
6022       return this;
6023     }
6024     /**
6025      *
6026      *
6027      * <pre>
6028      * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
6029      * Check the Role enum for the list of possible values.
6030      * </pre>
6031      *
6032      * <code>optional string role = 3506294;</code>
6033      *
6034      * @return This builder for chaining.
6035      */
clearRole()6036     public Builder clearRole() {
6037       role_ = getDefaultInstance().getRole();
6038       bitField0_ = (bitField0_ & ~0x00080000);
6039       onChanged();
6040       return this;
6041     }
6042     /**
6043      *
6044      *
6045      * <pre>
6046      * The role of subnetwork. Currently, this field is only used when purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.
6047      * Check the Role enum for the list of possible values.
6048      * </pre>
6049      *
6050      * <code>optional string role = 3506294;</code>
6051      *
6052      * @param value The bytes for role to set.
6053      * @return This builder for chaining.
6054      */
setRoleBytes(com.google.protobuf.ByteString value)6055     public Builder setRoleBytes(com.google.protobuf.ByteString value) {
6056       if (value == null) {
6057         throw new NullPointerException();
6058       }
6059       checkByteStringIsUtf8(value);
6060       role_ = value;
6061       bitField0_ |= 0x00080000;
6062       onChanged();
6063       return this;
6064     }
6065 
6066     private java.util.List<com.google.cloud.compute.v1.SubnetworkSecondaryRange>
6067         secondaryIpRanges_ = java.util.Collections.emptyList();
6068 
ensureSecondaryIpRangesIsMutable()6069     private void ensureSecondaryIpRangesIsMutable() {
6070       if (!((bitField0_ & 0x00100000) != 0)) {
6071         secondaryIpRanges_ =
6072             new java.util.ArrayList<com.google.cloud.compute.v1.SubnetworkSecondaryRange>(
6073                 secondaryIpRanges_);
6074         bitField0_ |= 0x00100000;
6075       }
6076     }
6077 
6078     private com.google.protobuf.RepeatedFieldBuilderV3<
6079             com.google.cloud.compute.v1.SubnetworkSecondaryRange,
6080             com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder,
6081             com.google.cloud.compute.v1.SubnetworkSecondaryRangeOrBuilder>
6082         secondaryIpRangesBuilder_;
6083 
6084     /**
6085      *
6086      *
6087      * <pre>
6088      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6089      * </pre>
6090      *
6091      * <code>
6092      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6093      * </code>
6094      */
6095     public java.util.List<com.google.cloud.compute.v1.SubnetworkSecondaryRange>
getSecondaryIpRangesList()6096         getSecondaryIpRangesList() {
6097       if (secondaryIpRangesBuilder_ == null) {
6098         return java.util.Collections.unmodifiableList(secondaryIpRanges_);
6099       } else {
6100         return secondaryIpRangesBuilder_.getMessageList();
6101       }
6102     }
6103     /**
6104      *
6105      *
6106      * <pre>
6107      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6108      * </pre>
6109      *
6110      * <code>
6111      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6112      * </code>
6113      */
getSecondaryIpRangesCount()6114     public int getSecondaryIpRangesCount() {
6115       if (secondaryIpRangesBuilder_ == null) {
6116         return secondaryIpRanges_.size();
6117       } else {
6118         return secondaryIpRangesBuilder_.getCount();
6119       }
6120     }
6121     /**
6122      *
6123      *
6124      * <pre>
6125      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6126      * </pre>
6127      *
6128      * <code>
6129      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6130      * </code>
6131      */
getSecondaryIpRanges(int index)6132     public com.google.cloud.compute.v1.SubnetworkSecondaryRange getSecondaryIpRanges(int index) {
6133       if (secondaryIpRangesBuilder_ == null) {
6134         return secondaryIpRanges_.get(index);
6135       } else {
6136         return secondaryIpRangesBuilder_.getMessage(index);
6137       }
6138     }
6139     /**
6140      *
6141      *
6142      * <pre>
6143      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6144      * </pre>
6145      *
6146      * <code>
6147      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6148      * </code>
6149      */
setSecondaryIpRanges( int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange value)6150     public Builder setSecondaryIpRanges(
6151         int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange value) {
6152       if (secondaryIpRangesBuilder_ == null) {
6153         if (value == null) {
6154           throw new NullPointerException();
6155         }
6156         ensureSecondaryIpRangesIsMutable();
6157         secondaryIpRanges_.set(index, value);
6158         onChanged();
6159       } else {
6160         secondaryIpRangesBuilder_.setMessage(index, value);
6161       }
6162       return this;
6163     }
6164     /**
6165      *
6166      *
6167      * <pre>
6168      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6169      * </pre>
6170      *
6171      * <code>
6172      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6173      * </code>
6174      */
setSecondaryIpRanges( int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder builderForValue)6175     public Builder setSecondaryIpRanges(
6176         int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder builderForValue) {
6177       if (secondaryIpRangesBuilder_ == null) {
6178         ensureSecondaryIpRangesIsMutable();
6179         secondaryIpRanges_.set(index, builderForValue.build());
6180         onChanged();
6181       } else {
6182         secondaryIpRangesBuilder_.setMessage(index, builderForValue.build());
6183       }
6184       return this;
6185     }
6186     /**
6187      *
6188      *
6189      * <pre>
6190      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6191      * </pre>
6192      *
6193      * <code>
6194      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6195      * </code>
6196      */
addSecondaryIpRanges( com.google.cloud.compute.v1.SubnetworkSecondaryRange value)6197     public Builder addSecondaryIpRanges(
6198         com.google.cloud.compute.v1.SubnetworkSecondaryRange value) {
6199       if (secondaryIpRangesBuilder_ == null) {
6200         if (value == null) {
6201           throw new NullPointerException();
6202         }
6203         ensureSecondaryIpRangesIsMutable();
6204         secondaryIpRanges_.add(value);
6205         onChanged();
6206       } else {
6207         secondaryIpRangesBuilder_.addMessage(value);
6208       }
6209       return this;
6210     }
6211     /**
6212      *
6213      *
6214      * <pre>
6215      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6216      * </pre>
6217      *
6218      * <code>
6219      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6220      * </code>
6221      */
addSecondaryIpRanges( int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange value)6222     public Builder addSecondaryIpRanges(
6223         int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange value) {
6224       if (secondaryIpRangesBuilder_ == null) {
6225         if (value == null) {
6226           throw new NullPointerException();
6227         }
6228         ensureSecondaryIpRangesIsMutable();
6229         secondaryIpRanges_.add(index, value);
6230         onChanged();
6231       } else {
6232         secondaryIpRangesBuilder_.addMessage(index, value);
6233       }
6234       return this;
6235     }
6236     /**
6237      *
6238      *
6239      * <pre>
6240      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6241      * </pre>
6242      *
6243      * <code>
6244      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6245      * </code>
6246      */
addSecondaryIpRanges( com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder builderForValue)6247     public Builder addSecondaryIpRanges(
6248         com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder builderForValue) {
6249       if (secondaryIpRangesBuilder_ == null) {
6250         ensureSecondaryIpRangesIsMutable();
6251         secondaryIpRanges_.add(builderForValue.build());
6252         onChanged();
6253       } else {
6254         secondaryIpRangesBuilder_.addMessage(builderForValue.build());
6255       }
6256       return this;
6257     }
6258     /**
6259      *
6260      *
6261      * <pre>
6262      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6263      * </pre>
6264      *
6265      * <code>
6266      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6267      * </code>
6268      */
addSecondaryIpRanges( int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder builderForValue)6269     public Builder addSecondaryIpRanges(
6270         int index, com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder builderForValue) {
6271       if (secondaryIpRangesBuilder_ == null) {
6272         ensureSecondaryIpRangesIsMutable();
6273         secondaryIpRanges_.add(index, builderForValue.build());
6274         onChanged();
6275       } else {
6276         secondaryIpRangesBuilder_.addMessage(index, builderForValue.build());
6277       }
6278       return this;
6279     }
6280     /**
6281      *
6282      *
6283      * <pre>
6284      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6285      * </pre>
6286      *
6287      * <code>
6288      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6289      * </code>
6290      */
addAllSecondaryIpRanges( java.lang.Iterable<? extends com.google.cloud.compute.v1.SubnetworkSecondaryRange> values)6291     public Builder addAllSecondaryIpRanges(
6292         java.lang.Iterable<? extends com.google.cloud.compute.v1.SubnetworkSecondaryRange> values) {
6293       if (secondaryIpRangesBuilder_ == null) {
6294         ensureSecondaryIpRangesIsMutable();
6295         com.google.protobuf.AbstractMessageLite.Builder.addAll(values, secondaryIpRanges_);
6296         onChanged();
6297       } else {
6298         secondaryIpRangesBuilder_.addAllMessages(values);
6299       }
6300       return this;
6301     }
6302     /**
6303      *
6304      *
6305      * <pre>
6306      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6307      * </pre>
6308      *
6309      * <code>
6310      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6311      * </code>
6312      */
clearSecondaryIpRanges()6313     public Builder clearSecondaryIpRanges() {
6314       if (secondaryIpRangesBuilder_ == null) {
6315         secondaryIpRanges_ = java.util.Collections.emptyList();
6316         bitField0_ = (bitField0_ & ~0x00100000);
6317         onChanged();
6318       } else {
6319         secondaryIpRangesBuilder_.clear();
6320       }
6321       return this;
6322     }
6323     /**
6324      *
6325      *
6326      * <pre>
6327      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6328      * </pre>
6329      *
6330      * <code>
6331      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6332      * </code>
6333      */
removeSecondaryIpRanges(int index)6334     public Builder removeSecondaryIpRanges(int index) {
6335       if (secondaryIpRangesBuilder_ == null) {
6336         ensureSecondaryIpRangesIsMutable();
6337         secondaryIpRanges_.remove(index);
6338         onChanged();
6339       } else {
6340         secondaryIpRangesBuilder_.remove(index);
6341       }
6342       return this;
6343     }
6344     /**
6345      *
6346      *
6347      * <pre>
6348      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6349      * </pre>
6350      *
6351      * <code>
6352      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6353      * </code>
6354      */
getSecondaryIpRangesBuilder( int index)6355     public com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder getSecondaryIpRangesBuilder(
6356         int index) {
6357       return getSecondaryIpRangesFieldBuilder().getBuilder(index);
6358     }
6359     /**
6360      *
6361      *
6362      * <pre>
6363      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6364      * </pre>
6365      *
6366      * <code>
6367      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6368      * </code>
6369      */
6370     public com.google.cloud.compute.v1.SubnetworkSecondaryRangeOrBuilder
getSecondaryIpRangesOrBuilder(int index)6371         getSecondaryIpRangesOrBuilder(int index) {
6372       if (secondaryIpRangesBuilder_ == null) {
6373         return secondaryIpRanges_.get(index);
6374       } else {
6375         return secondaryIpRangesBuilder_.getMessageOrBuilder(index);
6376       }
6377     }
6378     /**
6379      *
6380      *
6381      * <pre>
6382      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6383      * </pre>
6384      *
6385      * <code>
6386      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6387      * </code>
6388      */
6389     public java.util.List<? extends com.google.cloud.compute.v1.SubnetworkSecondaryRangeOrBuilder>
getSecondaryIpRangesOrBuilderList()6390         getSecondaryIpRangesOrBuilderList() {
6391       if (secondaryIpRangesBuilder_ != null) {
6392         return secondaryIpRangesBuilder_.getMessageOrBuilderList();
6393       } else {
6394         return java.util.Collections.unmodifiableList(secondaryIpRanges_);
6395       }
6396     }
6397     /**
6398      *
6399      *
6400      * <pre>
6401      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6402      * </pre>
6403      *
6404      * <code>
6405      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6406      * </code>
6407      */
6408     public com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder
addSecondaryIpRangesBuilder()6409         addSecondaryIpRangesBuilder() {
6410       return getSecondaryIpRangesFieldBuilder()
6411           .addBuilder(com.google.cloud.compute.v1.SubnetworkSecondaryRange.getDefaultInstance());
6412     }
6413     /**
6414      *
6415      *
6416      * <pre>
6417      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6418      * </pre>
6419      *
6420      * <code>
6421      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6422      * </code>
6423      */
addSecondaryIpRangesBuilder( int index)6424     public com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder addSecondaryIpRangesBuilder(
6425         int index) {
6426       return getSecondaryIpRangesFieldBuilder()
6427           .addBuilder(
6428               index, com.google.cloud.compute.v1.SubnetworkSecondaryRange.getDefaultInstance());
6429     }
6430     /**
6431      *
6432      *
6433      * <pre>
6434      * An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.
6435      * </pre>
6436      *
6437      * <code>
6438      * repeated .google.cloud.compute.v1.SubnetworkSecondaryRange secondary_ip_ranges = 136658915;
6439      * </code>
6440      */
6441     public java.util.List<com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder>
getSecondaryIpRangesBuilderList()6442         getSecondaryIpRangesBuilderList() {
6443       return getSecondaryIpRangesFieldBuilder().getBuilderList();
6444     }
6445 
6446     private com.google.protobuf.RepeatedFieldBuilderV3<
6447             com.google.cloud.compute.v1.SubnetworkSecondaryRange,
6448             com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder,
6449             com.google.cloud.compute.v1.SubnetworkSecondaryRangeOrBuilder>
getSecondaryIpRangesFieldBuilder()6450         getSecondaryIpRangesFieldBuilder() {
6451       if (secondaryIpRangesBuilder_ == null) {
6452         secondaryIpRangesBuilder_ =
6453             new com.google.protobuf.RepeatedFieldBuilderV3<
6454                 com.google.cloud.compute.v1.SubnetworkSecondaryRange,
6455                 com.google.cloud.compute.v1.SubnetworkSecondaryRange.Builder,
6456                 com.google.cloud.compute.v1.SubnetworkSecondaryRangeOrBuilder>(
6457                 secondaryIpRanges_,
6458                 ((bitField0_ & 0x00100000) != 0),
6459                 getParentForChildren(),
6460                 isClean());
6461         secondaryIpRanges_ = null;
6462       }
6463       return secondaryIpRangesBuilder_;
6464     }
6465 
6466     private java.lang.Object selfLink_ = "";
6467     /**
6468      *
6469      *
6470      * <pre>
6471      * [Output Only] Server-defined URL for the resource.
6472      * </pre>
6473      *
6474      * <code>optional string self_link = 456214797;</code>
6475      *
6476      * @return Whether the selfLink field is set.
6477      */
hasSelfLink()6478     public boolean hasSelfLink() {
6479       return ((bitField0_ & 0x00200000) != 0);
6480     }
6481     /**
6482      *
6483      *
6484      * <pre>
6485      * [Output Only] Server-defined URL for the resource.
6486      * </pre>
6487      *
6488      * <code>optional string self_link = 456214797;</code>
6489      *
6490      * @return The selfLink.
6491      */
getSelfLink()6492     public java.lang.String getSelfLink() {
6493       java.lang.Object ref = selfLink_;
6494       if (!(ref instanceof java.lang.String)) {
6495         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
6496         java.lang.String s = bs.toStringUtf8();
6497         selfLink_ = s;
6498         return s;
6499       } else {
6500         return (java.lang.String) ref;
6501       }
6502     }
6503     /**
6504      *
6505      *
6506      * <pre>
6507      * [Output Only] Server-defined URL for the resource.
6508      * </pre>
6509      *
6510      * <code>optional string self_link = 456214797;</code>
6511      *
6512      * @return The bytes for selfLink.
6513      */
getSelfLinkBytes()6514     public com.google.protobuf.ByteString getSelfLinkBytes() {
6515       java.lang.Object ref = selfLink_;
6516       if (ref instanceof String) {
6517         com.google.protobuf.ByteString b =
6518             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
6519         selfLink_ = b;
6520         return b;
6521       } else {
6522         return (com.google.protobuf.ByteString) ref;
6523       }
6524     }
6525     /**
6526      *
6527      *
6528      * <pre>
6529      * [Output Only] Server-defined URL for the resource.
6530      * </pre>
6531      *
6532      * <code>optional string self_link = 456214797;</code>
6533      *
6534      * @param value The selfLink to set.
6535      * @return This builder for chaining.
6536      */
setSelfLink(java.lang.String value)6537     public Builder setSelfLink(java.lang.String value) {
6538       if (value == null) {
6539         throw new NullPointerException();
6540       }
6541       selfLink_ = value;
6542       bitField0_ |= 0x00200000;
6543       onChanged();
6544       return this;
6545     }
6546     /**
6547      *
6548      *
6549      * <pre>
6550      * [Output Only] Server-defined URL for the resource.
6551      * </pre>
6552      *
6553      * <code>optional string self_link = 456214797;</code>
6554      *
6555      * @return This builder for chaining.
6556      */
clearSelfLink()6557     public Builder clearSelfLink() {
6558       selfLink_ = getDefaultInstance().getSelfLink();
6559       bitField0_ = (bitField0_ & ~0x00200000);
6560       onChanged();
6561       return this;
6562     }
6563     /**
6564      *
6565      *
6566      * <pre>
6567      * [Output Only] Server-defined URL for the resource.
6568      * </pre>
6569      *
6570      * <code>optional string self_link = 456214797;</code>
6571      *
6572      * @param value The bytes for selfLink to set.
6573      * @return This builder for chaining.
6574      */
setSelfLinkBytes(com.google.protobuf.ByteString value)6575     public Builder setSelfLinkBytes(com.google.protobuf.ByteString value) {
6576       if (value == null) {
6577         throw new NullPointerException();
6578       }
6579       checkByteStringIsUtf8(value);
6580       selfLink_ = value;
6581       bitField0_ |= 0x00200000;
6582       onChanged();
6583       return this;
6584     }
6585 
6586     private java.lang.Object stackType_ = "";
6587     /**
6588      *
6589      *
6590      * <pre>
6591      * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
6592      * Check the StackType enum for the list of possible values.
6593      * </pre>
6594      *
6595      * <code>optional string stack_type = 425908881;</code>
6596      *
6597      * @return Whether the stackType field is set.
6598      */
hasStackType()6599     public boolean hasStackType() {
6600       return ((bitField0_ & 0x00400000) != 0);
6601     }
6602     /**
6603      *
6604      *
6605      * <pre>
6606      * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
6607      * Check the StackType enum for the list of possible values.
6608      * </pre>
6609      *
6610      * <code>optional string stack_type = 425908881;</code>
6611      *
6612      * @return The stackType.
6613      */
getStackType()6614     public java.lang.String getStackType() {
6615       java.lang.Object ref = stackType_;
6616       if (!(ref instanceof java.lang.String)) {
6617         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
6618         java.lang.String s = bs.toStringUtf8();
6619         stackType_ = s;
6620         return s;
6621       } else {
6622         return (java.lang.String) ref;
6623       }
6624     }
6625     /**
6626      *
6627      *
6628      * <pre>
6629      * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
6630      * Check the StackType enum for the list of possible values.
6631      * </pre>
6632      *
6633      * <code>optional string stack_type = 425908881;</code>
6634      *
6635      * @return The bytes for stackType.
6636      */
getStackTypeBytes()6637     public com.google.protobuf.ByteString getStackTypeBytes() {
6638       java.lang.Object ref = stackType_;
6639       if (ref instanceof String) {
6640         com.google.protobuf.ByteString b =
6641             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
6642         stackType_ = b;
6643         return b;
6644       } else {
6645         return (com.google.protobuf.ByteString) ref;
6646       }
6647     }
6648     /**
6649      *
6650      *
6651      * <pre>
6652      * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
6653      * Check the StackType enum for the list of possible values.
6654      * </pre>
6655      *
6656      * <code>optional string stack_type = 425908881;</code>
6657      *
6658      * @param value The stackType to set.
6659      * @return This builder for chaining.
6660      */
setStackType(java.lang.String value)6661     public Builder setStackType(java.lang.String value) {
6662       if (value == null) {
6663         throw new NullPointerException();
6664       }
6665       stackType_ = value;
6666       bitField0_ |= 0x00400000;
6667       onChanged();
6668       return this;
6669     }
6670     /**
6671      *
6672      *
6673      * <pre>
6674      * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
6675      * Check the StackType enum for the list of possible values.
6676      * </pre>
6677      *
6678      * <code>optional string stack_type = 425908881;</code>
6679      *
6680      * @return This builder for chaining.
6681      */
clearStackType()6682     public Builder clearStackType() {
6683       stackType_ = getDefaultInstance().getStackType();
6684       bitField0_ = (bitField0_ & ~0x00400000);
6685       onChanged();
6686       return this;
6687     }
6688     /**
6689      *
6690      *
6691      * <pre>
6692      * The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.
6693      * Check the StackType enum for the list of possible values.
6694      * </pre>
6695      *
6696      * <code>optional string stack_type = 425908881;</code>
6697      *
6698      * @param value The bytes for stackType to set.
6699      * @return This builder for chaining.
6700      */
setStackTypeBytes(com.google.protobuf.ByteString value)6701     public Builder setStackTypeBytes(com.google.protobuf.ByteString value) {
6702       if (value == null) {
6703         throw new NullPointerException();
6704       }
6705       checkByteStringIsUtf8(value);
6706       stackType_ = value;
6707       bitField0_ |= 0x00400000;
6708       onChanged();
6709       return this;
6710     }
6711 
6712     private java.lang.Object state_ = "";
6713     /**
6714      *
6715      *
6716      * <pre>
6717      * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
6718      * Check the State enum for the list of possible values.
6719      * </pre>
6720      *
6721      * <code>optional string state = 109757585;</code>
6722      *
6723      * @return Whether the state field is set.
6724      */
hasState()6725     public boolean hasState() {
6726       return ((bitField0_ & 0x00800000) != 0);
6727     }
6728     /**
6729      *
6730      *
6731      * <pre>
6732      * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
6733      * Check the State enum for the list of possible values.
6734      * </pre>
6735      *
6736      * <code>optional string state = 109757585;</code>
6737      *
6738      * @return The state.
6739      */
getState()6740     public java.lang.String getState() {
6741       java.lang.Object ref = state_;
6742       if (!(ref instanceof java.lang.String)) {
6743         com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
6744         java.lang.String s = bs.toStringUtf8();
6745         state_ = s;
6746         return s;
6747       } else {
6748         return (java.lang.String) ref;
6749       }
6750     }
6751     /**
6752      *
6753      *
6754      * <pre>
6755      * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
6756      * Check the State enum for the list of possible values.
6757      * </pre>
6758      *
6759      * <code>optional string state = 109757585;</code>
6760      *
6761      * @return The bytes for state.
6762      */
getStateBytes()6763     public com.google.protobuf.ByteString getStateBytes() {
6764       java.lang.Object ref = state_;
6765       if (ref instanceof String) {
6766         com.google.protobuf.ByteString b =
6767             com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
6768         state_ = b;
6769         return b;
6770       } else {
6771         return (com.google.protobuf.ByteString) ref;
6772       }
6773     }
6774     /**
6775      *
6776      *
6777      * <pre>
6778      * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
6779      * Check the State enum for the list of possible values.
6780      * </pre>
6781      *
6782      * <code>optional string state = 109757585;</code>
6783      *
6784      * @param value The state to set.
6785      * @return This builder for chaining.
6786      */
setState(java.lang.String value)6787     public Builder setState(java.lang.String value) {
6788       if (value == null) {
6789         throw new NullPointerException();
6790       }
6791       state_ = value;
6792       bitField0_ |= 0x00800000;
6793       onChanged();
6794       return this;
6795     }
6796     /**
6797      *
6798      *
6799      * <pre>
6800      * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
6801      * Check the State enum for the list of possible values.
6802      * </pre>
6803      *
6804      * <code>optional string state = 109757585;</code>
6805      *
6806      * @return This builder for chaining.
6807      */
clearState()6808     public Builder clearState() {
6809       state_ = getDefaultInstance().getState();
6810       bitField0_ = (bitField0_ & ~0x00800000);
6811       onChanged();
6812       return this;
6813     }
6814     /**
6815      *
6816      *
6817      * <pre>
6818      * [Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY
6819      * Check the State enum for the list of possible values.
6820      * </pre>
6821      *
6822      * <code>optional string state = 109757585;</code>
6823      *
6824      * @param value The bytes for state to set.
6825      * @return This builder for chaining.
6826      */
setStateBytes(com.google.protobuf.ByteString value)6827     public Builder setStateBytes(com.google.protobuf.ByteString value) {
6828       if (value == null) {
6829         throw new NullPointerException();
6830       }
6831       checkByteStringIsUtf8(value);
6832       state_ = value;
6833       bitField0_ |= 0x00800000;
6834       onChanged();
6835       return this;
6836     }
6837 
6838     @java.lang.Override
setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)6839     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
6840       return super.setUnknownFields(unknownFields);
6841     }
6842 
6843     @java.lang.Override
mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields)6844     public final Builder mergeUnknownFields(
6845         final com.google.protobuf.UnknownFieldSet unknownFields) {
6846       return super.mergeUnknownFields(unknownFields);
6847     }
6848 
6849     // @@protoc_insertion_point(builder_scope:google.cloud.compute.v1.Subnetwork)
6850   }
6851 
6852   // @@protoc_insertion_point(class_scope:google.cloud.compute.v1.Subnetwork)
6853   private static final com.google.cloud.compute.v1.Subnetwork DEFAULT_INSTANCE;
6854 
6855   static {
6856     DEFAULT_INSTANCE = new com.google.cloud.compute.v1.Subnetwork();
6857   }
6858 
getDefaultInstance()6859   public static com.google.cloud.compute.v1.Subnetwork getDefaultInstance() {
6860     return DEFAULT_INSTANCE;
6861   }
6862 
6863   private static final com.google.protobuf.Parser<Subnetwork> PARSER =
6864       new com.google.protobuf.AbstractParser<Subnetwork>() {
6865         @java.lang.Override
6866         public Subnetwork parsePartialFrom(
6867             com.google.protobuf.CodedInputStream input,
6868             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6869             throws com.google.protobuf.InvalidProtocolBufferException {
6870           Builder builder = newBuilder();
6871           try {
6872             builder.mergeFrom(input, extensionRegistry);
6873           } catch (com.google.protobuf.InvalidProtocolBufferException e) {
6874             throw e.setUnfinishedMessage(builder.buildPartial());
6875           } catch (com.google.protobuf.UninitializedMessageException e) {
6876             throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
6877           } catch (java.io.IOException e) {
6878             throw new com.google.protobuf.InvalidProtocolBufferException(e)
6879                 .setUnfinishedMessage(builder.buildPartial());
6880           }
6881           return builder.buildPartial();
6882         }
6883       };
6884 
parser()6885   public static com.google.protobuf.Parser<Subnetwork> parser() {
6886     return PARSER;
6887   }
6888 
6889   @java.lang.Override
getParserForType()6890   public com.google.protobuf.Parser<Subnetwork> getParserForType() {
6891     return PARSER;
6892   }
6893 
6894   @java.lang.Override
getDefaultInstanceForType()6895   public com.google.cloud.compute.v1.Subnetwork getDefaultInstanceForType() {
6896     return DEFAULT_INSTANCE;
6897   }
6898 }
6899